Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions .annotaterb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
:position: before
:position_in_additional_file_patterns: before
:position_in_class: before
:position_in_factory: before
:position_in_fixture: before
:position_in_routes: before
:position_in_serializer: before
:position_in_test: before
:classified_sort: true
:exclude_controllers: true
:exclude_factories: false
:exclude_fixtures: true
:exclude_helpers: true
:exclude_scaffolds: true
:exclude_serializers: true
:exclude_sti_subclasses: false
:exclude_tests: true
:force: false
:format_markdown: false
:format_rdoc: false
:format_yard: false
:frozen: false
:grouped_polymorphic: false
:ignore_database_name: false
:ignore_model_sub_dir: false
:ignore_unknown_models: false
:include_version: false
:show_check_constraints: false
:show_unique_constraints: false
:show_exclusion_constraints: false
:show_enums: false
:show_complete_foreign_keys: false
:show_foreign_keys: true
:show_indexes: true
:show_indexes_comments: false
:show_indexes_include: false
:simple_indexes: false
:sort: false
:timestamp: false
:trace: false
:with_comment: true
:with_column_comments: true
:with_table_comments: true
:position_of_column_comment: :with_name
:active_admin: false
:command:
:debug: false
:hide_default_column_types: json,jsonb,hstore
:hide_limit_column_types: integer,boolean
:timestamp_columns:
- created_at
- updated_at
:ignore_columns:
:ignore_routes:
:ignore_multi_database_name: false
:models: true
:routes: false
:skip_on_db_migrate: false
:auto_annotate_routes_after_migrate: false
:target_action: :do_annotations
:wrapper:
:wrapper_close:
:wrapper_open:
:classes_default_to_s: []
:additional_file_patterns: []
:model_dir:
- app/models
:require: []
:root_dir:
- ''
2 changes: 1 addition & 1 deletion .github/workflows/brakeman.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

# Will run Brakeman checks on dependencies
# https://github.com/marketplace/actions/brakeman-action
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/danger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: 'Determine Ruby and Bundler Versions from Gemfile.lock'
run: |
Expand All @@ -27,4 +27,4 @@ jobs:
- name: 'Run Danger'
env:
DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: bundle exec danger
run: bundle exec danger
16 changes: 11 additions & 5 deletions .github/workflows/eslint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,23 @@ jobs:

steps:
# Checkout the repo
- uses: actions/checkout@v3
- uses: actions/checkout@v5

# Install Node
- uses: actions/setup-node@v3
- uses: actions/setup-node@v5
with:
cache: 'yarn'
node-version: 18
node-version: 24

# Run yarn install for JS dependencies
- name: 'Yarn Install'
run: yarn install
run: yarn install --frozen-lockfile

- name: 'Run ESLint'
run: yarn run eslint app/javascript/**/*.js --ext .js
run: yarn lint

- name: 'Run JavaScript tests'
run: yarn test --reporters dots

- name: 'Build CSS'
run: yarn build:css
12 changes: 6 additions & 6 deletions .github/workflows/mysql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ jobs:

steps:
# Checkout the repo
- uses: actions/checkout@v3
- uses: actions/checkout@v5

# Install Ruby and run bundler
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true

# Install Node
- uses: actions/setup-node@v3
- uses: actions/setup-node@v5
with:
node-version: 18
node-version: 24
cache: 'yarn'

# Copy all of the example configs over
Expand All @@ -45,16 +45,16 @@ jobs:

# Run yarn install for JS dependencies
- name: 'Yarn Install'
run: yarn install
run: yarn install --frozen-lockfile

# Start the DB server and initialize the DB
- name: 'Start MySQL'
run: sudo systemctl start mysql

- name: 'Build out the test database'
run: |
DISABLE_SPRING=1 bundle exec rails db:create RAILS_ENV=test
DISABLE_SPRING=1 bundle exec rails db:schema:load RAILS_ENV=test
bundle exec rails db:create RAILS_ENV=test
bundle exec rails db:schema:load RAILS_ENV=test

- name: 'Run any pending database migrations'
run: bin/rails db:migrate RAILS_ENV=test
Expand Down
29 changes: 20 additions & 9 deletions .github/workflows/postgres.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
services:
# Postgres installation
db:
image: postgres
image: postgres:16
env:
# Latest version of Postgres has increased security. We can use the default
# user/password in this testing scenario though so use the following env
Expand All @@ -27,11 +27,10 @@ jobs:
env:
RAILS_ENV: test
DATABASE_URL: postgres://postgres:@localhost:5432/roadmap_test
DISABLE_SPRING: 1

steps:
# Checkout the repo
- uses: actions/checkout@v3
- uses: actions/checkout@v5

# Install Ruby and run bundler
- uses: ruby/setup-ruby@v1
Expand All @@ -42,9 +41,9 @@ jobs:
## /home/runner/runners/2.301.1/externals/node12/bin/node: --openssl-legacy-provider is not allowed in NODE_OPTIONS

# Install Node
- uses: actions/setup-node@v3
- uses: actions/setup-node@v5
with:
node-version: 18
node-version: 24
cache: "yarn"

# Install the Postgres developer packages
Expand Down Expand Up @@ -79,15 +78,16 @@ jobs:
# Run yarn install for JS dependencies
- name: "Yarn Install"
run: |
yarn install
yarn install --frozen-lockfile

# TEMPORARY WORKAROUND FOR THE FOLLOWING ISSUE: https://github.com/DMPRoadmap/roadmap/issues/3485
# Remove this once our tests are compatible with the new version of Chrome
# Source: https://github.com/teamcapybara/capybara/issues/2800#issuecomment-2731100953
- name: Remove image-bundled Chrome
run: sudo apt-get purge google-chrome-stable
- name: Setup stable Chrome
uses: browser-actions/setup-chrome@v1
- name: Setup Chrome 128
id: setup-chrome
uses: browser-actions/setup-chrome@v2
with:
chrome-version: 128
install-chromedriver: true
Expand All @@ -99,6 +99,12 @@ jobs:
bundle exec rails db:setup
bundle exec rails db:migrate

# PostgreSQL is the canonical source of the shared schema.rb.
- name: "Check schema drift"
run: |
bundle exec rails db:schema:dump
git diff --exit-code -- db/schema.rb

# Prebuild the CSS, JS and image assets
- name: "Compile Assets"
run: bundle exec rails assets:precompile
Expand All @@ -112,4 +118,9 @@ jobs:

# Run the time consuming integration tests (using Chrome headless browser)
- name: "Run Integration Tests"
run: bundle exec rspec spec/features/
env:
CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }}
run: |
"$CHROME_BIN" --version
chromedriver --version
bundle exec rspec spec/features/
2 changes: 1 addition & 1 deletion .github/workflows/rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

steps:
# Checkout the repo
- uses: actions/checkout@v2
- uses: actions/checkout@v5

# Install Ruby and run bundler
- uses: ruby/setup-ruby@v1
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,6 @@ yarn-debug.log*

# Ignore briley AWS cloud9 script to start the application
cloud9-start.sh

# Ignore key files for decrypting credentials and more.
/config/*.key
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24.18.0
1 change: 1 addition & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ plugins:
- rubocop-performance

AllCops:
TargetRubyVersion: 3.4
# Show the name of the cops being voilated in the feedback
DisplayCopNames: true
DisplayStyleGuide: true
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.1.4
3.4.11
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## v6.0.0

- Upgrade the required runtime from Ruby 3.1/Rails 7.1 to Ruby 3.4/Rails 8.1
and update compatible gems. This release adds no product features or API
versions.
- Adapt existing authentication, enums, routes, exports, and schema dumping
for the new framework versions. Continue to support PostgreSQL and MySQL.
- Update CI for Node 24, asset builds, and PostgreSQL schema drift checks;
add regression coverage for API headers, DOCX exports, and permission flags.
- Replace the Ruby 3.4-incompatible model annotation tool and remove Spring.

## v5.0.3
- Patch API token auth to check user's status [#3606](https://github.com/DMPRoadmap/roadmap/pull/3606)
- fix(policy): harden authorization for plan resources [#3613](https://github.com/DMPRoadmap/roadmap/pull/3613)
Expand Down
Loading