This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/dev/

Scripts for building tiddlywiki.com

These scripts are used to build and release the content for tiddlywiki.com. They are not designed for general purpose use – they resolve problems that are specific to the task of building tiddlywiki.com: pushing to GitHub Pages, handling the prerelease builds and bumping version numbers.

Nonetheless, you may find techniques that are useful for your own scripts.

Hosting

https://tiddlywiki.com is served by GitHub Pages from the repository https://github.com/Jermolene/jermolene.github.io

The scripts live in the repository https://github.com/Jermolene/build.jermolene.github.io

Directory structure

These scripts require the following directories to be siblings:

The scripts are designed to be executed with the current directory being the TiddlyWiki5 directory.

Configuration

package.json

The package.json in the root of the build.jermolene.github.io repository contains a dependency declaration that specifies the latest official released version of TiddlyWiki to be used when building the release targets:

  "dependencies": {
    "tiddlywiki": "5.1.2"
  }

Environment variables

Some of the scripts use the following environment variables:

  • TW5_BUILD_MAIN_EDITION - the path to the wiki folder to be used as the main edition, generating index.html and encrypted.html
  • TW5_BUILD_OUTPUT - the path to the output folder (defaults to ../jermolene.github.io)
  • TW5_BUILD_TIDDLYWIKI - the pathname of the tiddlywiki.js to be used (defaults to ../build.jermolene.github.io/node_modules/tiddlywiki/tiddlywiki.js)

Scripts

bld.sh

Builds the tiddlywiki.com target files. By default, it uses the version of tiddlywiki specified in the package.json file. This can be overridden with the TW5_BUILD_TIDDLYWIKI environment variable. The following command would select the latest prerelease version of tiddlywiki from the TiddlyWiki5 directory:

    TW5_BUILD_TIDDLYWIKI=./tiddlywiki.js

readme-bld.sh

Builds the readme files for the TiddlyWiki5 and build.jermolene.github.io repos using the released version of TiddlyWiki specified in package.json.

prerelease-bld.sh

Builds the tiddlywiki.com/prerelease target files using the latest TiddlyWiki prerelease code and special prerelease edition for the content.

github-push.sh

Pushes the latest changes to the jermolene.github.io directory to GitHub.

dev-bld.sh

Builds the dev prerelease edition.

quick-bld.sh

Builds the prerelease prerelease edition.

tiddlyspace-upload.sh

Builds the tw5tiddlyweb edition and uploads it to TiddlySpace.

verbump.sh

Bumps the version number of the package.json in the TiddlyWiki5 repo and applies the correct version tag to the repo.

npm-publish.sh

Publishes the TiddlyWiki5 repo to npm.

Procedures

Releasing a new version of TiddlyWiki

Preparation on master

  1. Ensure the new release banner image is up to date
  2. Update master with changes from tiddlywiki-com
  3. Verify the version numbers in $:/config/OfficialPluginLibrary in editions/tw5.com
  4. Move the latest release note from the prerelease edition into the tw5.com edition
  5. Adjust the release date and the released field of the latest release tiddler (eg, Release 5.1.3)
  6. Ensure TiddlyWiki Releases has the new version as the default tab
  7. Adjust the modified time of HelloThere
  8. Make sure master is fully committed

Update Readmes

  1. Edit package.json to the new version number
  2. Run ./bin/readme-bld.sh to build the readme files
  3. Commit the new readme files to master
  4. Restore package.json to the previous version number

Make New Release

  1. Run ./bin/verbump "5.1.3" (substituting the correct version number) to update the version number, assign it a tag
  2. Run ./bin/npm-publish.sh to publish the release to npm
  3. Verify that the new release of TiddlyWiki is available at https://www.npmjs.org/package/tiddlywiki

Update tiddlywiki.com release

  1. Update tiddlywiki-com from master and push to GitHub

Cleaning Up

  1. Tweet the release with the text "TiddlyWiki v5.x.x released to https://tiddlywiki.com #newtiddlywikirelease"

Preparation for the next release in master

  1. Adjust version number in package.json
  2. Adjust version number in bin/build-site.sh
  3. Adjust version number in $:/config/OfficialPluginLibrary (both in editions/tw5.com and editions/prerelease/tiddlers/system) and $:/config/LocalPluginLibrary
  4. Adjust new release banner
  5. Create the release note for the new release
  6. Adjust version number in https://github.com/Jermolene/build.jermolene.github.io in prerelease-bld.sh, bld.sh and make-library-bld.sh
  7. Commit changes to master and push to GitHub

Releasing new content for TiddlyWiki

To update https://tiddlywiki.com with new content, make a Pull Request with the updated tiddlers to the tiddlywiki-com branch. As soon as the PR is merged, the Continuous Deployment system will automatically rebuild the site.

Note that the PR should only include updates within the editions folder of the repo.