Skip to content

Commit

Permalink
A Big, Ugly Patch
Browse files Browse the repository at this point in the history
 * Performs YAML resolution in Python, using lib/yaml_resolver.py
 * Adds many missing extensions
 * Changes Profile schema to match other objects
 * Implements versioning via lib/version.rb instead of Gem::Version/Requirement
 * Refactors ArchDef into Specification/Config
 * Simplifies ArchDef/Specification by exploiting common format for object schemas
 * New, simplified schema for configs
 * Adds schemas for profile (some are still placeholders)
 * Parallelizes GitHub regression test

fixes #336
fixes #320
fixes #319
fixes #317
fixes #299
  • Loading branch information
dhower-qc committed Dec 10, 2024
1 parent 082e0bd commit 46285e7
Show file tree
Hide file tree
Showing 229 changed files with 5,348 additions and 4,573 deletions.
1 change: 1 addition & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ RUN apt-get install -y --no-install-recommends bundler
RUN apt-get install -y --no-install-recommends nodejs
RUN apt-get install -y --no-install-recommends npm
RUN apt-get install -y --no-install-recommends ditaa
RUN apt-get install -y --no-install-recommends libyaml-dev
RUN apt-get clean autoclean
RUN apt-get autoremove -y
RUN rm -rf /var/lib/{apt, dpkg, cache, log}
124 changes: 119 additions & 5 deletions .github/workflows/regress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,124 @@ on:
- main
workflow_dispatch:
jobs:
regress:
regress-smoke:
runs-on: ubuntu-latest
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: Setup apptainer
uses: eWaterCycle/[email protected]
- name: Get container from cache
id: cache-sif
uses: actions/cache@v3
with:
path: .singularity/image.sif
key: ${{ hashFiles('container.def', 'bin/.container-tag') }}
- name: Get gems and node files from cache
id: cache-bundle-npm
uses: actions/cache@v3
with:
path: |
.home/.gems
node_modules
key: ${{ hashFiles('Gemfile.lock') }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Setup project
run: ./bin/setup
- name: Run smoke
run: ./do smoke
regress-gen-isa-manual:
runs-on: ubuntu-latest
needs: regress-smoke
env:
MANUAL_NAME: isa
VERSIONS: all
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: Setup apptainer
uses: eWaterCycle/[email protected]
- name: Get container from cache
id: cache-sif
uses: actions/cache@v3
with:
path: .singularity/image.sif
key: ${{ hashFiles('container.def', 'bin/.container-tag') }}
- name: Get gems and node files from cache
id: cache-bundle-npm
uses: actions/cache@v3
with:
path: |
.home/.gems
node_modules
key: ${{ hashFiles('Gemfile.lock') }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Generate HTML ISA manual
run: ./do gen:html_manual
regress-gen-ext-pdf:
runs-on: ubuntu-latest
needs: regress-smoke
env:
EXT: B
VERSION: latest
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: Setup apptainer
uses: eWaterCycle/[email protected]
- name: Get container from cache
id: cache-sif
uses: actions/cache@v3
with:
path: .singularity/image.sif
key: ${{ hashFiles('container.def', 'bin/.container-tag') }}
- name: Get gems and node files from cache
id: cache-bundle-npm
uses: actions/cache@v3
with:
path: |
.home/.gems
node_modules
key: ${{ hashFiles('Gemfile.lock') }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Generate extension PDF
run: ./do gen:ext_pdf
regress-gen-certificate:
runs-on: ubuntu-latest
needs: regress-smoke
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: Setup apptainer
uses: eWaterCycle/[email protected]
- name: Get container from cache
id: cache-sif
uses: actions/cache@v3
with:
path: .singularity/image.sif
key: ${{ hashFiles('container.def', 'bin/.container-tag') }}
- name: Get gems and node files from cache
id: cache-bundle-npm
uses: actions/cache@v3
with:
path: |
.home/.gems
node_modules
key: ${{ hashFiles('Gemfile.lock') }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Generate extension PDF
run: ./do gen:cert_model_pdf[MockCertificateModel]
regress-gen-profile:
runs-on: ubuntu-latest
needs: regress-smoke
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
Expand All @@ -29,7 +145,5 @@ jobs:
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Setup project
run: ./bin/setup
- name: Run regression
run: ./do regress
- name: Generate extension PDF
run: ./do gen:profile[MockProfileRelease]
4 changes: 4 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ Metrics/AbcSize:
Metrics/CyclomaticComplexity:
Enabled: false

Metrics/ParameterLists:
Enabled: true
CountKeywordArgs: false

Metrics/PerceivedComplexity:
Enabled: false

Expand Down
10 changes: 6 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,26 @@ ruby "3.2.3"

source "https://rubygems.org"

gem "activesupport"
gem "asciidoctor-diagram", "~> 2.2"
gem "asciidoctor-pdf"
gem "base64"
gem "bigdecimal"
gem "json_schemer", "~> 1.0"
gem "minitest"
gem "ruby-progressbar", "~> 1.13"
gem "pygments.rb"
gem "rake", "~> 13.0"
gem "rouge"
gem "ruby-progressbar", "~> 1.13"
gem "treetop", "1.6.12"
gem "ttfunk", "1.7" # needed to avoid having asciidoctor-pdf dependencies pulling in a buggy version of ttunk (1.8)
gem "webrick"
gem "yard"

group :development do
gem "solargraph"
gem 'rubocop-minitest'
gem 'ruby-prof'
gem "debug"
gem "rubocop-minitest"
gem "ruby-prof"
gem "ruby-prof-flamegraph"
gem "solargraph"
end
38 changes: 38 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.1)
activesupport (8.0.0)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
afm (0.2.2)
Expand Down Expand Up @@ -31,12 +44,23 @@ GEM
benchmark (0.3.0)
bigdecimal (3.1.8)
concurrent-ruby (1.3.3)
connection_pool (2.4.1)
css_parser (1.17.1)
addressable
debug (1.9.2)
irb (~> 1.10)
reline (>= 0.3.8)
diff-lcs (1.5.1)
drb (2.2.1)
e2mmap (0.1.0)
hana (1.3.7)
hashery (2.1.2)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
io-console (0.7.2)
irb (1.14.1)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jaro_winkler (1.6.0)
json (2.7.2)
json_schemer (1.0.3)
Expand All @@ -48,6 +72,7 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
language_server-protocol (3.17.0.3)
logger (1.6.2)
matrix (0.4.2)
minitest (5.24.1)
nokogiri (1.16.5-x86_64-linux)
Expand Down Expand Up @@ -79,13 +104,19 @@ GEM
prawn-templates (0.1.2)
pdf-reader (~> 2.0)
prawn (~> 2.2)
psych (5.2.0)
stringio
public_suffix (6.0.0)
pygments.rb (3.0.0)
racc (1.8.0)
rainbow (3.1.1)
rake (13.2.1)
rbs (2.8.4)
rdoc (6.8.1)
psych (>= 4.0.0)
regexp_parser (2.9.2)
reline (0.5.11)
io-console (~> 0.5)
reverse_markdown (2.1.1)
nokogiri
rexml (3.2.8)
Expand All @@ -112,6 +143,7 @@ GEM
ruby-prof (~> 0.13)
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
securerandom (0.4.0)
simpleidn (0.2.3)
solargraph (0.50.0)
backport (~> 1.2)
Expand All @@ -129,24 +161,30 @@ GEM
thor (~> 1.0)
tilt (~> 2.0)
yard (~> 0.9, >= 0.9.24)
stringio (3.1.2)
strscan (3.1.0)
thor (1.3.1)
tilt (2.3.0)
treetop (1.6.12)
polyglot (~> 0.3)
ttfunk (1.7.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (2.5.0)
uri (1.0.2)
webrick (1.8.1)
yard (0.9.36)

PLATFORMS
x86_64-linux-gnu

DEPENDENCIES
activesupport
asciidoctor-diagram (~> 2.2)
asciidoctor-pdf
base64
bigdecimal
debug
json_schemer (~> 1.0)
minitest
pygments.rb
Expand Down
Loading

0 comments on commit 46285e7

Please sign in to comment.