GithubHelp home page GithubHelp logo

legacy-docs's Introduction

legacy-docs's People

Contributors

amaltson avatar aos avatar bdw429s avatar erikschierboom avatar exercism-bot avatar ferhatelmas avatar fridatveit avatar ihid avatar insti avatar jonmcalder avatar kotp avatar kytrinyx avatar mhinz avatar nywilken avatar orthodex avatar parkerl avatar patrickdavey avatar petertseng avatar pgaspar avatar roberthopman avatar robphoenix avatar rpottsoh avatar smarticles101 avatar stargator avatar stkent avatar tcnickolas avatar teo-shaowei avatar tleen avatar wolf99 avatar yawpitch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

legacy-docs's Issues

Document how to update exercise test suites

These are currently documented in
https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#updating-an-exercise-test-suite

They should be moved into the https://github.com/exercism/docs/tree/master/you-can-help directory in this repository. A good name would be update-exercise-test-suites.md

That will take two pull requests. One in this repository to add the new file, and one in the https://github.com/exercism/x-common repository to delete the copy that was moved from the CONTRIBUTING.md file.

Request guidance for how to select the list of core exercises

A search for "core" in this repository has a few hints, mainly https://github.com/exercism/docs/blob/master/about/conception/progression.md#meaningful-and-flexible-linear-progression-in-exercism

A very important portion of that text seems to be "For a student learning a completely new programming language, completing the 10-20 core exercises would give students confidence that they've touched on the full range of key concepts" - this statement gives an overarching purpose that should drive the design of the track core.

I now have what I came for, so I'm going to close this issue immediately on filing. If you think it could be more prominently documented elsewhere and/or expanded on, you're free to discuss that.

Document track level linting with configlet

These are currently documented in
https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-level-linting-with-configlet

They should be moved into the https://github.com/exercism/docs/tree/master/maintaining-a-track directory in this repository.

That will take two pull requests. One in this repository to add the new file, and one in the https://github.com/exercism/x-common repository to delete the copy that was moved from the CONTRIBUTING.md file.

Document philosophy and process of syncing implementations with the exercise READMEs

UPDATE: The discussion about how to resolve this was reopened—this issue is on hold until the linked discussion is resolved.

There's a very interesting discussion in exercism/discussions#2 discussing the problems around confusing exercise READMEs that don't always match the implementation of the exercise.

In particular, this occurs when we've discovered an inconsistency or ambiguity in a README, and then updated the README to clarify. Now we have a problem: some tracks chose to interpret the problem specification in one way, others in another. Now we have a README that clearly says one thing, and some implementations clearly do something else.

Updating all the implementations so that they match the specification can be a long and drawn-out process, because many people are involved, and some tracks don't have maintainers.

The discussion linked to above contains a great exploration of the problems and trade-offs, and also suggests a very practical solution.

This discussion should be boiled down to a short explanation of the problem, along with documentation about the process we should follow going forward.

This will likely link to the documentation about bulk issue creation, exercism/docs#10

Should implement-an-exercise-from-specification.md#configuring-the-exercise include nextercism keys?

https://github.com/exercism/docs/blob/master/you-can-help/implement-an-exercise-from-specification.md#configuring-the-exercise has slug, difficulty, topics. Should the example include all things in exercism/meta#16 ? Should it instead incorporate exercism/meta#16 by reference? Should something else happen?

If not, we run the risk that someone following the document will only include the three fields and configlet will not accept.

Granted, maybe that won't happen if they look at adjacent exercises and use them as examples, but even in that case it's still not clear the meaning of the UUID or how to get one.

Organize existing project-wide documentation into this central repository

This is the documentation that we have. We need to:

  • decide how to organize the documentation
  • copy documentation into the new locations
  • update documentation links throughout the project
  • delete documentation from old locations

exercism/exercism.io

This is in the docs/ directory (https://github.com/exercism/exercism.io/tree/master/docs)

docs/
├── filing-a-bug-report.md
├── fixing-exercise-readmes.md
├── flipper-feature-flags.md
├── getting-involved-in-a-track.md
├── img/*
├── improving-consistency-across-tracks.md
├── inviting-new-maintainers.md
├── maintaining-a-track.md
├── overview-architecture.md
├── overview-of-exercism.md
├── porting-an-exercise.md
├── reviewing-a-pull-request.md
├── roadmap.md
├── setting-up-local-development.md
├── the-contribution-workflow.md
├── the-exercism-way.md
├── triaging-issues-in-a-track.md
└── writing-track-documentation.md

We also have a CONTRIBUTING file in exercism/exercism.io which has a lot of project-wide content.

exercism/x-common

This is the table of contents of the CONTRIBUTING file (https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md).

  • We Will Gladly Help You Help Us
  • Code of Conduct
  • Overview
  • Updating an Exercise Test Suite
    • Updating a Generated Test Suite
  • Tweaking a README
  • Porting an Exercise to Another Language Track
    • Providing Feedback on the Site for an Exercise You Implemented
  • Implementing a Completely New Exercise
  • Improving Consistency By Extracting Shared Test Data
  • Writing a New Test Suite Generator
  • Track Anatomy
  • Starting a New Track
    • Beta-Testing a Language Track
  • Maintaining a Track
  • Useful Tidbits
    • Pull Request Guidelines
    • Exercise Versioning
    • Anatomy of an Exercise
    • config.json
    • Track-Level Linting With Configlet
    • Git Basics
      • Getting the Code
    • Branches
    • Commit Messages
      • Resetting master
      • Squashing
      • Resources

Add documentation about exercise metadata

add file: language-tracks/exercises/metadata.md

Some of this can be moved out of the ./language-tracks/exercises/anatomy/readmes.md file, and maybe also ./maintaining-a-track/regenerating-exercise-readmes.md

Document how to create a brand new exercise

We currently have some documentation about creating a completely new exercise in https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#implementing-a-completely-new-exercise

We should extract this to a separate document in this repository, probably in the https://github.com/exercism/docs/tree/master/contributing-to-language-tracks directory, and flesh it out so that it reads as a consistent, complete document.

Then delete the contents from the x-common contributing guide.

language-tracks/configuration/exercises.md - document reasons a topic should be added

In this issue, we discuss how to decide when to add topics to an exercise. Discussion seems to favour adding only topics that are essential/required for an exercise. To close this issue, all that would be left to do is to document this.

Original issue text:


It is possible to see that the current https://github.com/exercism/docs/blob/master/language-tracks/configuration/exercises.md#topics tells us

We show the topics for an exercise on the website. This lets people optimize the learning experience to their own interests—skipping topics that they are not interested in, or that they already know a lot about, and doing deeper dives into topics that they're curious about.

Recently in exercism/rust#558 (comment) I had questoins about when it is appropriate to add a topic.

Should a topic be put if it is possible that a solution might use it? Or should it only be put if a solution must use it (perhaps because the tests require it), etc.? Or are we supposed to exercise judgment and include a topic if we think any reasonable solution would use it? But what constitutes reasonable? etc.

I have now understood that the stated goal of topics is to allow a student to optimise the learning experience, though now I am pulled in both directions. Let's take the specific question of "should regular_expressions be added as a topic to pig-latin" to illustrate.

  • I think I should add it if it is merely a possible solution, since students looking for a good opportunity to use regular expressions should get all opportunities available
  • Actually no, I think I should only add it if it is required, because I wouldn't want someone who wants to skip regular expressions to unnecessarily skip this exercise just because they think it would force regular expressions

Having said those two things, I think it's a questoin of whether we try to optimise for one of those two cases... or something else, since those are not the only choices. So, what is the reasoning you choose to use when deciding topics?

(I understood from exercism/discussions#167 that topics are hard, though a large part of the discussion there was whether to have consistency between the different tracks, whereas I'm having trouble even deciding what to do for any one track, never mind multiple!)

Document how to start a new language track

For the longest time, if anyone emailed me or tweeted at me and said "hey, could we have a track for the X programming language?" I'd go ahead and make it.

The problem with this was that often the person wasn't offering to implement and maintain a new track, they were just wishing out loud that it existed.

So we've ended up with a bunch of tracks that are kind of in the works—maybe—but probably not really, but we don't actually know. They might have one or two exercises, but they've not actually gone anywhere. They're not live on the site.

A few months ago I created a new repository, https://github.com/exercism/request-new-language-track, and the process is now to open a new issue in that repository. There's an issue template that asks some questions, and then we bootstrap a new repository and generate some starter issues. One of the starter issues is a "launch checklist", which guides the new maintainer through the process of implementing and launching the track.

This needs to be documented and added to the maintaining-a-track directory in this repository.

The documentation for this should give a high level overview of what to expect throughout the process, without duplicating the nitty gritty details (which can be left in the launch checklist).

The documentation about starting a new track in the problem-specifications contributing guide is not up to date, so that would need to be deleted.

So this issue has two tasks:

  1. Open a pull request in this repository documenting how to start a new language track
  2. Open a pull request in https://github.com/exercism/problem-specifications to delete the section about starting a language track.

Since this is basically undocumented, don't be afraid to open a pull request with your best guess at a starting point. We'll be able to go back and forth from there—a lot of this is finding a way to force my brain to dump out the information that is there!

Override probot/stale defaults, if necessary

Per the discussion in exercism/discussions#128 we
will be installing the probot/stale integration on the Exercism organization on
April 10th, 2017.

By default, probot will comment on issues that are older than 60 days, warning
that they are stale. If there is no movement in 7 days, the bot will close the issue.
By default, anything with the labels security or pinned will not be closed by
probot.

If you wish to override these settings, create a .github/stale.yml file as described
in https://github.com/probot/stale#usage, and make sure that it is merged
before April 10th.

If the defaults are fine for this repository, then there is nothing further to do.
You may close this issue.

Is unlocked-by always required for non-core exercises?

Came across this while changing the config to configlet 3.8.0 in exercism/javascript#527

The config spec says:

All optional exercises should be unlocked by one of the core exercises.

This made me think that all optionals should have this property - later found out that tracks have kept it null at many places. eg. ruby config. Also the latest version of configlet allows having null values.

Should unlocked-by be a required property? If not can we mention so in the spec?

The master branch will be renamed to main

In line with our new org-wide policy, the master branch of this repo will be renamed to main. All open PRs will be automatically repointed.

GitHub will show you a notification about this when you look at this repo after renaming:

Screenshot 2021-01-27 at 15 31 45

In case it doesn't, this is the command it suggests:

git branch -m master main
git fetch origin
git branch -u origin/main main

You may like to update the primary branch on your forks too, which you can do under Settings->Branches and clicking the pencil icon on the right-hand-side under Default Branch:

Screenshot 2021-01-27 at 18 50 08

We will post a comment below when this is done. We expect it to happen within the next 12 hours.

Documentation layout is confusing to me.

There are 6 subdirectories of this repository.

  • about
    Seems to cover what the project is about and an overview of the components. That I understand.

But what is the difference between all these?:

  • contributing-to-language-tracks
  • contributing
  • language-tracks
  • maintaining-a-track
  • you-can-help

What seems to be covered in each one appears fairly arbitrary to me, and the directory names appear to overlap a lot.

contributing-to-language-tracks, language-tracks, maintaining-a-track (How are these different? where'd "language" go?)

contributing-to-language-tracks, contributing (to things that aren't language tracks?, what about problem-specifications that the language tracks rely on? or the other areas like the website and configlet and trackler/api where should they be documented?)

you-can-help how is "helping" different to "contributing"?

Exercises based on problems with multiple solutions

Hi. I was thinking about suggesting an exercise based on the n-queens problem:

Place n queens on an n by n chessboard such that no queen threatens another.

However the 'make up new exercises' instructions assume that a problem will have a unique solution for every input. In particular, it asks for "a set of sample test inputs and outputs that make up a reasonable test suite".

The n-queen problem has multiple solutions (4426165368 for n=8). Each is equally valid. You can't choose a particular solution for an n=8 test case.

You could constrain the n-queens problem to have a unique solution by demanding the lexicographically-minimum solution, but this would require people "to follow one very specific way to solve the problem", which makes for a less interesting exercise.

Has this been discussed before?

I could imagine a test suite for an unconstrained n-queens exercise, but it would need to do property-based testing rather than example-based testing.


Other interesting problems with multiple solutions:

  • Finding a knight's tour on a chessboard

I like these kind of problems, because they permit more freedom and creativity in their solution.

Document bulk issue creation

We often want to do one of to things:

  1. Submit a bunch of issues (one for each exercise) in a single repository
  2. Submit a bunch of (identical) issues to a bunch of different repositories

For the second there are several scenarios:

  • submit to all language tracks
  • submit to all language tracks that implement a given exercise
  • submit to all the repositories on Exercism (rare, but it happens. E.g.: recent probot/stale example)

We have some documentation about this in https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/improving-consistency-across-tracks.md

We should have a single document about submitting multiple issues, and then link from it where we mention blazon.

Document our philosophy / best practices about test suites

I couldn't find a document that talks about how we think about the exercise test suites.
There's a little bit in here: https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/improving-consistency-across-tracks.md but I think it would be great to have a top-level philosophy document that other documentation could refer to.

@parkerl @jtigger @IanWhitney @petertseng @kotp @ErikSchierboom you all immediately come to mind as maintainers who care about this, and have a good understanding of this.

Would you suggest some bullet points of what should be included in such a doc?


TODO

  • determine bullet points of what should be included in the doc
  • write a draft / submit PR of doc
  • (when merged) pare down the boilerplate for new tracks (https://github.com/exercism/request-new-language-track) and link to this document from the CHECKLIST and the TRAVIS files

Document how to configure a language track

The config.json file has a number of options, and is kind of sort of referenced and halfway explained in a number of different places:

We should create a language-tracks/configuration/README.md that documents the config.json file fully.

Remember to include the test_pattern, ignore_pattern, and solution_pattern keys.

There's also a gitter key.

As of exercism/meta#3 there is no longer an "ignore" key in the config.json.

Update contributing guides for maintainers

The contribution guides lay out details for getting started and submitting PRs. But it doesn't cover things like PR merging strategies and issue resolution processes on GitHub. So I am creating this thread to begin hashing out details for such topics.

This thread is a continuation of a short discussion that started on exercism/cli#432 (comment)

Create a glossary to document jargon, terms, and definitions

There are bunch of terms that get used in the code of x-api/trackler/exercism.io/configlet etc.

Such as: Track, Exercise, Slug, ID, Problem, Specification, Implementation

It would be good to have a place where we could canonically list the definitions, and their intended usage.

Capture standard operating procedures in a runbook

There are things that we do to keep the lights on. Is this the place to document those things too?

  • availability indicators (API 200s, website 200s)
  • availability objectives (e.g. 99% (~7hrs/mo))
  • monitoring (both indicators and logs)
  • packaging and deploying
    • building all of exercism.io, step-by-step
    • deployment process, step-by-step
  • alerting
  • backups and restores

Document the anatomy of a track

There is a slightly outdated section in the x-common contributing document about track anatomy: https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-anatomy

A great first step would be to move this into this repository. It should go into /language-tracks/README.md

A nice plus would be to delete the bulk of the explanation about the docs/ directory, and instead link to the https://github.com/exercism/docs/blob/master/maintaining-a-track/writing-documentation.md document.

Then open a PR that delete's the section from the problem-specifications contributing document.

Note: we'll need to add a section about the .meta/ directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.