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.
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 --listen
This 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
TiddlyRemember
main tiddler so that its modification date gets bumped. - Run
bumpversion patch
(orminor
ormajor
if needed). - Check and update the
COMPATIBLE_TW_VERSIONS
array inanki-plugin/src/util.py
. - Check and update the
compatible-tw5
andcompatible-anki
properties indocs/tiddlers/TiddlyRemember Metadata.json
.
- 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
make
in 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.ankiaddon
file for the latest branch and copy and paste the newankiweb-description.html
content. - 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.info
to restore the file. - Commit all doc and release changes made thus far.
- 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
master
branch and pull to update from GitHub to your just-merged PR. - Run
scripts/update-ghpages.sh
and 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.yaml
and 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 -l
and 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.