Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tooling and CI set up + 1st four exercises (#25) #1

Merged
merged 1 commit into from
Sep 2, 2024

Conversation

gvrooyen
Copy link
Owner

@gvrooyen gvrooyen commented Sep 2, 2024

  • hello-word, leap, configuration updates

Completed the hello-world and leap exercises.
Updated configuration.

  • Add workflow in test.yml

  • Modified CI workflow to build Odin from source

  • Completed difference-of-squares, added format-all

Completed the difference-of-squares practice exercise, and added the bin/format-all.sh script that recursively searches for .odin files and runs odinfmt on them.

  • Formatted source, added formatting to webhook

All source files have been reformatted with the odinfmt.json spec. bin/format-all.sh is now run automatically on commit.

  • Added step to push autoformatting changes

The test.yml GitHub workflow now pushes any changes that it makes, so that they persist in the repo.

  • Modified test.yml to not fail on no formatting

test.yml now only attempts a commit and push if the automated formatting actually changed any files.

  • Added missing dashes in argument

  • Fixed bin/verify-exercises

The verify-exercises script now runs the individual test for both concept and practice exercises, and is the default in the GitHub workflow.

  • Added the "grains" exercise

Tests were lifted from the Gleam track.

  • Updated README; fixed test verification
  • The README now contains more thorough instructions on how to add a new exercise.
  • Fixed a variable name in the test runner that caused the "test all solutions" loop to run multiple times when verifying solutions.
  • Formatted config files with configlet

  • Fixed testing bug that clobbered stub solutions

  • Fixed bin/run-test.sh so that it doesn't delete the stub solution when a test fails.
  • Restored exercises, and added a NotImplemented error condition for the stubs.
  • Small code fixes. Updated README.
  • Ran the code formatter on source files.
  • Rehaul of the README to follow Python's example.
  • Added resistor-color exercise. Updated README.

  • Fixed and tested the test.yml action

The workflow now uses a fixed commit hash to pull a specific release of Odin. We now use Ubuntu 22.04 which has the libffi8 dependency, and add clang as the only other dependency.

  • Implemented the resistor-color exercise

  • Removed configlet dependency in test.yml

  • Moved the exercise checklist to a linked GH issue

  • Test runner now checks that stub solution fails

Added a check to bin/run-test.sh so that verifies that the stub solution does not pass any tests. Fixed hello-world.odin to actually be a stub.

  • Fixed incorrect stubs, added panics for stub procs
  • Improved bin/run-test.sh to add more visible color coding to the output.
  • Replaced NotImplemented error codes with a compile-time panic for procedures that have not yet been implemented.
  • Fixed stubs that were actually complete examples.
  • Removed fancy terminal color commands

  • Added support for skipping and unskipping tests

  • Exercises' unit tests were modified so that only a minimal subset of tests are initially enabled; the rest are skipped.
  • The test runner was modified to automatically unskip all test cases before running the tests.
  • Removed mention of NotImplemented in the README

* hello-word, leap, configuration updates

Completed the hello-world and leap exercises.
Updated configuration.

* Add workflow in test.yml

* Modified CI workflow to build Odin from source

* Completed difference-of-squares, added format-all

Completed the difference-of-squares practice exercise, and added the
`bin/format-all.sh` script that recursively searches for .odin files and
runs `odinfmt` on them.

* Formatted source, added formatting to webhook

All source files have been reformatted with the `odinfmt.json` spec.
`bin/format-all.sh` is now run automatically on commit.

* Added step to push autoformatting changes

The `test.yml` GitHub workflow now pushes any changes that it makes, so
that they persist in the repo.

* Modified test.yml to not fail on no formatting

`test.yml` now only attempts a commit and push if the automated
formatting actually changed any files.

* Added missing dashes in argument

* Fixed bin/verify-exercises

The verify-exercises script now runs the individual test for both
concept and practice exercises, and is the default in the GitHub
workflow.

* Added the "grains" exercise

Tests were lifted from the Gleam track.

* Updated README; fixed test verification

- The README now contains more thorough instructions on how to add a new
  exercise.
- Fixed a variable name in the test runner that caused the "test all
  solutions" loop to run multiple times when verifying solutions.

* Formatted config files with configlet

* Fixed testing bug that clobbered stub solutions

- Fixed bin/run-test.sh so that it doesn't delete the stub solution when
  a test fails.
- Restored exercises, and added a NotImplemented error condition for the
  stubs.

* Small code fixes. Updated README.

- Ran the code formatter on source files.
- Rehaul of the README to follow Python's example.

* Added resistor-color exercise. Updated README.

* Fixed and tested the test.yml action

The workflow now uses a fixed commit hash to pull a specific release of
Odin. We now use Ubuntu 22.04 which has the libffi8 dependency, and add
clang as the only other dependency.

* Implemented the resistor-color exercise

* Removed configlet dependency in test.yml

* Moved the exercise checklist to a linked GH issue

* Test runner now checks that stub solution fails

Added a check to bin/run-test.sh so that verifies that the stub solution
does *not* pass any tests. Fixed hello-world.odin to actually be a stub.

* Fixed incorrect stubs, added panics for stub procs

- Improved bin/run-test.sh to add more visible color coding to the
  output.
- Replaced NotImplemented error codes with a compile-time panic for
  procedures that have not yet been implemented.
- Fixed stubs that were actually complete examples.

* Removed fancy terminal color commands

* Added support for skipping and unskipping tests

- Exercises' unit tests were modified so that only a minimal subset of
  tests are initially enabled; the rest are skipped.
- The test runner was modified to automatically unskip all test cases
  before running the tests.

* Removed mention of NotImplemented in the README
@gvrooyen gvrooyen merged commit ded8678 into gvrooyen:main Sep 2, 2024
2 of 3 checks passed
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.

1 participant