Release Process

Publishing Qwiratry to fez and GitHub

=begin rakudoc

Overview

Qwiratry releases are published in two places:

  • fez: the Raku module ecosystem release.

  • GitHub: the source archive, tag, and release notes.

Do the shared prep once, then publish to fez and GitHub from the same clean commit and version tag.

Prep Steps

  • 1. Confirm the working tree is clean.

git status

Release prep should happen from a committed working tree. If git status is not clean, finish or intentionally discard those changes before continuing.

  • 2. Choose the release version and update META6.json.

The version field is the version fez will publish. Use a normal semver-style version and make sure it has not already been published.

  • 3. Run the test suite.

zef test .
  • 4. Ensure there's a Changelog entry

...so that people know what happened.

  • 5. Review changes since the previous release.

git log release-x.y.z..HEAD
git diff --stat release-x.y.z..HEAD

Use the log as the main release summary source. Use the diff against the previous release tag when you need to inspect implementation details.

  • 6. Check the package metadata.

Confirm META6.json has the right name, auth, version, description, depends, and provides entries.

  • 7. Review the fez package.

fez review
raku tools/check-provides-in-package.raku

Check the files that will be uploaded and fix any metadata or packaging issues before tagging. The package checker compares META6.json's provides entries with Fez's dry-run bundle manifest, which catches ignored files before they become broken release archives. To check an already-created archive, pass --archive=sdist/name.tar.gz.

  • 8. Test installation

zef install .

If it doesn't go, that also needs fixing

  • 9. Confirm prep changes are committed.

git status
git diff

If testing, metadata checks, or fez review led to changes, commit them before starting the release steps.

Release Steps

Fez Release Steps

  • 1. Upload the release from the repository root.

fez upload

If this fails, try the following for more info:

fez --version
fez login

GitHub Release Steps

  • 1. Tag the release commit.

git tag release-x.y.z
  • 2. Push the release commit and tag.

git push && git push --tags
  • 3. Extract release notes from the changelog.

raku docs/rakudoc/Developing/changelog-release-notes.raku x.y.z > /tmp/qwiratry-release-notes.md
  • 4. Create the GitHub release from the tag.

gh release create release-x.y.z --title "Qwiratry x.y.z" --notes-file /tmp/qwiratry-release-notes.md

Release Verification

  • 1. Verify fez can see the new release.

fez list Qwiratry

If fez list is unavailable or does not show the expected result, check the module page or install from fez in a clean environment.

  • 2. Verify the Github release.

gh release view release-x.y.z

Confirm the tag, title, notes, source archives, and published commit are correct.

After Release

  • Announce or document the release wherever project users expect updates.

  • Start the next development cycle by bumping or planning the next META6.json version only when the project chooses to track unreleased development versions.

=end rakudoc

Qwiratry v0.0.9

Declarative query and data-walking architecture for Raku, with transformers, molds, walkers, and I/O pipelines.

Authors

  • Tim Nelson

License

Dependencies

SlangifyImplementation::Loader:ver<0.0.9+>Glob::Grammar

Test Dependencies

Provides

  • Qwiratry
  • Qwiratry::Context
  • Qwiratry::Format
  • Qwiratry::Format::Base
  • Qwiratry::Format::CSVdemo
  • Qwiratry::Format::JSONdemo
  • Qwiratry::Location
  • Qwiratry::Location::Base
  • Qwiratry::Location::File
  • Qwiratry::Mold
  • Qwiratry::Mold::Compiler
  • Qwiratry::Mold::Registry
  • Qwiratry::Mold::Slang
  • Qwiratry::Operator::Capability
  • Qwiratry::Operator::IO
  • Qwiratry::Operator::MapReduce
  • Qwiratry::Operator::Navigation
  • Qwiratry::Operator::Set
  • Qwiratry::Query::Evaluator::Eager
  • Qwiratry::Query::Evaluator::Filter
  • Qwiratry::Query::Evaluator::Join
  • Qwiratry::Query::Evaluator::Lazy
  • Qwiratry::Query::Evaluator::MapReduce
  • Qwiratry::Query::Evaluator::Navigation
  • Qwiratry::Query::Evaluator::Relational
  • Qwiratry::Query::Evaluator::Row
  • Qwiratry::Query::Evaluator::Set
  • Qwiratry::Query::Evaluator::Union
  • Qwiratry::Query::Extract
  • Qwiratry::Query::NamedJoins
  • Qwiratry::Query::RelationCommon
  • Qwiratry::Query::Runtime
  • Qwiratry::Query::Selector
  • Qwiratry::Query::Slang
  • Qwiratry::Query::Specificity
  • Qwiratry::Query::Topic
  • Qwiratry::QueryIterator
  • Qwiratry::QueryMatch
  • Qwiratry::Setup
  • Qwiratry::Strategy
  • Qwiratry::Strategy::ControlSignal
  • Qwiratry::Strategy::FinishResult
  • Qwiratry::Strategy::RewriteSpec
  • Qwiratry::Strategy::Traversal
  • Qwiratry::Suggest
  • Qwiratry::Table
  • Qwiratry::Table::Schema
  • Qwiratry::Transformer
  • Qwiratry::Transformer::Copy
  • Qwiratry::Transformer::TreeRewrite
  • Qwiratry::Tree::Navigator
  • Qwiratry::Tree::Navigator::Base
  • Qwiratry::Tree::Navigator::Filesystem
  • Qwiratry::Tree::Navigator::Match
  • Qwiratry::Tree::Navigator::RakuAST
  • Qwiratry::Tree::Replace
  • Qwiratry::Walker
  • Qwiratry::Walker::Capabilities
  • Qwiratry::Walker::Factory
  • Qwiratry::Walker::Implementation::Table
  • Qwiratry::Walker::Implementation::Tree
  • Qwiratry::Walker::Master
  • Qwiratry::Walker::Providing
  • X::Qwiratry

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.