Skip to content

ci: uplift the repo process - #548

Merged
niteshpurohit merged 11 commits into
mainfrom
ci/uplift-process
Mar 30, 2026
Merged

niteshpurohit merged 11 commits into
mainfrom
ci/uplift-process

Conversation

@niteshpurohit

Copy link
Copy Markdown
Member
  • Introduced a new setup script to automate the installation of dependencies.
  • Added a generator for creating serializers for models, enhancing the ease of serialization in Rails applications.
  • Implemented a base serializer class with methods for JSON serialization, including support for attributes and relationships.
  • Created helper classes for caching and inflection operations to optimize performance.
  • Developed comprehensive tests for the new serialization features, ensuring reliability and correctness.
  • Updated the gemspec to include necessary dependencies and metadata for better package management.

@niteshpurohit niteshpurohit self-assigned this Mar 30, 2026
Copilot AI review requested due to automatic review settings March 30, 2026 22:46
@github-actions github-actions Bot added the ci label Mar 30, 2026
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

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 restructures the repository into a more complete, CI-driven Ruby gem project for mutils, including a serializer DSL (base serializer + attribute/relationship DSL), a Rails generator, supporting docs, and supporting CI/tooling (Rubocop/Reek/RSpec, Danger, CodeQL, GitHub Pages docs).

Changes:

  • Move gem packaging, dependencies, and test tooling under mutils/ (new gemspec, Gemfile, Rakefile, binstubs, spec setup).
  • Introduce/extend serializer implementation (base serializer, DSL modules, results builders) and add/expand serialization and helper specs.
  • Add/refresh repo automation: shared CI workflow, release workflow, docs site workflow, Danger, Qlty config, and Jekyll docs site.

Reviewed changes

Copilot reviewed 50 out of 81 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
Version Remove legacy version file (was v1.3.5).
spec/spec_helper.rb Remove root spec helper (coverage + RSpec config).
mutils/spec/spec_helper.rb Add mutils-local SimpleCov + RSpec setup.
mutils/spec/serialization/serialization_json_spec.rb Add serialization regression tests (block attrs, nil parsing).
mutils/spec/serialization/expect_output.rb Add JSON/XML expected outputs used by specs.
mutils/spec/mutils/lib/helper_spec.rb Add tests for helper inflection caching.
mutils/spec/mutils_spec.rb Add basic gem version smoke test.
mutils/spec/mock_classes.rb Add test fixtures + example serializers.
mutils/README.md Add gem README with usage examples.
mutils/Rakefile Add RSpec rake task and default task.
mutils/mutils.gemspec Add gemspec for mutils/ subproject.
mutils/LICENSE Update license header text/formatting.
mutils/lib/mutils/version.rb Add Mutils::VERSION.
mutils/lib/mutils/serialization/serialization_results.rb Add results module aggregator.
mutils/lib/mutils/serialization/serialization_methods.rb Add DSL module aggregator.
mutils/lib/mutils/serialization/serialization_includes.rb Add class-level serializer config accessors.
mutils/lib/mutils/serialization/results/relations.rb Add relationship hashing logic.
mutils/lib/mutils/serialization/results/main.rb Add main hash generation + inclusion checks.
mutils/lib/mutils/serialization/results/attributes.rb Add scalar + block attribute hashing.
mutils/lib/mutils/serialization/methods/relations.rb Add relationship DSL + option normalization.
mutils/lib/mutils/serialization/methods/main.rb Add name_tag + class existence helper.
mutils/lib/mutils/serialization/methods/attributes.rb Adjust attribute validation; defines attribute DSL.
mutils/lib/mutils/serialization/base_serializer.rb Add base serializer output methods (hash/json).
mutils/lib/mutils/lib/result_hash.rb Add small wrapper for building result hashes.
mutils/lib/mutils/lib/helper.rb Add singleton helper (inflection/constantize/cache).
mutils/lib/mutils.rb Add gem entrypoint requires + error class.
mutils/lib/generators/mutils/USAGE Add generator usage documentation.
mutils/lib/generators/mutils/templates/serializer.rb.tt Add serializer generator template.
mutils/lib/generators/mutils/serializer_generator.rb Add Rails generator implementation.
mutils/Gemfile.lock Add lockfile for mutils gem development.
mutils/Gemfile Add gem-local dev/test dependencies.
mutils/bin/setup Add setup script for local dev.
mutils/bin/rubocop Add license header to bundler binstub.
mutils/bin/rspec Add license header to bundler binstub.
mutils/bin/reek Add reek runner script (PTY-based).
mutils/bin/console Add IRB console entrypoint.
mutils/.ruby-version Pin Ruby version for mutils project.
mutils/.rubocop.yml Add gem-local RuboCop config.
mutils/.rspec Add gem-local RSpec CLI config.
mutils/.reek.yml Add gem-local Reek config.
mutils/.gitignore Add gem-local ignore file.
mutils.gemspec Remove root gemspec.
lib/mutils/serialization/methods/relations.rb Remove legacy relations DSL file.
Gemfile.lock Remove root lockfile (legacy deps).
Gemfile Remove root Gemfile (legacy deps).
docs/pages/5-usage.md Add Jekyll docs: detailed usage guide.
docs/pages/3-install.md Add Jekyll docs: installation guide.
docs/pages/2-overview.md Add Jekyll docs: overview/motivation.
docs/pages/101-faq.md Add Jekyll docs: FAQ/troubleshooting.
docs/index.md Add docs homepage.
docs/Gemfile.lock Add docs site lockfile.
docs/Gemfile Add docs site Gemfile.
docs/CNAME Add custom domain for docs.
docs/assets/images/logo.svg Add docs logo asset.
docs/assets/images/favicon.svg Add docs favicon asset.
docs/assets/css/just-the-docs-light.scss Add light theme CSS include.
docs/assets/css/just-the-docs-dark.scss Add dark theme CSS include.
docs/404.html Add docs 404 page.
docs/.ruby-version Pin Ruby version for docs site.
docs/.gitignore Add docs site ignore file.
docs/_includes/head_custom.html Add theme toggle + favicon in head.
docs/_includes/footer_custom.html Add footer badges/links.
docs/_config.yml Add Jekyll/Just-the-docs configuration.
danger/Gemfile.lock Add Danger bundle lockfile.
danger/Gemfile Add Danger Gemfile.
danger/Dangerfile Add PR policy enforcement rules.
.rubocop.yml Remove root RuboCop config.
.rspec Remove root RSpec config.
.releaserc Remove semantic-release config.
.qlty/qlty.toml Add Qlty configuration.
.qlty/.gitignore Add Qlty directory ignore rules.
.jrubyrc Remove JRuby debug config.
.github/workflows/shared-ci.yml Add reusable workflow (Rubocop/Reek/RSpec matrix).
.github/workflows/release.yml Refactor release to use shared CI + publish gem.
.github/workflows/release-drafter.yml Update release drafter/autolabeler split + concurrency.
.github/workflows/jekyll-gh-pages.yml Add docs build/deploy workflow.
.github/workflows/danger.yml Add Danger workflow for PRs.
.github/workflows/codeql.yml Update CodeQL workflow configuration.
.github/workflows/ci.yml Replace bespoke CI with shared reusable workflow.
.github/dependabot.yml Expand dependabot updates to docs/danger/mutils.
.codeclimate.yml Remove legacy Code Climate config.

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

Comment thread mutils/lib/mutils/serialization/methods/relations.rb
Comment thread .qlty/qlty.toml Outdated
Comment thread mutils/README.md Outdated
Comment thread mutils/README.md Outdated
Comment thread docs/pages/2-overview.md
- Introduced a new setup script to automate the installation of dependencies.
- Added a generator for creating serializers for models, enhancing the ease of serialization in Rails applications.
- Implemented a base serializer class with methods for JSON serialization, including support for attributes and relationships.
- Created helper classes for caching and inflection operations to optimize performance.
- Developed comprehensive tests for the new serialization features, ensuring reliability and correctness.
- Updated the gemspec to include necessary dependencies and metadata for better package management.
- Reorganized the Table of Contents for better navigation.
- Added missing sections such as Contributing, License, Code of Conduct, and Security.
- Corrected typos in the documentation for clarity.
Copilot AI review requested due to automatic review settings March 30, 2026 23:02
- Changed the step name from "Upload simplecov report" to "Publish coverage to Qlty" for clarity.
- Updated the action used for uploading coverage from `actions/upload-artifact@v4` to `qltysh/qlty-action/coverage@v2`.
- Modified the parameters to use a token for authentication and specified the path to the coverage result file.

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

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


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

Comment thread danger/Dangerfile
Comment thread docs/404.html
Comment thread README.md Outdated
Comment thread mutils/lib/mutils/serialization/methods/relations.rb
- Fixed typo in README regarding relationships support.
- Updated error message to specify the option name for clarity.
- Updated the cache action from v4 to v5 for improved performance and compatibility.
- Added QLTY_COVERAGE_TOKEN as an optional secret input for better coverage management.
Copilot AI review requested due to automatic review settings March 30, 2026 23:18
- Added `secrets: inherit` to the CI job in `ci.yml` to ensure secrets are available during the CI process.
- Added `secrets: inherit` to the verify_release job in `release.yml` for consistent access to secrets.
- Updated the condition for publishing coverage in `shared-ci.yml` to check if the coverage token is not empty, enhancing security.

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

Copilot reviewed 64 out of 95 changed files in this pull request and generated 2 comments.


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

Comment thread mutils/mutils.gemspec
Comment thread .github/workflows/ci.yml
- Removed the check for QLTY_COVERAGE_TOKEN in the coverage publishing step.
- This change simplifies the condition for uploading coverage when using Ruby version 3.4.
- Revised the introduction in README to better describe `mutils` as a collection of Ruby helpers.
- Enhanced the description in the gemspec to clarify the purpose and features of `mutils`.
- Updated the summary and description in the gemspec for improved accuracy.
- Adjusted the dependency specification for `dry-inflector` to ensure compatibility.
Copilot AI review requested due to automatic review settings March 30, 2026 23:32

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

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


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

Comment thread .github/workflows/shared-ci.yml
Comment thread .github/workflows/jekyll-gh-pages.yml
Comment thread .github/workflows/danger.yml
Comment thread .github/workflows/ci.yml
- Removed unnecessary filtering of files in the gemspec.
- Simplified the file inclusion pattern for better clarity.
- Removed bindir and executables settings as they are no longer needed.
- Changed the checkout action version from v4 to v6.
- This update ensures compatibility with the latest features and improvements in the checkout action.
Copilot AI review requested due to automatic review settings March 30, 2026 23:40
- Changed the description format in the gemspec file to a heredoc for improved readability.
- This enhances clarity and maintains consistency in the documentation style.

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

Copilot reviewed 64 out of 95 changed files in this pull request and generated no new comments.


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

@niteshpurohit
niteshpurohit merged commit 7e52a01 into main Mar 30, 2026
19 checks passed
@niteshpurohit
niteshpurohit deleted the ci/uplift-process branch March 30, 2026 23:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants