Since Anki doesn't have any way to deploy plugins through CD, I'm inclined to put off developing a real pipeline for the parts I can automate, so in the meantime, here's at least a consistent set of manual release steps.
The TiddlyRemember release workflow requires publishing a branch. Move master or feature commits onto a release branch if necessary.
Aside from straight bugfix releases, the docs should be updated with every release. In order to perform edits:
cp docs/tiddlywiki.info{,.old}; jq '.plugins = ["tiddlywiki/filesystem", "tiddlywiki/tiddlyweb"]' docs/tiddlywiki.info.old >docs/tiddlywiki.info; cd docs && tiddlywiki --listenThis is the automatic version of editing the docs/tiddlywiki.info as follows
and running the server so you can edit in your browser:
"plugins": [
"tiddlywiki/filesystem",
"tiddlywiki/tiddlyweb"
],Don't stop the listener until you're told to do so by a later step
(or run the snippet again starting from jq to get the server restarted if you take a break).
- Open and save the
TiddlyRemembermain tiddler so that its modification date gets bumped. - Commit your changes as a temp commit
(unfortunately
bumpversionrefuses to let you leave them uncommitted). - Run
bumpversion patch(orminorormajorif needed). - Check and update the
COMPATIBLE_TW_VERSIONSarray inanki-plugin/src/util.py. - Check and update the
compatible-tw5andcompatible-ankiproperties indocs/tiddlers/TiddlyRemember Metadata.json. - Check and update the copyright dates in
LICENSEandtw-plugin/license.tid.
- Update the add-on description in
ankiweb-description.html, including a brief changelog message and the release date. Don't forget to bump the version number presented. Remember that the AnkiWeb description page has significant whitespace, terribly enough. - Run
makein the root directory. This will updateanki-plugin/build.ankiaddon. - Browse to the add-on's page: https://ankiweb.net/shared/info/60456529
- Upload the
build.ankiaddonfile for the latest branch and copy and paste the newankiweb-description.htmlcontent. - Leave this screen open until the remaining steps are ready.
- Quit the TiddlyWiki listener (hit Ctrl+C on the big PasteOps command from above).
Run
cd -; mv docs/tiddlywiki.info.old docs/tiddlywiki.infoto restore the file. git reset --soft HEAD^to go back to before the last temp commit.git restore --staged tiddlywiki.info && git restore tiddlywiki.info && rm tiddlywiki.info.oldto undo the temporary listener change.- Commit all doc and release changes made thus far, this time for real.
- Check your branch log and make any final rebases or adjustments.
- Push the branch to GitHub.
- Create a pull request to
master. If all looks good, complete with a rebase-and-merge and delete the branch. - Create a new release on GitHub to publicize the update:
https://github.com/sobjornstad/TiddlyRemember/releases/new.
The tag should be in the form
v0.0.0, using standard semantic versioning. Hold off on publishing the release for the moment.
- Ensure you have a clean working tree.
- Check out the
masterbranch and pull to update from GitHub to your just-merged PR. - Run
scripts/update-ghpages.shand follow the directions to push if the update is successful. - Browse out to the docs and verify they're updated, including the plugin tiddler itself. See https://sobjornstad.github.io/TiddlyRemember. It can take a minute or two to update a GitHub Pages site; refreshing will pick up the changes when they show up.
- Click the Save button on AnkiWeb to update the plugin.
- Click the Publish release button on GitHub to create the release.
- Install TW plugin via Node:
1.
cd ~/cabinet/Me/Records/m2. 2.vim peru.yamland confirm that the version of TiddlyRemember that's active is cloned from the GitHub repo. 3.peru reup tiddlyremember. 4. Restart the M2 server. Verify the new version number in More > Plugins > TR. - Install TW plugin via drag-and-drop to a file wiki (e.g., tiddlywiki.com) and verify version number.
- Try syncing:
cd ~/.local/share/Anki2/addons21.ls -land check if the plugin is livelinked. Remove livelink if needed.- Launch Anki and run "Check for Updates" in the addon settings. Verify update is available, install and relaunch.
- Run a sync, verify success.