Repository navigation
(MINOR) Release 1.1.0: name where the published secret came from; reset callbacks in specs - #11
Merged
eliasjpr merged 2 commits intoOct 27, 2026
Conversation
…et callbacks in specs Release: this subject carries (MINOR) on purpose. The release job keeps computing 1.0.32, and a stray v1.0.32 tag/release (cut from PR #2's merge ref, not on master) already exists, so "Create Release" fails with already_exists on every push. A minor bump computes 1.1.0 (tag v1.1) instead. - The default-secret error and warning told the user to set SESSION_SECRET, but an assigned secret wins over the variable, so that did nothing when the published value was assigned; and the suggested `c.secret = ENV["SESSION_SECRET"]` raises KeyError when the variable is unset. They now say to remove the assignment, or that SESSION_SECRET holds the published value, whichever is the case. - spec_helper's reset_config puts back the lifecycle callbacks the lifecycle specs replace. - Quick start: name the stores that encrypt with the secret like UPGRADE.md does. - UPGRADE.md: a Releases list saying what 1.1.0 contains (there is no changelog). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HT5gvYGR83U2M4DyA6NA6f
Up to standards ✅🟢 Issues
|
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HT5gvYGR83U2M4DyA6NA6f
eliasjpr
marked this pull request as ready for review
October 27, 2026 15:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this PR carries
(MINOR)Since #8, every push to
masterhas failed thereleasejob at Create Release withalready_existsontag_name(for example run 40490741711). The job keeps computing 1.0.32, and a tag and releasev1.0.32already exist at7440c2c("Merge 82f4b14 into c3331ca"). That commit is PR #2's merge ref. It was tagged by apull_requestrun before #4 limited the job to pushes, and it is not onmaster. As a result, nothing merged after it has been released (#3 to #10).This PR leaves every tag as it is. It carries the
(MINOR)marker on purpose, so the next computed version is 1.1.0, which does not collide.How the version is computed (checked against the action's source)
From
paulhatch/semantic-version@v4.0.2(dist/index.js):git describe --tags --abbrev=0 --match='v*[0-9.]' HEAD~1.v1.0.32is not an ancestor ofmaster, so this returns v1.0.31.git log --pretty="%s" <merge-base>..HEAD, which is commit subjects only.search_commit_bodyis not an input of v4.0.2 and is ignored.(MINOR)in any subject means minor+1 and patch 0, so 1.1.0.short_tagsdefaults to true, soversion_tagisv1.1.version: 1.1.0to master. Create Release makes the tag and the "Release v1.1.0" prerelease atgithub.sha, the pushed commit (commitishdefaults tocontext.shain actions/create-release). Like every earlier tag, it therefore sits on the commit before the bump.v1.1tag or release exists yet. Thev1tag (2022) is a different name.I ran the action's own
dist/index.jslocally with the workflow's inputs, against this repository's history and tags:v1.0.32(reproduces the failure)v1.1v1.1v1.1(MINOR)only in the bodyv1.1v1.1.1A merge commit, rebase or squash all work, provided a squash keeps
(MINOR)in its title. A merge commit's own subject ("Merge pull request …") has no marker, but the log includes this branch's first commit, whose subject does. A marker that is only in the body is not detected.Changes (review nits left from #10)
src/configuration.cr: the default-secret error and warning said "Set SESSION_SECRET". An assigned secret wins over the variable, so that did nothing when the published value was assigned. They also suggestedc.secret = ENV["SESSION_SECRET"], which raisesKeyErrorwhen the variable is unset. Now they name the actual source: either "remove thesecret =assignment" (or assign a random 32+ byte value), or "SESSION_SECRET holds the published default".spec/spec_helper.cr:reset_confignow resetson_started,on_deleted,on_loaded,on_clientandon_regenerated.docs/getting-started/quick-start.md: names the stores that encrypt with the secret ("a Redis store with encrypt_redis_data, or CookieStore"), as UPGRADE.md and docs/security/encryption.md do.UPGRADE.md: adds a short Releases list of what 1.1.0 contains, because the repo has no changelog. It is written from the merged commits of Keep the current session per request, not per store #2 to Session: a memory store never needs the secret; safer encryptor cache #10.Verification (Crystal 1.22.1)
srcandspec_helper.cr, the 4 new examples fail: 3 on the message text and 1 on a leaked callback.crystal specwith Redis: 564 examples, 0 failures, 0 pending.crystal tool format --check src spec scripts examplesis clean.scripts/check_docs.cron README.md, UPGRADE.md and docs/**/*.md: 157 snippets, 0 failed.-Dpreview_mton the configuration, presets, cookie_store, request_isolation and session_handler_error_handling specs: 119 examples, 0 failures.src: 44 findings, the same as master.🤖 Generated with Claude Code
https://claude.ai/code/session_01HT5gvYGR83U2M4DyA6NA6f