-
-
Notifications
You must be signed in to change notification settings - Fork 124
add contribution guidance to curriculum #1749
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
Merged
Merged
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
243732e
update contributing index.md
cifarquhar d515a3a
add local build instructions
cifarquhar 3d2dcf6
add guidance for new content
cifarquhar 97e169c
remove pull request instructions
cifarquhar fa0ef87
reorder docs
cifarquhar bfcde68
fix typo; add missing instruction
cifarquhar 4d7c92c
add a link to /guides to curriculum home page
cifarquhar f0c8c4b
Update org-cyf-guides/content/contributing/_index.md
cifarquhar cc52ead
remove outdated partner & contributor pages
cifarquhar bb378bd
update CONTRIBUTING.md
cifarquhar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
153 changes: 153 additions & 0 deletions
153
org-cyf-guides/content/contributing/adding-updating/index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,153 @@ | ||
| --- | ||
| id: adding-updating-content | ||
| title: Adding & Updating Content | ||
| description: How to locate existing files and where to put new ones | ||
| weight: 2 | ||
| --- | ||
|
|
||
| ## Finding the Right Directory | ||
|
|
||
| CYF's curriculum is designed to be modular. Each part of the course has its own sub-directory within the `curriculum` repo, and each module within those courses has its own GitHub repo with relevant code examples and exercises. We define the structure of the curriculum by specifying where each piece of content can be found, either as a path within `curriculum` or as a GitHub url. | ||
|
|
||
| > [!NOTE] | ||
| > We will use the Data Groups module of the Intro to Programming course as an example here but others follow a similar pattern. | ||
|
|
||
| Within each course's directory there is a sub-directory for each module. | ||
|
|
||
| ```mermaid | ||
| --- | ||
| title: org-cyf-itp structure | ||
| --- | ||
| flowchart TD | ||
| itp@{ shape: docs, label: org-cyf-itp } --> onboarding@{ shape: docs, label: onboarding } | ||
| itp --> structuringData@{ shape: docs, label: structuring-data } | ||
| itp --> dataGroups@{ shape: docs, label: data-groups } | ||
| itp --> dataFlows@{ shape: docs, label: data-flows } | ||
| ``` | ||
|
|
||
| > [!NOTE] | ||
| > There will be additional folders with other information required to edit the page, eg. details of the next stage of the course in the `piscine` folder | ||
|
|
||
| Each module is broken into **sprints**. A sprint represents one week of work. The `success` folder contains the success criteria for a module. | ||
|
|
||
| ```mermaid | ||
| --- | ||
| title: module structure | ||
| --- | ||
| flowchart TD | ||
| itp@{ shape: docs, label: org-cyf-itp } --> dataGroups@{ shape: docs, label: data-groups } | ||
| dataGroups --> success@{ shape: docs, label: success } | ||
| dataGroups --> sprints@{ shape: docs, label: sprints } | ||
| sprints --> sprint1@{ shape: docs, label: "1" } | ||
| sprints --> sprint2@{ shape: docs, label: "2" } | ||
| sprints --> sprint3@{ shape: docs, label: "3" } | ||
| ``` | ||
|
|
||
| Each sprint is made up of **prep** (material to be read before class), **backlog** exercises (exercises to attempt before class), the **day plan** (the structure of the saturday class) and **success** criteria. | ||
|
|
||
| ```mermaid | ||
| --- | ||
| title: sprint structure | ||
| --- | ||
| flowchart TD | ||
| itp2@{ shape: docs, label: org-cyf-itp } --> dataGroups2@{ shape: docs, label: data-groups } | ||
| dataGroups2 --> sprints2@{ shape: docs, label: sprints } | ||
| sprints2 --> sprint1@{ shape: docs, label: "1" } | ||
| sprint1 --> prep@{shape: docs, label: prep} | ||
| sprint1 --> backlog@{shape: docs, label: backlog} | ||
| sprint1 --> plan@{shape: docs, label: day-plan} | ||
| sprint1 --> moduleSuccess@{shape: docs, label: success} | ||
| ``` | ||
|
|
||
| ## Adding Prep Work | ||
|
|
||
| The `prep` directory contains an `index.md` file listing all files to be included with a module. Each entry requires two pieces of information: | ||
|
|
||
| - `name` specifies the page's title in the page map | ||
| - `src` is the path to the file. This can either be a relative filepath from `curriculum/common-content/en` or a url to an external source, eg. GitHub. | ||
|
|
||
| Within `common-content` prep material is split across two directories: | ||
|
|
||
| - `blocks` contains content which can be reused across different courses | ||
| - `module` contains content specific to a particular module, subdivided by topic | ||
|
|
||
| ```mermaid | ||
| --- | ||
| title: common-content structure | ||
| --- | ||
| flowchart TD | ||
| common@{ shape: docs, label: common-content } --> en@{ shape: docs, label: en } | ||
| en --> blocks@{ shape: docs, label: blocks } | ||
| en --> module@{ shape: docs, label: module } | ||
| ``` | ||
|
|
||
| When adding new content: | ||
|
|
||
| 1. Create a new directory in the appropriate place. These can be nested within `blocks` or `modules`. | ||
| 2. In your directory create `index.md` | ||
| 3. Provide the appropriate front matter: | ||
|
|
||
| ```md | ||
| +++ | ||
| title = "Document Title" | ||
| <!-- duration in minutes --> | ||
| time = 120 | ||
| <!-- learning objectives as strings. --> | ||
| objectives = [ | ||
| "Learning objective 1", | ||
| "Learning objective 2", | ||
| "Learning objective 3", | ||
| ] | ||
| <!-- build config - no need to edit this --> | ||
| [build] | ||
| render = "never" | ||
| list = "local" | ||
| publishResources = false | ||
| +++ | ||
| ``` | ||
|
|
||
| 4. Write your content using markdown. Notes on styling and using render hooks can be found in the [Common documentation](https://common.codeyourfuture.io/). | ||
| 5. Add the path to your content to `index.md` in the `prep` directory. | ||
|
|
||
| If your content is loaded from an external GitHub url you can skip steps 1 and 2. | ||
|
|
||
| Changes made to prep content should appear immediately when the site is rebuilt locally. If they do not you likely need to clear a cached version of the site. | ||
|
|
||
| ### Code Examples | ||
|
|
||
| If code examples are required for a task they can be stored in the module's repository. Every module has its own repo named `Module-<MODULE-NAME>`, eg. [Module-Data-Groups](https://github.com/CodeYourFuture/Module-Data-Groups). Add code to the appropriate sprint and include a link to it in your markdown. | ||
|
|
||
|
|
||
| ## Adding Backlog Items | ||
|
|
||
| The backlogs for each sprint are generated by importing issues from GitHub. The [issues page](https://github.com/CodeYourFuture/Module-Data-Groups/issues) of each module's repo lists all exercises associated with the module with labels used to identify which sprint they belong to. | ||
|
|
||
| To add a new backlog exercise, open a new issue and complete the template with the required information. Check out a [current backlog](https://itp.codeyourfuture.io/data-groups/sprints/1/backlog/) to see examples of what is required. | ||
|
|
||
| To remove an item from a backlog you can close the relevant issue. | ||
|
|
||
| > [!CAUTION] | ||
| > Other internal systems reference these issues - every issue **must** have labels for `sprint`, `submission` and `priority`. | ||
|
|
||
| To prevent unnecessary calls to the GitHub API responses are cached. When testing locally the cache will need to be cleared in order to see changes made to GitHub issues. | ||
|
|
||
|
|
||
| ## Updating the Day Plan | ||
|
|
||
| Similar to prep work, the `day-plan` directory contains an `index.md` file laying out the structure of the day. It covers two types of content: | ||
|
|
||
| - Activities repeated across multiple classes (energisers, lunch breaks, etc.). These are stored in `common-content/en/blocks`. | ||
| - Workshops for that class. | ||
|
|
||
| Workshops can be defined in various places. Some are stored in `common-content/en/module` similar to prep content. | ||
|
|
||
| Most workshops are stored in the [CYF-Workshops repository](https://github.com/CodeYourFuture/CYF-Workshops#:~:text=Welcome%20to%20CYF%20Workshops) and imported to `day-plan/index.md` using their url. There are some additional features available through this repository explained in its README. | ||
|
|
||
| Workshops may also be created in stand-alone repositories if needed. | ||
|
|
||
|
|
||
| ## Updating Success Criteria | ||
|
|
||
| At the sprint level, the [End of Sprint Review](https://itp.codeyourfuture.io/data-groups/sprints/1/success/) page lists all learning objectives defined in prep work and backlog exercises. This is generated at build time and does not need to be manually edited. If your learning objectives are not showing up here check they are formatted correctly. | ||
|
|
||
| The [End of Module Review](https://itp.codeyourfuture.io/data-groups/success/) lists the criteria for passing the module. These criteria are referenced by other teams within the organisation - please **do not edit them** without prior discussion with a member of the core team. | ||
This file was deleted.
Oops, something went wrong.
Binary file removed
BIN
-79.9 KB
org-cyf-guides/content/contributing/create-a-pull-request/github-branches-view.png
Binary file not shown.
Binary file removed
BIN
-82 KB
...s/content/contributing/create-a-pull-request/github-fork-highlight-branches.png
Binary file not shown.
Binary file removed
BIN
-81.3 KB
...cyf-guides/content/contributing/create-a-pull-request/github-fork-main-page.png
Binary file not shown.
Binary file removed
BIN
-61.9 KB
...uides/content/contributing/create-a-pull-request/highlight-new-pull-request.png
Binary file not shown.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.