Skip to content

Latest commit

 

History

History
70 lines (54 loc) · 2.73 KB

PLAYBOOK.md

File metadata and controls

70 lines (54 loc) · 2.73 KB

SwissSchema Playbook

This is maintainer-specific documentation on how to run the project.

Release Checklist

A task list for whenever a new version is being released.

Note: the following steps use a fictional version v1.2.3 to illustrate commands, but it should be replaced with the version to be released.

  • Ensure the code quality looks good
    • mix format --check-formatted
    • mix test
    • mix dialyzer
  • Bump version
    • Update version in mix.exs
    • Update suggested version in readme.md
    • Update suggested version in lib/swiss_schema.ex
    • Update the Changelog with important changes
      • Update the Unreleased diff URL down in the footer
    • git commit -am 'chore: bump version to v1.2.3'
  • Tag the version-bump commit
    • Eg.: git tag -a -s v1.2.3 -m v1.2.3
  • Send version tag to GitHub
    • git push origin v1.2.3
  • Create a GitHub release from version tag
  • Publish to Hex
    • mix hex.publish
  • Run announcements (see below)
    • Publish on X
    • Publish on Mastodon

Announcing on X

X limits each post to 280 characters, so announcements needs to be made in threads.

The first post would look like it:

🧙🏻‍♂️ I just released SwissSchema v1.2.3.
#myelixirstatus

[ Here goes a short note about the release. It's important to write a succint and assertive note. ]

SwissSchema is available on:

If needed, append threaded posts to highlight important information. Eg.:

👉 Also, the project now has two important new documents:

  • ./contributing.md
  • ./changelog.md

With these new resources, I expect to improve the transparency of SwissSchema's development and lifecycle.

End the announcement thread with an informative post about the project:

💡 SwissSchema is a query toolkit for Ecto schemas.

It makes it easy to manipulate data using Ecto schemas by implementing relevant Ecto.Repo Query API and Schema API functions, pre-configured to work specifically with the given Ecto schema.

Read more at https://github.com/joeljuca/swiss_schema#usage

Examples taken from the [release announcement for v0.4.1](https://twitter.com/holyshtjoe/status/ 1702692792835686415).

Announcing on Mastodon and the fediverse

The announcement template for X work for Mastodon instances too, but since they often have more generous limits on post lengths, it's better to group multiple threaded posts into a bigger one, so when people reposts it the whole thread is distributed across the fediverse.