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

Ci verify scenarios #1

Merged
merged 96 commits into from
Jan 6, 2021
Merged

Ci verify scenarios #1

merged 96 commits into from
Jan 6, 2021

Conversation

ErikSchierboom
Copy link
Owner

No description provided.

ErikSchierboom and others added 30 commits August 17, 2019 09:32
- Move Earth into its proper position in the solar system
- Make wording more consistent
Co-Authored-By: Victor Goff <keeperotphones@gmail.com>
[Space Age] Put Earth in it's proper order
We have a number of exercises that are about data structures, but
the topic was missing.
It should be capitalized.  It is also a noun, meaning a "doodle", and a verb, such as what this description could be considered.

In our case, we are referring to the trademarked name of the game Scrabble.

Signed-off-by: Victor Goff <keeperotphones@gmail.com>
* matrix: fix whitespace issue

Fix whitespace issue introduced by exercism#1576, closes $1577.

* Matrix: bump version number.
leap 1.6.0

Some implementations unexpectedly pass the entire test suite:

* Replacing 4 with 499, 998, or 1996
* Replacing 100 with 5, 10, or 20
* Replacing 100 with 3, 6, 12, 15, 30, 60, 75, 150, 300
* Replacing 400 with 125, 250, 500, 1000, or 2000

Adding these test cases would correctly point out that these solutions
are incorrect.

I think it's a bit unusual since no student is going to write such an
implementation except a student deliberately trying to slip past the
tests.
Or maybe a student trying to micro-optimise? Maybe they are trying to
test whether division by small numbers is faster than division by large
numbers?

But discussion participants have deemed that the cost of three tests is
worth the benefit of reducing mental overhead of mentors, since such
solutions have in fact been seen in the wild.
* Add micro-blog exercise

This is an exercise requiring students to truncate unicode strings.
Solves exercism#1507

* Micro-blog: Don't assume native English speaker

Thank you @SaschaMann for the feedback and suggestion.
exercism#1509 (comment)

> I don't like that this assumes the perspective of a native English
> speaker. English is a foreign language to most of the world. Perhaps
> something along the lines of "text in most of the world's languages and
> scripts" would be a better description.

* Micro-blog: Add tests for different languages

Feedback from @SaschaMann
exercism#1509 (comment)

> I think it would be nice to add some test cases that aren't emoji or
> English - perhaps cases with germanic umlauts, cyrillic and/or greek
> letters, historic scripts etc. - because that's one of the main uses
> and goals of unicode.

I've added German, Bulgarian, and Greek examples. All of them have
non-English characters.

None of these characters use multiple UTF-16 codepoints. As such, if you
use a UTF-8 programming language you may first have trouble with the
German example, but if you use a UTF-16 language you will probably first
have trouble at the Emoji example.

I chose not to add an example with historic scripts, because I'm not
aware of any that display nicely in my terminal or text-editor. Perhaps
in future some could be added.

I wanted another example that would be problematic in UTF-16, so I added
a poker hand example using playing cards.

* Micro-blog: Add German truncated example

Comically, it goes from "bear carpet" to "beards".

@SaschaMann, thank you for finding the example for me:
exercism#1509 (comment)

* Micro-blog: Add longer maths example

Empty set is a proper subset of the natural numbers which is a proper
subset of the integers, which is a proper subset of the rational numbers
which is a proper subset of the reals which is a proper subset of the
complex numbers.

It remains true when truncated which is quite nice
Use singular forms consistently throughout robot-name/description.md
robot-name description: singular "robot"
topics: add 'pointers' in section 'data types'
Fix broken link to website contributing document
Replaced "rhombus" with "parallelogram" to clarify that the game's board height and width must not be the same. Closes exercism#1597
connect: Replaced rhombus with parallelogram
* minesweeper: remove border

Updates the board example to remove the need for a border that doesn't
match the test data and clarifies a couple small points.

* minesweeper: fix characters

Mispelled "asterisk" and didn't use the same character as `diamond` for
the blank spaces.

* minesweeper: use mine counts

Updates "score totals" -> "mine counts".
* Change order in append test case description

* Bump patch number
This fix the issue that `configlet generate .` is not idempotent as the track's README might manually adjust for the newline instead.

This is something I came across while working on exercism/julia#161.
…e exercise description (exercism#1624)

- case description is altered according to the discussion results
 - patch version of the canonical-data is updated
I have confirmed that no JSON version change is needed
artamonovkirill and others added 28 commits October 17, 2020 05:58
* ⬆️ latest ajv-cli

* 🔒 CVE-2020-7598
* Add abbreviations and restructure slightly

* Update STYLE-GUIDE.md

* Update with better text

* Update STYLE-GUIDE.md

Co-authored-by: Colin Caine <cmcaine@gmail.com>

* Update STYLE-GUIDE.md

Co-authored-by: Colin Caine <cmcaine@gmail.com>
Co-authored-by: Derk-Jan Karrenbeld <derk-jan@karrenbeld.info>
* Style: Remove trailing whitespace

With this commit, people who run `configlet generate` and commit the
generated READMEs as-is will no longer introduce trailing whitespace
into their track repos.

* Style: Add missing final newlines
See also exercism#1716.

Thanks to SleeplessByte, rpottsoh, kotp, ErikSchierboom, etc :)
Adds a document that explains how to set up Continuous Integration (CI) workflows for an Exercism Language Track using GitHub Actions (GHA). It provides best practices and examples for you to use to make your own fast, reliable and robust CI workflows. 

Additionally, it provides GHA workflows. The GHA workflows can be adapted to work with any CI, track, or project, because the base structure will remain the same.
* CI: Check immutability of test data

* Iterate old cases instead

* Add to ci.yml workflow

* Fix path to python script in workflow

* Set chmod=+x for python script

* Apparently latest does not mean latest

* Fix path

* Test mutated test in PR

* Revert "Test mutated test in PR"

This reverts commit 18dbfa2.

* Fix build for workflow_dispatch triggers

* Break out of loop early on failure

* Fix typo

* Handle removal of tests better

* Add scenarios check

* Update bin/check-immutability.py

* Make variable names longer & use sys.exit instead of exit

Co-authored-by: BethanyG <BethanyG@users.noreply.github.com>
Co-authored-by: Corey McCandless <cmccandless@users.noreply.github.com>

Co-authored-by: BethanyG <BethanyG@users.noreply.github.com>
Co-authored-by: Corey McCandless <cmccandless@users.noreply.github.com>

* Add test data for future edits to the script

Co-authored-by: BethanyG <BethanyG@users.noreply.github.com>
Co-authored-by: Corey McCandless <cmccandless@users.noreply.github.com>
* rational-numbers: Make formulas more readable

* Remove superscript characters

* Readd parentheses
1. A test where the goal is too large.

The student solution would need to either:

* (If searching the state space) Notice that there are no further states
  to be visited, and yet the solution has not been reached.
* Notice that the goal is larger than the larger bucket, therefore can
  be rejected immediately.

2. A test where the goal is not too large yet still can't be reached

The student solution would need to either:

* (If searching the state space) Notice that there are no further states
  to be visited, and yet the solution has not been reached.
* Notice that the goal is not divisible by the GCD of the bucket sizes,
  therefore can be rejected immediately.

In case the student assumes that all non-coprime bucket counts will
invalidate the goal, a counterexample to that is given as well (buckets
not coprime but goal is still possible).

There are ten implementing tracks:
bash csharp fsharp go java javascript python ruby rust typescript

Of these tracks, only two of them (Bash, Go) currently test the
condition where it is not possible to reach the goal.

Having this test serves as a reminder that it remains wise to handle the
situation where a search has not found its goal.

It doesn't seem like this was discussed in the original submission:
exercism/DEPRECATED.javascript#68
So it seems like it would be good to have a discussion of it on record.
Let's remove this until exercism#1728 has been resolved properly to avoid build errors on master.
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](npm/ini@v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Format

* Re-implement ambigious test cases

* Clarifying comment

* Re-add old versions of reimplemented tests

* Remove accidantally commited executable

* Clarifying commentary about integer division.

* Add advice
* Hamming: remove tests that dont make sense

* return tests & normalise error messages
Commit 03529d0 (exercism#1735) added a new test case for the `grade-school`
exercise, but the UUID added was version 1 rather than version 4. This
was not caught by CI because the regex in the schema validator was
too permissive (fixed by exercism#1759).

Some reasons to prefer version 4 UUIDs:
- Version 4 is the right version for a fully random and unique
  identifer; we don't want to indicate anything about the machine that
  generated the UUID, and version 1 UUIDs have a timestamp and MAC
  address component.
- All of the other UUIDs currently in `problem-specifications` are valid
  version 4 UUIDs.
- `configlet uuid` generates a version 4 UUID.
- A reader familiar with the UUID specification (RFC 4122) might see a
  version 1 UUID and infer that the timestamp or MAC address component
  is useful, causing them to wonder why the others are version 4.
- A user who generates a version 1 UUID might unintentionally leak their
  MAC address.

See also:
- https://tools.ietf.org/html/rfc4122.html
Commit cea02af (exercism#1676) added a UUID to each test case. However, the
regex pattern that it added to the canonical schema was too permissive,
meaning that CI would pass on a PR that added, for example, a version 1
UUID (see exercism#1735).

Changes:
- Use `a-f` instead of `a-z`
- The third group must start with `4`.
- The fourth group must start with `8`, `9`, `a` or `b`.
@ErikSchierboom ErikSchierboom merged commit 986a6c5 into master Jan 6, 2021
@ErikSchierboom ErikSchierboom deleted the ci-verify-scenarios branch January 6, 2021 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet