Skip to content

[PP-7517] Initial gem setup with CI, release and dependency management#1

Merged
AgaDufrat merged 1 commit intomainfrom
initial-setup
Feb 16, 2026
Merged

[PP-7517] Initial gem setup with CI, release and dependency management#1
AgaDufrat merged 1 commit intomainfrom
initial-setup

Conversation

@AgaDufrat
Copy link
Contributor

@AgaDufrat AgaDufrat commented Feb 13, 2026

  • Gem setup:

    • govuk_content_item_loader.gemspec to define gem specifications (name, version, dependencies)
    • Gemfile for managing dependencies
    • CHANGELOG.md to make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project
    • Rakefile to facilitate common tasks
    • README.md to provide an overview of the gem, later installation instructions and usage examples
    • LICENCE file to specify the licensing terms of the gem in line with https://gds-way.digital.cabinet-office.gov.uk/manuals/licensing.html#specifying-the-licence
  • Main library files:

    • lib/: Directory to include the core gem code.
      • lib/govuk_content_item_loader/: For the gem's primary functionality.
        • version.rb: Defines the gem version.
      • govuk_content_item_loader.rb: Main class/module implementing the functionality.
  • RSpec setup for testing incl. simplecov for test coverage

  • GitHub workflows:

    • .github/workflows/ci.yml: Continuous integration setup for running tests and linting.
    • .github/workflows/autorelease.yml: Automates the gem release process.
    • .github/workflows/actionlint.yml: Lints GitHub Actions workflows to ensure consistency.
    • .github/workflows/gem-bump-checker.yml: Checks for version bumps in a PR to ensure timely releases.
  • Dependency management:

    • .github/dependabot.yml: Configuration file for Dependabot to automatically create pull requests for dependency updates.
    • .govuk_dependabot_merger.yml: Configuration for the custom Dependabot merger tool to automate merging of approved dependency updates.
  • Development setup:

    • .gitignore: Specifies files and directories to be ignored by Git.
    • .rspec: RSpec configuration file for running tests.
    • .rubocop.yml: RuboCop configuration for code style enforcement.
    • .ruby-version: Specifies the Ruby version used for this gem.

@AgaDufrat AgaDufrat force-pushed the initial-setup branch 3 times, most recently from f58982c to 153a30a Compare February 13, 2026 16:04
.ruby-version Outdated
@@ -0,0 +1 @@
3.4.8
Copy link
Member

Choose a reason for hiding this comment

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

Reading our docs, I think this needs to be the latest version of 3.2.*, as the required_ruby_version is >=3.2.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point, thanks! I set it to 3.2.9.

- Gem setup:
  - `govuk_content_item_loader.gemspec` to define gem specifications (name,
    version, dependencies)
  - `CHANGELOG.md` to make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project
  - `Gemfile` for managing dependencies
  - `Rakefile` to facilitate common tasks
  - `README.md` to provide an overview of the gem, later installation
    instructions and usage examples
  - `LICENCE` file to specify the licensing terms of the gem in line with
    https://gds-way.digital.cabinet-office.gov.uk/manuals/licensing.html#specifying-the-licence

- Main library files:
  - `lib/`: Directory to include the core gem code.
    - `lib/govuk_content_item_loader/`: For the gem's primary functionality.
      - `govuk_content_item_loader.rb`: Main class/module implementing the
        functionality.
      - `version.rb`: Defines the gem version.

- RSpec setup for testing incl. simplecov for test coverage

- GitHub workflows:
  - `.github/workflows/ci.yml`: Continuous integration setup for running tests
    and linting.
  - `.github/workflows/autorelease.yml`: Automates the gem release process.
  - `.github/workflows/actionlint.yml`: Lints GitHub Actions workflows to
    ensure consistency.
  - `.github/workflows/gem-bump-checker.yml`: Checks for version bumps in a PR
    to ensure timely releases.

- Dependency management:
  - `.github/dependabot.yml`: Configuration file for Dependabot to
    automatically create pull requests for dependency updates.
  - `.govuk_dependabot_merger.yml`: Configuration for the custom Dependabot
    merger tool to automate merging of approved dependency updates.

- Development setup:
  - `.gitignore`: Specifies files and directories to be ignored by Git.
  - `.rspec`: RSpec configuration file for running tests.
  - `.rubocop.yml`: RuboCop configuration for code style enforcement.
  - `.ruby-version`: Specifies the Ruby version used for this gem.
Copy link
Member

@brucebolt brucebolt left a comment

Choose a reason for hiding this comment

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

All looks good to me 👍

@AgaDufrat AgaDufrat merged commit 030ad6a into main Feb 16, 2026
11 checks passed
@AgaDufrat AgaDufrat deleted the initial-setup branch February 16, 2026 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants