💾 Archived View for d.moonfire.us › blog › 2021 › 02 › 05 › mfgames-writing-upkeep captured on 2023-03-20 at 18:54:55. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
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
2: https://www.npmjs.com/package/@mfgames-writing/opf
3: https://gitlab.com/mfgames-writing/mfgames-writing-js
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.
5: https://semantic-release.gitbook.io/semantic-release/
6: 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/
8: https://www.npmjs.com/package/generator-mfgames-writing
But those can wait until next around.
Categories:
Tags:
Below are various useful links within this site and to related sites (not all have been converted over to Gemini).
https://d.moonfire.us/blog/2021/02/05/mfgames-writing-upkeep/