Skip to content
This repository was archived by the owner on Jul 17, 2026. It is now read-only.

🔐 Add signing cert (exp 2045-04-29); prepare release - #2

Merged
pboling merged 30 commits into
mainfrom
feat/release-prep
Jan 7, 2026
Merged

🔐 Add signing cert (exp 2045-04-29); prepare release#2
pboling merged 30 commits into
mainfrom
feat/release-prep

Conversation

@pboling

@pboling pboling commented Dec 12, 2025

Copy link
Copy Markdown
Contributor

No description provided.

@pboling pboling self-assigned this Dec 12, 2025
Copilot AI review requested due to automatic review settings December 12, 2025 20:33
@github-advanced-security

Copy link
Copy Markdown

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the jsonc-merge project for its 1.0.0 release by adding a signing certificate, updating documentation, and cleaning up CI configurations for unsupported Ruby versions.

  • Adds a new signing certificate (pboling.pem) with 20-year validity
  • Removes CI workflow configurations for EOL Ruby versions (2.3-3.1 and JRuby)
  • Updates test coverage thresholds and copyright information

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
certs/pboling.pem Adds new X.509 signing certificate for gem signing
README.md Updates copyright year from "2023, 2025" to "2025" only
CHANGELOG.md Restructures changelog by moving initial release entry and adding version reference links
Appraisals Removes appraisal configurations for Ruby 2.3-3.1
.github/workflows/unsupported.yml Removes CI workflow for EOL Ruby 2.6-2.7
.github/workflows/main.yml Removes basic Ruby CI workflow
.github/workflows/legacy.yml Removes CI workflow for EOL Ruby 3.0-3.1
.github/workflows/jruby.yml Removes JRuby CI workflow
.github/workflows/ancient.yml Removes CI workflow for ancient Ruby 2.3-2.5
.github/workflows/coverage.yml Increases test coverage thresholds from 91%/65% to 96%/85%

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
Comment thread CHANGELOG.md
Comment thread CHANGELOG.md
Comment thread certs/pboling.pem
@pboling pboling changed the title 🔐 Add signing cert (exp 2025-04-29); prepare release 🔐 Add signing cert (exp 2045-04-29); prepare release Dec 18, 2025
### Added

- `spec/support/dependency_tags.rb` for conditional test execution based on backend availability
  - `:tree_sitter_jsonc` RSpec tag for tests requiring tree-sitter JSONC grammar
  - `:jruby` and `:not_jruby` tags for Ruby engine-specific tests

### Changed

- **SmartMerger**: Added `**options` for forward compatibility
  - Accepts additional options that may be added to base class in future
  - Passes all options through to `SmartMergerBase`
- **ConflictResolver**: Added `**options` for forward compatibility
  - Now passes `match_refiner` to base class instead of storing locally
- **MergeResult**: Added `**options` for forward compatibility
- **FileAnalysis**: Simplified to use `TreeHaver.parser_for` API
  - Removed 30+ lines of grammar loading boilerplate
  - Now relies on tree_haver for auto-discovery and fallback
- replaced by kettle-soup-cover
### Changed

- **NodeWrapper**: Now inherits from `Ast::Merge::NodeWrapperBase`
  - Removes ~80 lines of duplicated code (initialization, line extraction, basic methods)
  - Keeps only JSONC-specific type predicates and signature computation
  - Adds `#node_wrapper?` method for distinguishing from `NodeTyping::Wrapper`
- **FileAnalysis error handling**: Now rescues `TreeHaver::Error` instead of `TreeHaver::NotAvailable`
  - `TreeHaver::Error` inherits from `Exception`, not `StandardError`
  - `TreeHaver::NotAvailable` is a subclass of `TreeHaver::Error`, so it's also caught
  - Fixes parse error handling on alternative Ruby engines
- **Dependency tags**: Refactored to use shared `TreeHaver::RSpec::DependencyTags` from tree_haver gem
  - All dependency detection is now centralized in tree_haver
  - Use `require "tree_haver/rspec"` for shared RSpec configuration
  - `JsoncMergeDependencies` is now an alias to `TreeHaver::RSpec::DependencyTags`
  - Enables `JSONC_MERGE_DEBUG=1` for dependency summary output
- **SmartMerger**: Added `**options` for forward compatibility
  - Accepts additional options that may be added to base class in future
  - Passes all options through to `SmartMergerBase`
- **ConflictResolver**: Added `**options` for forward compatibility
  - Now passes `match_refiner` to base class instead of storing locally
- **MergeResult**: Added `**options` for forward compatibility
- **FileAnalysis**: Simplified to use `TreeHaver.parser_for` API
  - Removed 30+ lines of grammar loading boilerplate
  - Now relies on tree_haver for auto-discovery and fallback

### Removed

- **Load-time grammar registration** - TreeHaver's `parser_for` now handles grammar discovery
  and registration automatically. Removed manual `GrammarFinder` calls and warnings from
  `lib/jsonc/merge.rb`.

### Fixed

- No longer warns about missing JSONC grammar when the grammar file exists but tree-sitter runtime is unavailable
  - This is expected behavior when using non-tree-sitter backends (Citrus, Prism, etc.)
  - Warning now only appears when the grammar file is actually missing
@pboling
pboling merged commit 3564732 into main Jan 7, 2026
16 of 20 checks passed
@pboling
pboling deleted the feat/release-prep branch January 7, 2026 04:42
@pboling
pboling restored the feat/release-prep branch January 7, 2026 05:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants