fhirpath-rb 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/CLAUDE.md +52 -0
- data/lib/fhirpath/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7007532f7d9366bec18526de62ab2f5d60fb5a42883053eb51885f47c70faff
|
|
4
|
+
data.tar.gz: 7c52632221c5ae189d621063ee28b450629f740bd12fe392d189955446e64069
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: faf8e60216664a0f8a6e2856f3a1eefb0c77c9cfc96ac5ac2b7013485bd15315627f0cab97574462f18de05570a4c4010777712e697bb43686578849324e38d2
|
|
7
|
+
data.tar.gz: f2e275ae41f92b103b1762b90efe7e6d167329534388f6f3dc57a606a114f6bd58350ee8cab973cd2fdf09d93c1851d581d5ba79bc0be4507c461bca51aeefa9
|
data/.rubocop.yml
CHANGED
data/CLAUDE.md
CHANGED
|
@@ -57,3 +57,55 @@ miss otherwise.
|
|
|
57
57
|
(the default Rake task) and must stay clean.
|
|
58
58
|
- No implementation code should be added speculatively — this file describes the target shape
|
|
59
59
|
so future work has a map, not a request to build it all now.
|
|
60
|
+
|
|
61
|
+
## Release process ("bump")
|
|
62
|
+
|
|
63
|
+
The maintainer typing **"bump"** (or "bump X.Y.Z") to Claude is standing, in-the-moment
|
|
64
|
+
authorization for the full state-changing sequence below — commit, push, tag, push tag, and
|
|
65
|
+
GitHub release — for that one release only. No separate confirmation is needed per step; run
|
|
66
|
+
the whole sequence end-to-end without pausing to ask "should I push now?" etc.
|
|
67
|
+
|
|
68
|
+
**Version to release:**
|
|
69
|
+
- Plain **"bump"** → increment the patch version (Z in X.Y.Z) of whatever's currently in
|
|
70
|
+
`lib/fhirpath/version.rb`.
|
|
71
|
+
- **"bump X.Y.Z"** (an explicit version, e.g. for a minor/major bump like `0.2.0`) → set the
|
|
72
|
+
version to exactly that string instead of incrementing.
|
|
73
|
+
|
|
74
|
+
**Steps, in order:**
|
|
75
|
+
1. `git status` — working tree must be clean and up to date with `origin/main` before starting.
|
|
76
|
+
If it isn't (uncommitted changes, unrelated local commits), stop and ask rather than
|
|
77
|
+
assuming they should be swept into the release.
|
|
78
|
+
2. Edit `lib/fhirpath/version.rb` to the new version.
|
|
79
|
+
3. Run `bundle exec rake` (specs + RuboCop) and confirm it's green. If parser sources aren't
|
|
80
|
+
already built, run `bundle exec rake parser:setup compile` first (see rakelib/parser.rake).
|
|
81
|
+
4. **Mandatory packaging sanity check** — this is the step that was skipped before 0.1.1/0.1.2
|
|
82
|
+
shipped a broken native extension (the gemspec's generated-files glob had silently gone
|
|
83
|
+
missing and nothing caught it until a user hit a `LoadError` in production):
|
|
84
|
+
- `gem build fhirpath-rb.gemspec`
|
|
85
|
+
- Install the built `.gem` into a throwaway isolated `GEM_HOME` (e.g. under a scratch dir),
|
|
86
|
+
with `env -u BUNDLE_GEMFILE -u RUBYOPT` to avoid this repo's own bundler env leaking in,
|
|
87
|
+
and with `GEM_PATH` pointing at a location that already has `rice`/`fhir_models` installed
|
|
88
|
+
(or allow network) so dependencies resolve.
|
|
89
|
+
- From that isolated `GEM_HOME`, `require "fhirpath"` and call `Fhirpath.evaluate` on a
|
|
90
|
+
trivial resource. Confirm the native extension (`fhir_path_parser.bundle`/`.so`) actually
|
|
91
|
+
got compiled into that GEM_HOME's `extensions/` dir and the require succeeds.
|
|
92
|
+
- Clean up the scratch gem/dirs afterward. If this check fails, stop — do not tag or release
|
|
93
|
+
a broken build; fix the gemspec/extension setup first.
|
|
94
|
+
5. `git add lib/fhirpath/version.rb` (plus any other files that were part of this bump, e.g. a
|
|
95
|
+
packaging fix) and commit as `Bump X.Y.Z`, with whatever commit attribution footer is
|
|
96
|
+
currently in effect for the session.
|
|
97
|
+
6. `git push origin main`.
|
|
98
|
+
7. `git tag -a vX.Y.Z -m "Version X.Y.Z"` and `git push origin vX.Y.Z`.
|
|
99
|
+
8. `gh release create vX.Y.Z --title "vX.Y.Z" --generate-notes` — this triggers
|
|
100
|
+
`.github/workflows/release.yml`, which publishes to rubygems.org via Trusted Publishing.
|
|
101
|
+
9. `gh run watch <run-id> --exit-status` (find the run with `gh run list --workflow=release.yml
|
|
102
|
+
--limit 1`) and confirm it completes successfully.
|
|
103
|
+
10. Final live-artifact check: in a scratch dir, `gem install fhirpath-rb -v X.Y.Z` from
|
|
104
|
+
rubygems.org (not the local build) and `require "fhirpath"` to confirm what's actually
|
|
105
|
+
published works, not just what was built locally.
|
|
106
|
+
11. Report back: new version, release URL, and confirmation that the published gem loads.
|
|
107
|
+
|
|
108
|
+
If step 4 or 10 fails, the release is broken in the same way 0.1.1/0.1.2 were — do not consider
|
|
109
|
+
the release done, and do not stop at "gem pushed successfully" as the definition of success.
|
|
110
|
+
`gem push` succeeding only means RubyGems accepted the upload; it says nothing about whether
|
|
111
|
+
the native extension actually compiles for an installer.
|
data/lib/fhirpath/version.rb
CHANGED