-
-
Notifications
You must be signed in to change notification settings - Fork 546
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
Add a rule to the style guide to explain abbreviations, acronyms and initialisms #1716
Comments
@wolf99 said:
I said:
@wolf99 said:
I think most of those terms are better known by their initialisms / acronyms (first part of my rule), so there is no benefit from spelling them out. For example, if you're talking about NASA I won't really benefit from you saying the "The National Aeronautics and Space Administration (NASA)", instead you should say "The American space agency, NASA". The only exceptions here are: ABS (could be one of several things); CRUD (jargon: avoid if possible); DPI (could be dots or deep packet inspection (jargon), just say the whole thing once or use a better term (pixel density or packet inspection)); DSL (jargon, spell it out); FIFO (jargon: prefer queue and stack to FIFO, FILO). If there is some genuine reason to say CRUD or DSL loads (what?), then you can use the initialism with explanation under the second part of the rule I gave. |
(cc @kotp who has opinions on acronyms) |
If we are aiming for beginner programmers, without regard to veteran English experience, then I do think that first use of any acronym, abbreviated word, initialism, should be clarified. For example, RADAR I only know what it means, technically, because of the maintenance I did on those systems. Otherwise, I would have only, probably, ever had only a vague idea of what it stands for. I would not expect anyone to know what it means, or even that it is in fact an abbreviation, acronym, or initialism, though I would suspect that they might have a vague idea of what it means, if not technically what it is. I don't think that is necessarily good enough. I expect that this has been around long enough and is globally something that has been around, that it could be something that could be looked up rather easily. I don't know that I would know what API is, given how loosely that is used all the time. It should, honestly, be defined specifically, and every time, and otherwise avoided. The things like DIY is influenced also by my experience, and I had to come to accept that it is now being used as Design It Yourself. (Like a DIY website). It's not too hard for someone to read an abbreviation and make the intuitive "I know exactly what that means, no need to look it up." only to be confused later when it is used in a way that makes no sense to them, because while they know exactly what it means to them, we did not know that. It is better to define those things on first use. (And it is easy to skip over an explanation if it starts to confirm what we already know.) We already deal with a lot of languages, some of them even human languages. We should avoid confusion where possible, and I think the practice of defining (or avoiding) is easy. After all, yes, DNA (deoxyribonucleic acid) is very long to write out, but don't we have tooling that makes DNA expand out to what it should? Or, if we decide to continue to use the short form, then it is just as easy to define it there. Remember, we also have the additional confusion of different programming languages using different terms for the same thing, or same terms for different things. We have enough work in front of us, we can avoid introducing more than we need to. |
I have no idea what you are talking about… ;) |
I agree with your point about defining ambiguous terms. Things like DIY or API should be avoided or defined in context. The point of the first part of my rule is that what "radar" or "NASA" stands for may not be relevant. We can just treat them as nouns, and we don't define all nouns. Most people will know it as some kind of sensing equipment and that's probably good enough. Somewhat similarly, we don't define what a "minefield" is, we just assume that people will know or look that up. As for DNA, I think we will be introducing more confusion by referring to it as deoxyribonucleic acid because people do not know it best by that name. The first line of the Nucleotide Count exercise in Julia reads:
I think simpler language would say something like:
or
I think we would only be referring to DNA long-form if we are explaining what DNA is, and I'm not sure we should be doing that. Here's an attempt at doing it quickly, it just comes off clumsy (imo):
I don't think it is a great idea to explain the flavour of the problem like this. In v3 we're going to have some reference material explaining concepts, and if there are some common acronyms that should be explained there then, sure, they could be referenced and spelled out, but I can't think of anything that would be covered there that is an acronym (except maybe HTTP or HTML which might be important enough to some languages to warrant an explainer, and, again, those are better known by their acronyms, and I think we might confuse matters confuse matters by saying hypertext transfer protocol every time). |
Please take a look at this PR for my thoughts on language around DNA 🙂 (along with this discussion. Just to give an indication of where I think these things should lie. |
I think that's a nice introduction. I don't think it would be improved much by calling DNA by its long name. My only minor beef with the Hamming distance intro is that it kinda implies that the Hamming distance is a biology concept that is also used elsewhere rather than an information theory concept that it is used in all sorts of places, including biology. Here's an attempt to rewrite the nucleotide count intro to be more interesting:
But, OTOH, I don't care a lot about what colour this bike shed is, and I think I've articulated my thoughts on this fairly well, so I think I might be done? |
I agree about Hamming, it is a bit unfortunate. But it makes for good conversation when the solution also uses abbreviations such as "str" where I try to ensure that I take that as an abbreviation of "strand" rather than "string" (because of the language of the problem domain, vs, the language of data type or "programming"). Anyway, yeah, Hamming is a more general algorithm, and I find that very often this exercise is the first people hear about it. |
I think, as with my other comments, that most of this can be solved by not choosing. It is problematic that people don't now what HTML actually means; yet writing it out only hints and doesn't explain. That said, as a non-native, nativelike speaker, I absolutely hate abbreviated words such as YMMV and ICIMIY and IANAL, because it actively stops my train of thought -- I have to spell it out, say it out loud and sometimes even translate it back to the correct Dutch paradigm, because some of these expand to a colloquialism or proverb or otherwise abstract thing.
You shouldn't have to choose when you explain it or not. Always explain it, but choose between having the acronym first (NASA, JPEG, GIF, PHP) or the unabbreviated form first. |
I think those are good rules. I would tend not to expand well-known abbreviations like NASA, JPEG, etc, and instead just explain what they are. e.g. "NASA, the American Space Agency" or "JPEG, a common image file format" unless it was important to be precise: "The Joint Photographic Experts Group (JPEG) define the popular JPEG File Interchange Format. Given a file in this format...". But whatever. Either way is fine. |
I would even take it a step further and say that in some cases, using the expanded form is harmful. One of those cases is the aforementioned JPEG. I can't imagine a case where someone is familiar with the Joint Photographic Experts Group, but isn't familiar with JPEG, but I know many, many, many people who are in the opposite situation. But beyond that, knowing what JPEG stands for doesn't offer any information about what JPEG is. And throwing out the term Joint Photographic Experts Group can only distract from an exercise involving JPEG compression. Even worse would be mp3 as I can picture people wondering what the hell moving pictures have to do with audio… I'd put DNA (another term kicked around in these threads) in the same bucket. Knowing the expanded term offers no useful information for the student with respect to solving the exercise, whereas knowing what the abbreviation/initialism refers to does. |
MPEG-1 Audio Layer 3 does very well to explain that it is the audio layer, and, in my mind, helps. The fact that the MPEG part is there, if known, shows that it is/was used as a layer with digital (rather than analog) video. But then I was around when these things were coming about, and have worked in studios. So I don't know if that background biases way too much of what that tells me by having it "uncompressed" from MP3. Not that I disagree with the idea that there are times when the abbreviation can be used as a "pronoun" is, and can be defined well enough in the context that is surrounding it. Some of these become easily found/understood with that context. But there have been enough times that I have had to look up abbreviations and acronyms and have been confused, and have chosen the wrong definition, because the context was not helpful. (Perhaps just a lack of familiarity in the English language or the modern uses.) |
I would avoid capitalizing the last three words there in case it too strongly suggests that it is part of the abbreviation. It might lead someone to convince themselves, falsely, that it is "North American Space Agency" which would be unfortunate. This is a good example, in a way, of how our words influence what someone might believe is authoritative. Instead, "NASA, the United States space agency" would be informative, without suggesting the tie to the abbreviation. (American being associated with two continents around these parts), yet most of the countries in America are not associated with NASA. |
Yah. I think those are good exceptions to the rule, and shouldn't be the rule themselves. My suggestions are all based on explanation. So if the expanded form doesn't offer explanation, don't expand, but explain 🔥🔥🔥 |
Cool. Your rules before imply that the expanded form should always be given, so that could do with some rewording in the final guidance, maybe, if the consensus is that all terms should be explained, but not necessarily expanded. |
Yah I have been convinced by all of you that occasionally we shouldn't expand. Then I was thinking: we'll why do we expand in the first place? It's because we try to explain. So the core reasoning is that we want to be clear. Therefore the rule should be: always explain. |
@iHiD, there seems to be some consensus that a variant of SleepingByte's suggestions are good. Here's my attempt at a revision to match: BEGIN Abbreviations are often more difficult to understand than other phrasing options.
Guidance examples:
END Separate section:
This revision doesn't account for latin-derived abbreviations like e.g., i.e., etc. I think they should be explicitly excepted from this rule or barred entirely (I prefer that they are permitted and excepted from the requirement to explain). I've deliberately excluded this example because I don't think it is very clear: "HTML (HyperText Markup Language) doesn't lend itself well to represent DNA (Deoxyribonucleic Acid)". |
See also #1716. Thanks to SleeplessByte, rpottsoh, kotp, ErikSchierboom, etc :)
* resistor-color-duo: add test case to ignore additional colors (exercism#1569) resistor-color-duo: ignore additional colors * [Space Age] Put Earth in it's proper order - Move Earth into its proper position in the solar system - Make wording more consistent * Remove commas from seconds amount Co-Authored-By: Victor Goff <[email protected]> * Add data structures to topic list We have a number of exercises that are about data structures, but the topic was missing. * Scrabble is a trademark name. 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 <[email protected]> * Add testcase * Matrix: Add symmetric test cases for non-square matrices * matrix: fix whitespace issue (exercism#1578) * matrix: fix whitespace issue Fix whitespace issue introduced by exercism#1576, closes $1577. * Matrix: bump version number. * leap: Add years that refute some unusual factors (exercism#1581) 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 (exercism#1509) * 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 * paasio: Title as "PaaS I/O" instead of default "Paasio" (exercism#1589) Improves the copy only, so acceptable in light of exercism#1560. * Fix broken link to website contributing document * topics: add 'pointers' in section 'data types' * robot-name description: singular "robot" Use singular forms consistently throughout robot-name/description.md * connect: Replaced rhombus with parallelogram Replaced "rhombus" with "parallelogram" to clarify that the game's board height and width must not be the same. Closes exercism#1597 * minesweeper: remove border (exercism#1602) * 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". * list-ops: change order in append test case description (exercism#1611) * Change order in append test case description * Bump patch number * isbin-verifier: add EOF newline (exercism#1616) 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. * exercism#1623 `grade-school` canonical data does not correspond to the exercise description (exercism#1624) - case description is altered according to the discussion results - patch version of the canonical-data is updated * fix: Remove trailing spaces I have confirmed that no JSON version change is needed * Bob: Cleans up language on a couple of test cases Resolves exercism#1630 * Bob: Replaces DMV with dentist (exercism#1632) Resolves exercism#1630 Replaces ambiguous `DMV` with `dentist` and `NASA`. Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * luhn: check a number with an even remainder (exercism#1635) * test(luhn): check a long number with an even remainder * fix(luhn): minor version bump instead of a patch * [two-bucket] Make valid moves clearer (exercism#1644) There has been confusion over the reuse of the word "one" in both the descriptions of the bucket ("Bucket one") and the moves ("Move from one bucket"). This removes that confusion, which will help reduce misunderstanding, especially amongst non-native English speakers. * scale-generator: fix name of augmented interval (exercism#1643) The interval described is an augmented *second*, not an augmented first. Added also its composition in terms of steps for completeness. Fixes exercism#1642 Signed-off-by: Rafael Fonseca <[email protected]> * Add requirements of the exercise (exercism#1645) * two-fer: Update description.md (exercism#1583) * Update description.md I don't think it's great anyways but I'm tired of seeing students submit X as the variable name because of picking up some subliminal hint here. * Update exercises/two-fer/description.md Co-Authored-By: Victor Goff <[email protected]> Co-authored-by: Victor Goff <[email protected]> * Update Simple Linked List metadata (exercism#1648) Previous link was no longer working properly, so use web.archive.org need this before merging exercism/rust#935 * Fix metadata source_url for simple-linked-list exercise (exercism#1649) Previous web.archive.org link pointed to the book homepage. Change it to point to simple-linked-list page. * Fix apophenia error slowing student progress (exercism#1650) * Fix apophenia error slowing student progress apophenia - noun "the tendency to perceive a connection or meaningful pattern between unrelated or random things" compare: pareidolia - noun "to perceive a specific, often meaningful image in a random or ambiguous visual pattern" - Merriam Webster's * Fix premature doubling in 1st example for Luhn * Update description.md (exercism#1653) The test suite is testing against the key having only lowercase letters, not alphanumeric. * two tests to check case insensitive behavior (exercism#1658) * Revert "two tests to check case insensitive behavior (exercism#1658)" (exercism#1659) This reverts commit ea9db9b. * Palindrome Products: refine the problem (exercism#1662) For me it took a while to understand that we calculate product of exactly two numbers. BTW in the [original problem](https://projecteuler.net/problem=4) it is stated clearly. * robot-name: remove dead link (exercism#1663) gSchool.it is now a domain parking spot * Add uuid field to all test cases (exercism#1676) * Add uuid field to documentation * Update canonical schema * Add uuid field to test cases * Update canonical-schema.json Co-authored-by: Sascha Mann <[email protected]> * Update comments in README * Remove version check Co-authored-by: Sascha Mann <[email protected]> * Remove version (exercism#1678) * Replace optional key with scenarios (exercism#1677) * Replace optional key with scenarios Co-authored-by: Victor Goff <[email protected]> * Add GH Actions CI workflow (exercism#1680) * Add GH Actions CI workflow * install yarn dependencies * fix node-version field * Remove check_optional Co-authored-by: Jeremy Walker <[email protected]> * cache yarn dependencies * use node 12 * remove Travis CI config * Update .github/workflows/ci.yml Co-authored-by: Sascha Mann <[email protected]> Co-authored-by: Jeremy Walker <[email protected]> Co-authored-by: Sascha Mann <[email protected]> * Add description of tests.toml (exercism#1682) * Add description of tests.toml * Update CONTRIBUTING.md Co-authored-by: Jeremy Walker <[email protected]> Co-authored-by: Jeremy Walker <[email protected]> * Add scenarios to example and describe purpose (exercism#1683) * CI: Clean up workflow and clarify what "JS tests" are (exercism#1697) * Move required files check to separate job * Clarify what JS tests are * Rename schema-tests to schema-validation * CI: Add codeowners (exercism#1699) * CI: Add codeowners * Update .github/CODEOWNERS Co-authored-by: Jeremy Walker <[email protected]> Co-authored-by: Jeremy Walker <[email protected]> * Add reimplements to schema (exercism#1703) * Add reimplements to schema * Fix formatting * list-ops: add append case (exercism#1612) * Add case to append empty list to list * Add UUID Co-authored-by: wolf99 <[email protected]> * resistor-color/resistor-color-duo: extend exercise explanation (partial copy from resistor-color-duo) (exercism#1667) * CI: Check that UUIDs are unique (exercism#1700) * diffie-hellman: Reword 'in range 1 .. p' (exercism#1688) There are some languages where the syntax `1 .. p` includes both the endpoints. For example, the Nim code: ``` for i in 1 .. 3: echo i ``` shows the output: ``` 1 2 3 ``` So let's prefer the wording from the `description.md`: "Alice picks a private key, a, greater than 1 and less than p." * run-length-encoding: 'lower case' -> 'lowercase' (exercism#1708) This makes it more consistent with another test: "description": "lowercase characters", Both forms are correct, but "lowercase" is more common. See: https://english.stackexchange.com/questions/59409 * isbn-verifier: 'isbn number' -> 'isbn' (exercism#1690) Most of the test descriptions just used 'isbn', so let's be consistent and avoid "International Standard Book Number number". * perfect-numbers: 'natural number' -> 'positive integer' (exercism#1691) There is no convention whether zero is a natural number, so let's avoid the issue. For example, see: - https://mathworld.wolfram.com/NaturalNumber.html - https://en.wikipedia.org/wiki/Natural_number - https://math.stackexchange.com/questions/283/is-0-a-natural-number The previous wording of ``` "description": "Zero is rejected (not a natural number)", ``` could be especially jarring for some tracks. For example, Nim defines `Natural` and `Positive` types, and `Natural` includes 0. See: - https://nim-lang.github.io/Nim/system.html#Natural Co-authored-by: Sascha Mann <[email protected]> Co-authored-by: Sascha Mann <[email protected]> * grains: Be more verbose in test-level descriptions (exercism#1707) The top-level `description` of these cases was: ``` "description": "returns the number of grains on the square", ``` but each test-level `description` contained only a number. The comments in `tests.toml` are generated only from the test-level `description`, and so the comments there will now be more informative than the previously seen: ``` # 1 "9fbde8de-36b2-49de-baf2-cd42d6f28405" = true # 2 "ee1f30c2-01d8-4298-b25d-c677331b5e6d" = true ``` * Add Style Guide (exercism#1713) * Add Style Guide * Update STYLE-GUIDE.md Co-authored-by: Sascha Mann <[email protected]> * Update STYLE-GUIDE.md Co-authored-by: Sascha Mann <[email protected]> * Update STYLE-GUIDE.md Co-authored-by: Ryan Potts <[email protected]> * Update STYLE-GUIDE.md Co-authored-by: Sascha Mann <[email protected]> * Update STYLE-GUIDE.md * Update STYLE-GUIDE.md Co-authored-by: Sascha Mann <[email protected]> Co-authored-by: Colin Caine <[email protected]> Co-authored-by: Ryan Potts <[email protected]> * CI: Add check that reimplemented-values are valid UUIDs (exercism#1702) Co-authored-by: ee7 <[email protected]> * CI: Use jq instead of grep/sed (exercism#1710) * Add esoteric example. (exercism#1717) * Square-Root: Add new exercise (exercism#1582) * Add square root exercie * Cite myself in metadata * Add radicand explantion, use PR as source_url * Add UUIDs, remove version * Adjust description.md Co-authored-by: wolf99 <[email protected]> * CI: Add workflow_dispatch as manual trigger (exercism#1711) This is useful for debugging CI or when working on a branch before opening a PR * security: CVE-2020-7598 (exercism#1706) * ⬆️ latest ajv-cli * 🔒 CVE-2020-7598 * Add abbreviations and restructure slightly (exercism#1718) * Add abbreviations and restructure slightly * Update STYLE-GUIDE.md * Update with better text * Update STYLE-GUIDE.md Co-authored-by: Colin Caine <[email protected]> * Update STYLE-GUIDE.md Co-authored-by: Colin Caine <[email protected]> Co-authored-by: Derk-Jan Karrenbeld <[email protected]> * Style: Fix whitespace issues (exercism#1720) * 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 * grade-school: Fix typo in test description (exercism#1689) * queen-attack: Fix typo in test description (exercism#1692) * Update nucleotide-count description (exercism#1719) See also exercism#1716. Thanks to SleeplessByte, rpottsoh, kotp, ErikSchierboom, etc :) * CI: Add /rebase command (exercism#1698) (stolen from v3 repo) * Add workflow recommendations and templates (exercism#1722) 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: Ensure immutability of test cases (exercism#1712) * 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 <[email protected]> Co-authored-by: Corey McCandless <[email protected]> Co-authored-by: BethanyG <[email protected]> Co-authored-by: Corey McCandless <[email protected]> * Add test data for future edits to the script Co-authored-by: BethanyG <[email protected]> Co-authored-by: Corey McCandless <[email protected]> * rational-numbers: Make formulas more readable (exercism#1655) * rational-numbers: Make formulas more readable * Remove superscript characters * Readd parentheses * leap: fix typo (exercism#1726) * rational-numbers: Remove redundant factor (exercism#1727) If `b₁ = 0`, then `r₁` is not a rational number anyway. From https://github.com/exercism/problem-specifications/pull/1655/files#r421573667 * two-bucket: test inability to reach the goal (exercism#1580) 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. * [CI] Bump rebase action to fix CVE-2020-15228 (exercism#1731) * [CI] Only run immutability check on PRs (exercism#1730) Let's remove this until exercism#1728 has been resolved properly to avoid build errors on master. * Remove linkless words (exercism#1733) * build(deps): bump ini from 1.3.5 to 1.3.7 (exercism#1734) 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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Grade school exercise: A student cannot simultaneously be in two grades since the users' names are unique (exercism#1735) * Add configlet (exercism#1737) * change: add simplest test case (exercism#1739) * prime-factors: add further variations (exercism#1755) * [transpose] added 'jagged triangle' test (exercism#1748) * kindergarten-garden: completionist (exercism#1744) * list-ops: reimplement ambiguous tests (exercism#1746) * 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 don't make sense per 1761 (exercism#1762) * Hamming: remove tests that dont make sense * return tests & normalise error messages * grade-school: Change a UUID to be version 4 (exercism#1760) 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 * canonical-schema: Fix UUID regex pattern (exercism#1759) 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`. * [CI] Verify that scenarios are defined in schema Co-authored-by: Josh Goebel <[email protected]> Co-authored-by: Victor Goff <[email protected]> Co-authored-by: Victor Goff <[email protected]> Co-authored-by: Katrina Owen <[email protected]> Co-authored-by: wolf99 <[email protected]> Co-authored-by: DagmarTimmreck <[email protected]> Co-authored-by: Michael Morehouse <[email protected]> Co-authored-by: Peter Tseng <[email protected]> Co-authored-by: Chris Couzens <[email protected]> Co-authored-by: Sam Warner <[email protected]> Co-authored-by: Gabriel Nelle <[email protected]> Co-authored-by: Chris White <[email protected]> Co-authored-by: traxam <[email protected]> Co-authored-by: ShaoWei Teo <[email protected]> Co-authored-by: Elena Parovyshnaia <[email protected]> Co-authored-by: Florian Keller <[email protected]> Co-authored-by: Ryan Potts <[email protected]> Co-authored-by: Ryan Potts <[email protected]> Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> Co-authored-by: Pranas Ziaukas <[email protected]> Co-authored-by: Jeremy Walker <[email protected]> Co-authored-by: Rafael F <[email protected]> Co-authored-by: Zuzanna Kru <[email protected]> Co-authored-by: Bruce Park <[email protected]> Co-authored-by: Tejas Bubane <[email protected]> Co-authored-by: Jubilee <[email protected]> Co-authored-by: Charles Ross <[email protected]> Co-authored-by: Ole Kröger <[email protected]> Co-authored-by: DmitrySamoylov <[email protected]> Co-authored-by: Colin Caine <[email protected]> Co-authored-by: Sascha Mann <[email protected]> Co-authored-by: Corey McCandless <[email protected]> Co-authored-by: wolf99 <[email protected]> Co-authored-by: wolf99 <[email protected]> Co-authored-by: Kirill Artamonov <[email protected]> Co-authored-by: ee7 <[email protected]> Co-authored-by: Derk-Jan Karrenbeld <[email protected]> Co-authored-by: Derk-Jan Karrenbeld <[email protected]> Co-authored-by: BethanyG <[email protected]> Co-authored-by: Yunseon Choi <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pedro Rolo <[email protected]> Co-authored-by: peerreynders <[email protected]>
Originally posted by @wolf99 in #1713 (comment)
Please read the discussion there.
The text was updated successfully, but these errors were encountered: