SMOLNET PORTAL home about changes

MfGames Writing Upkeep

Up a Level


As usual between major projects, I try to spend a little time working on maintenance and upkeep of the multitude of projects that I've written or contributed too. It is somewhat random, but I had a task to move two of my Node packages, @mfgames-writing/ncx[1] and @mfgames-writing/opf[2] into the mfgames-writing monorepo[3] when I had done the rest of the projects.

1: https://www.npmjs.com/package/@mfgames-writing/ncx (https://www.npmjs.com)
2: https://www.npmjs.com/package/@mfgames-writing/opf (https://www.npmjs.com)
3: https://gitlab.com/mfgames-writing/mfgames-writing-js (https://gitlab.com)


The decision to convert to a single repository for a multiple of projects took me quite a while. Mostly it came from the problem I have with package-based arrangements, the “rail car”. When I have to make a change to a library but that change has to be propagated through a number of packages until the one that needed the change. It looks like a chain and it's tedious when I'm doing rapid sets of changes trying to figure something out.

Now, I could just do everything in a single monolithic project, basically have a `mfgames-writing` package that does everything, but I still follow the Unix Philosophy: Do One Thing Well. The individual packages handle EPUB, PDF, and HTML generation. It feels “wrong” to force all of them to be combined together.

In the end, I want separate packages but I dislike the process of working with them. With Node packages, I found Lerna[4] which handles a lot of that forwarding, plus plays well with semantic-release[5] and conventional commits[6]. I've been happy, but it was a learning process and I missed two packages.

4: https://lerna.js.org/ (https://lerna.js.org)
5: https://semantic-release.gitbook.io/semantic-release/ (https://semantic-release.gitbook.io)
6: https://www.conventionalcommits.org/ (https://www.conventionalcommits.org)


I also reformatting the code and switched testing over to Jest. It bumped up a few versions, but that always seem to happen when I'm learning things.

While that cleans up most of the packages, there are a few others related packages I still need to convert, namely the Docker image[7] and the Yoman generator[8]. Those are completely different than the core packages, so they shouldn't be in the monorepo in my opinion.

7: https://hub.docker.com/r/dmoonfire/mfgames-writing-js/ (https://hub.docker.com)
8: https://www.npmjs.com/package/generator-mfgames-writing (https://www.npmjs.com)


But those can wait until next around.


Metadata


Categories:

Programming


Tags:

Docker
MfGames Writing
Yoman


Footer


Below are various useful links within this site and to related sites (not all have been converted over to Gemini).

Now
Contact
Biography
Bibliography
Support


Fiction
Fedran (fedran.com)
Coding (https://mfgames.com)
The Moonfires (https://moonfire.us)


Categories
Tags


Privacy
Colophon
License


Mailing List (https://lists.typewriter.press)


https://d.moonfire.us/blog/2021/02/05/mfgames-writing-upkeep/ (https://d.moonfire.us)
Response: 20 (Success), text/gemini
Original URLgemini://d.moonfire.us/blog/2021/02/05/mfgames-writing-upkeep/
Status Code20 (Success)
Content-Typetext/gemini; charset=utf-8; lang=en-US