adapt-authoring-core 1.3.4 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,29 +2,27 @@
2
2
  "module": false,
3
3
  "documentation": {
4
4
  "enable": true,
5
- "manualCover": "docs/cover-manual.md",
6
5
  "manualIndex": "docs/index-manual.md",
7
6
  "sourceIndex": "docs/index-backend.md",
8
7
  "manualPages": {
9
8
  "binscripts.md": "reference",
10
9
  "contributing.md": "contributing",
10
+ "contributing-code.md": "contributing",
11
11
  "coremodules.md": "reference",
12
12
  "customising.md": "development",
13
13
  "folder-structure.md": "getting-started",
14
- "git.md": "contributing",
15
14
  "hooks.md": "concepts",
16
15
  "licensing.md": "reference",
17
- "peer-review.md": "contributing",
18
16
  "releasing.md": "contributing",
17
+ "request-response.md": "concepts",
19
18
  "run.md": "getting-started",
20
- "writing-a-module.md": "development",
21
- "writing-core-code.md": "contributing"
19
+ "writing-a-module.md": "development"
22
20
  },
23
21
  "manualPlugins": [
24
22
  "docs/plugins/binscripts.js",
25
23
  "docs/plugins/coremodules.js",
26
- "docs/plugins/index-manual.js",
24
+ "docs/plugins/contributors.js",
27
25
  "docs/plugins/licensing.js"
28
26
  ]
29
27
  }
30
- }
28
+ }
@@ -0,0 +1,192 @@
1
+ # Contributing code
2
+
3
+ This guide covers everything you need to know about contributing code to the Adapt authoring tool repositories.
4
+
5
+ ## Quick navigation
6
+
7
+ - [Finding work](#finding-work)
8
+ - [Setting up](#setting-up)
9
+ - [Making changes](#making-changes)
10
+ - [Documentation](#documentation)
11
+ - [Commit messages](#commit-messages)
12
+ - [Submitting a pull request](#submitting-a-pull-request)
13
+ - [Code review](#code-review)
14
+
15
+ ## Finding work
16
+
17
+ Pick an issue from one of the [adapt-security](https://github.com/adapt-security) repositories, or create a new one if you've found a bug or have a feature idea.
18
+
19
+ ### Difficulty labels
20
+
21
+ Issues are labelled with difficulty ratings to help you find suitable work:
22
+
23
+ | Label | Description |
24
+ |-------|-------------|
25
+ | `D: beginner` | Simple fixes, good for first-time contributors |
26
+ | `D: easy` | Straightforward changes with limited scope |
27
+ | `D: medium` | Moderate complexity, requires Node.js experience |
28
+ | `D: hard` | Complex changes spanning multiple areas |
29
+ | `D: insane` | Major architectural changes, requires deep codebase knowledge |
30
+
31
+ If you're new to the project, start with `D: beginner` or `D: easy` issues. For larger features or complex fixes, please discuss your approach with the core team before starting work.
32
+
33
+ ## Setting up
34
+
35
+ ### Fork or branch?
36
+
37
+ **Core team members** have write access to the repositories and can create branches directly.
38
+
39
+ **External contributors** should fork the repository to their own GitHub account and work from there.
40
+
41
+ ### Create a branch
42
+
43
+ Create a branch for your work, named after the issue number:
44
+
45
+ ```bash
46
+ # For core team (direct branch)
47
+ git checkout -b issue/1234 origin/master
48
+
49
+ # For external contributors (from your fork)
50
+ git checkout -b issue/1234
51
+ ```
52
+
53
+ Always branch from `master` — this is the only long-lived branch.
54
+
55
+ ## Making changes
56
+
57
+ ### Code style
58
+
59
+ All code must pass the [Standard.js](https://standardjs.com/) linter. Run it locally before committing:
60
+
61
+ ```bash
62
+ npx standard
63
+ ```
64
+
65
+ ### Tests
66
+
67
+ If you're adding new functionality, add tests to cover it. Run the test suite to make sure everything passes:
68
+
69
+ ```bash
70
+ npm test
71
+ ```
72
+
73
+ ### Documentation
74
+
75
+ Keep documentation up to date with your changes:
76
+
77
+ - **Code comments** — Add or update JSDoc comments for any new or modified functions, classes, or methods
78
+ - **Manual pages** — If you're adding a feature or changing behaviour, update the relevant markdown guides in `docs/`
79
+ - **REST API** — For API changes, ensure route metadata is accurate so the generated API docs stay current
80
+
81
+ Good documentation helps others understand and use your work. See [Writing Documentation](writing-documentation) for more details.
82
+
83
+
84
+ ## Commit messages
85
+
86
+ We use [semantic-release](https://semantic-release.gitbook.io/) to automate releases, so commit messages must follow a specific format. The commit prefix determines the type of release:
87
+
88
+ | Prefix | Release type | Use for |
89
+ |--------|--------------|---------|
90
+ | `Fix:` | Patch (0.0.x) | Bug fixes |
91
+ | `Update:` | Minor (0.x.0) | New features, backwards-compatible changes |
92
+ | `Breaking:` | Major (x.0.0) | Breaking changes |
93
+ | `Docs:` | No release | Documentation only |
94
+ | `Chore:` | No release | Maintenance, refactoring |
95
+
96
+ ### Format
97
+
98
+ ```
99
+ Prefix: Short description
100
+
101
+ Longer explanation if needed. Wrap at 72 characters.
102
+
103
+ Closes #1234
104
+ ```
105
+
106
+ ### Examples
107
+
108
+ ```
109
+ Fix: Prevent crash when uploading empty file
110
+
111
+ The upload handler now validates file size before processing,
112
+ returning a 400 error for empty files.
113
+
114
+ Closes #1234
115
+ ```
116
+
117
+ ```
118
+ Update: Add bulk delete endpoint for assets
119
+
120
+ Closes #5678
121
+ ```
122
+
123
+ ```
124
+ Breaking: Remove deprecated /api/v1 endpoints
125
+
126
+ The v1 API has been removed. All clients should migrate to /api.
127
+
128
+ Closes #9012
129
+ ```
130
+
131
+ ### Tips
132
+
133
+ - Use the imperative mood ("Add feature" not "Added feature")
134
+ - Keep the first line under 72 characters
135
+ - Reference the issue number with `Closes #1234` to auto-close it when merged
136
+ - For breaking changes, explain what users need to do to migrate
137
+
138
+ ## Submitting a pull request
139
+
140
+ ### Before submitting
141
+
142
+ - [ ] Code passes linting (`npx standard`)
143
+ - [ ] Tests pass (`npm test`)
144
+ - [ ] Documentation is updated (if applicable)
145
+ - [ ] Commit messages follow the format above
146
+ - [ ] Branch is up to date with master
147
+
148
+ ### Creating the PR
149
+
150
+ 1. Push your branch to GitHub
151
+ 2. Open a pull request against the `master` branch
152
+ 3. Fill in the PR template, linking to the issue it addresses
153
+ 4. Request reviews from the core team
154
+
155
+ For external contributors, submit the PR from your fork to the upstream repository.
156
+
157
+ ## Code review
158
+
159
+ All code must be reviewed before merging.
160
+
161
+ ### Requirements
162
+
163
+ For a PR to be merged:
164
+
165
+ - **2 approvals required** — At least two reviewers must approve
166
+ - **CI checks must pass** — Linting and tests must succeed
167
+ - **No unresolved conversations** — All review comments must be addressed
168
+
169
+ ### Review criteria
170
+
171
+ Reviewers will check that:
172
+
173
+ - The code does what the issue describes
174
+ - The implementation approach is sound
175
+ - Code style follows project standards
176
+ - Tests are included where appropriate
177
+ - Documentation is added/updated where necessary
178
+ - No negative side effects are anticipated
179
+ - Commit messages follow the required format
180
+
181
+ ### Responding to feedback
182
+
183
+ If changes are requested:
184
+
185
+ 1. Make the requested changes in new commits
186
+ 2. Push to the same branch (the PR updates automatically)
187
+ 3. Reply to review comments explaining what you changed
188
+ 4. Request re-review when ready
189
+
190
+ ### After approval
191
+
192
+ Once approved, a core team member will merge your PR. Thanks for contributing! :tada:
@@ -1,54 +1,45 @@
1
1
  # Contributing to the project
2
2
 
3
- First of all, thank you for showing interest in the Adapt project! We heartily welcome any contribution however big or small. This page outlines a few ways you can get involved.
3
+ Thank you for your interest in contributing to the Adapt authoring tool! Whether you're fixing a bug, adding a feature, improving documentation, or just helping others in the community, your contribution is valued.
4
4
 
5
- ## 1. Explore the community
5
+ ## Join the community
6
6
 
7
- The Adapt project has a thriving, friendly community who have an incredible knowledge of the inner-workings of Adapt - make as much use of this as you can.
7
+ The Adapt project has a friendly, knowledgeable community make the most of it.
8
8
 
9
- ### Say hello
9
+ **Chat with us** — Drop by our [adapt-authoring room](https://gitter.im/adaptlearning/adapt-authoring) on Gitter to ask questions or say hello. For general Adapt discussion, there's also [general_chat](https://gitter.im/adaptlearning/general_chat). You'll need a GitHub account to join.
10
10
 
11
- If this is your first time contributing, please drop by our [general_chat](https://gitter.im/adaptlearning/general_chat) stream on Gitter and introduce yourself (you'll need a GitHub account to do this) - we love seeing new faces!
11
+ **Visit the community site** The [Adapt Learning community site](https://www.adaptlearning.org/) is the project hub, with forums, resources, and links to all corners of the project.
12
12
 
13
- For chat specifically related to the authoring tool, the [adapt-authoring room](https://gitter.im/adaptlearning/adapt-authoring) is the place to go.
14
-
15
- ### Head to the community site
16
-
17
- The community site acts as the project hub; first and foremost providing you with links to all corners of the Adapt project, such as the issue tracker, and source code.
18
-
19
- At the heart of the community site are the forums, and one of the best ways you can contribute to the project is to share your knowledge of Adapt in here. The only requirement is that you like a chat!
20
-
21
-
22
- ## 2. Find something to work on
23
-
24
- The next step to getting involved is to find something to actually work on. Based on your skills and interests, there are a number of different areas that you can help out with.
13
+ ## Ways to contribute
25
14
 
26
15
  ### Report issues
27
16
 
28
- One of the easiest ways to make a meaningful contribution to the project is to submit any bugs you find to the relevant repo:
29
- - [Adapt Framework](https://github.com/adaptlearning/adapt_framework/issues)
30
- - [Adapt authoring tool](https://github.com/adaptlearning/adapt-authoring/issues)
17
+ Found a bug? Have an idea for a feature? Submit it to the relevant repository:
31
18
 
32
- If you think you've found a bug, check out our guide on [reporting issues](https://github.com/adaptlearning/adapt_framework/wiki/Bugs-and-features), which will give you more information on verifying your bug, as well as what to report, and where.
19
+ - [Adapt authoring tool](https://github.com/adapt-security/adapt-authoring/issues)
20
+ - [Adapt Framework](https://github.com/adaptlearning/adapt_framework/issues)
33
21
 
34
- If you can fix a bug you've reported, even better! Check out the next section on what to do in that case.
22
+ Before submitting, search existing issues to avoid duplicates. When reporting bugs, include steps to reproduce, expected behaviour, and actual behaviour.
35
23
 
36
24
  ### Fix issues
37
25
 
38
- If you're looking to get involved as a developer, fixing existing issues is a good place to start.
26
+ If you're a developer, fixing existing issues is a great way to contribute. Check out the issue trackers for bugs labelled with difficulty ratings:
39
27
 
40
- We've written a [guide to contributing code](writing-core-code) which will give you more information on finding a bug to work on, how to go about fixing that bug, and what to do once you've written a patch.
28
+ - `D: beginner` / `D: easy` Good starting points for newcomers
29
+ - `D: medium` — For developers comfortable with Node.js
30
+ - `D: hard` / `D: insane` — Complex issues requiring deep codebase knowledge
41
31
 
42
- ### Contribute code
32
+ See [Contributing Code](contributing-code) for the complete guide on submitting code changes.
43
33
 
44
- If you've been working with Adapt for a while, and are comfortable working with the framework on a larger scale, you may want to contribute to a larger feature-request patch (you can filter these in the issues page of the relevant repo), or [write your own module](writing-a-module).
34
+ ### Write documentation
45
35
 
46
- Have a look at our [page dedicated to code contribution](https://github.com/adaptlearning/adapt_framework/wiki/Contributing-code) for more.
36
+ Clear documentation helps everyone. If you spot something that could be improved, or want to write new guides, we'd love your help. You don't need to be a developer — just a willingness to explain things clearly.
47
37
 
48
- ### Write documentation
38
+ ### Help others
49
39
 
50
- If you're a keen writer, we're always looking for more hands to help out writing documentation (no technical knowledge necessary). See our [documentation guide](https://github.com/adaptlearning/adapt_framework/wiki/Writing-documentation) for more.
40
+ Share your knowledge in the forums and chat rooms. Answering questions is one of the most valuable contributions you can make.
51
41
 
52
- ## 3. Repeat!
42
+ ## Find us on GitHub
53
43
 
54
- Hopefully, you've been bitten by the open-source bug by now and want to contribute more. We always look forward to community contribution, no matter how small :grinning:
44
+ - [adapt-security](https://github.com/adapt-security) Authoring tool repositories
45
+ - [adaptlearning](https://github.com/adaptlearning) — Adapt Framework and community plugins
@@ -230,31 +230,28 @@ export default class Contributors {
230
230
 
231
231
  return `<div class="contributors-grid">\n${rows}\n</div>
232
232
  <style>
233
- .contributors-grid {
234
- margin: 0 auto;
235
- max-width: 600px;
236
- padding: 20px 0;
237
- }
238
-
239
- .contributors-row {
240
- display: flex;
241
- flex-wrap: wrap;
242
- align-items: center;
243
- justify-content: center;
244
- gap: 4px;
245
- margin-bottom: 12px;
246
- text-align: center;
247
- }
248
-
249
- .contributors-grid a:hover {
250
- transform: scale(1.1);
251
- }
252
-
253
- .contributor-avatar {
254
- object-fit: cover;
255
- vertical-align: middle;
256
- }
257
- </style>`
233
+ .contributors-grid {
234
+ margin: 0 auto;
235
+ max-width: 600px;
236
+ padding: 20px 0;
237
+ }
238
+ .contributors-row {
239
+ display: flex;
240
+ flex-wrap: wrap;
241
+ align-items: center;
242
+ justify-content: center;
243
+ gap: 4px;
244
+ margin-bottom: 12px;
245
+ text-align: center;
246
+ }
247
+ .contributors-grid a:hover {
248
+ transform: scale(1.1);
249
+ }
250
+ .contributor-avatar {
251
+ object-fit: cover;
252
+ vertical-align: middle;
253
+ }
254
+ </style>`
258
255
  } catch (e) {
259
256
  console.error('Failed to generate contributors list:', e)
260
257
  return '<p>Unable to load contributors list.</p>'
package/docs/releasing.md CHANGED
@@ -34,7 +34,7 @@ Releases follow [semantic versioning](https://semver.org/) (major.minor.patch).
34
34
  | `Breaking:` | Major (x.0.0) | Breaking changes |
35
35
  | `Docs:`, `Chore:` | No release | Documentation, maintenance |
36
36
 
37
- See [writing core code](writing-core-code.md) for detailed commit message guidelines.
37
+ See [contributing code](contributing-code) for detailed commit message guidelines.
38
38
 
39
39
  ### Configuration
40
40
 
package/lib/Utils.js CHANGED
@@ -54,16 +54,20 @@ class Utils {
54
54
  if (!options.cwd) options.cwd = ''
55
55
  App.instance.log('verbose', 'SPAWN', options)
56
56
  const task = spawn(options.cmd, options.args ?? [], { cwd: options.cwd })
57
- let output = ''
57
+ let stdout = ''
58
+ let stderr = ''
58
59
  let error
59
60
  task.stdout.on('data', data => {
60
- output += data
61
+ stdout += data
62
+ })
63
+ task.stderr.on('data', data => {
64
+ stderr += data
61
65
  })
62
66
  task.on('error', e => {
63
67
  error = e
64
68
  })
65
69
  task.on('close', exitCode => {
66
- exitCode !== 0 ? reject(App.instance.errors.SPAWN.setData({ error: error ?? output })) : resolve(output)
70
+ exitCode !== 0 ? reject(App.instance.errors.SPAWN.setData({ error: error ?? stderr ?? stdout })) : resolve(stdout)
67
71
  })
68
72
  })
69
73
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adapt-authoring-core",
3
- "version": "1.3.4",
3
+ "version": "1.3.6",
4
4
  "description": "A bundle of reusable 'core' functionality",
5
5
  "homepage": "https://github.com/adapt-security/adapt-authoring-core",
6
6
  "license": "GPL-3.0",
package/docs/git.md DELETED
@@ -1,41 +0,0 @@
1
- # Git process
2
-
3
- > This article assumes that you understand the [basic concepts of the git version control system](https://help.github.com/articles/good-resources-for-learning-git-and-github/)._
4
-
5
- ### Overview
6
-
7
- The authoring tool core repository doesn't contain any code
8
-
9
- We organise the branches in our repos in a similar way to standard [git flow](https://datasift.github.io/gitflow/IntroducingGitFlow.html), with a few alterations.
10
-
11
- ### Branching
12
-
13
- We use the following branches:
14
-
15
- Name | Description | Persisting
16
- ---- | ----------- | ----------
17
- `master` | Contains the stable, released code. | yes
18
- `release/VERSION_NAME`<br/>*(e.g. `release/v1.0`)* | A release candidate branch. Contains **development** code, and should not be considered stable. Use this code at your own risk! | no
19
- `issue/TICKET_NAME` <br/>*(e.g. `issue/1024`)* | A self-contained bug-fix/feature. Should be named after a corresponding issue ID. Finished changes should be submitted as a pull request. | no
20
-
21
- We also apply the following rules:
22
-
23
- * The `master` branch is the only persisting branch. **All other branches should be deleted post-merge**.
24
- * The `master` branch contains only thoroughly tested code, and should only ever merge code from a `release` branch.
25
- * Any `issue` branches should be submitted as a PR to the current `release` branch (**NOT `master` -- unlike standard git flow, we don't allow hotfixes directly into `master`**).
26
-
27
- ### Gearing up for release
28
-
29
- We go through the following schedule prior to making a release:
30
-
31
- 1. The core development team assign a bunch of issues/features to the relevant release.
32
- 2. A `release` branch is created from the master branch.
33
- 3. The coders are let loose :dizzy_face::wrench:, and submit their additions as PRs using the [documented process](peer-review).
34
- 4. Once all work has been done, we call a code freeze :snowflake: to avoid any scope-creep (i.e. only allow bug fixes from this point).
35
- 5. The release branch goes through our testing process.
36
- 6. Any bugs found are fixed :innocent:.
37
- 7. Steps 5. and 6. are :repeat: as necessary.
38
-
39
- ### Releasing
40
-
41
- Once the release code has been tested, we merge the release branch into `master`, tag the `master` branch with the release number, and **party**! :tada::balloon::tropical_drink:
@@ -1,51 +0,0 @@
1
- # Peer code review
2
-
3
- All code must go through a peer-approval process before it is merged with any of the collaborator-maintained codebases. This is to ensure that it firstly 'scratches' the intended 'itch', and complies to the guidelines set out by the project.
4
-
5
- ## The Process
6
-
7
- When code is ready for review, the below process is followed:
8
-
9
- 1. Code is submitted for review as a pull request.
10
- 1. Code is then reviewed by peers using GitHub's [pull-request review](https://help.github.com/articles/about-pull-request-reviews/) feature to leave comments where necessary and give an approval/rejection.
11
- 1. Code is amended if needed until it satisfies the required number of approvals.
12
- 1. Provided all unit tests are passing, code is merged.
13
-
14
- ## The Rules
15
-
16
- The reviewing process is governed by these rules:
17
-
18
- * The developer who submits the PR is not allowed to submit a review.
19
- * If a commit is added to the PR, any previously given reviews are invalidated. Everyone must re-post their verdicts after reviewing the commit.
20
- * Any new functionality/feature requests uncovered during review of a PR must be separated into new issues/PRs, unless directly related.
21
- * **For code to be merged, a minimum of three approvals is required. Of these, at least two must have come from a core team member. In the interest of impartiality, it is generally not advised to get all three approvals from a single collaborating company.**
22
- * The person who merges the PR must also submit their review prior to merging **if their vote is required**. Merging a PR which already has enough approvals does not require the review of the merger themselves.
23
- * Any review rejections must be accompanied by an adequate explanation of why the PR should not be merged. Without this, the review will be disregarded.
24
- * Any concerns signalled by a 'rejected' review warrant careful consideration, but no reviewer has veto rights. If the PR receives enough approvals, it can still be merged (provided the other rules outlined on this page are followed).
25
- 1. Concerns will be resolved in conversation between the submitter of the PR and the reviewer who rejected the PR. When/if satisfied, the reviewer will change verdict to an approval.
26
- 2. At an impasse, a course of action will be decided by the core development team.
27
-
28
- ## The Verdict
29
-
30
- There are two 'statuses' which can be applied to submitted PRs: **approve** and **request changes**. See below for a quick checklist for each:
31
-
32
- ### Request changes.
33
- A core developer may reject a PR because any (or all) of the following:
34
-
35
- - The code fails testing.
36
- - The code does not meet Adapt standards.
37
- - The code negatively impacts the application.
38
- - There are unresolved questions about the intent of the code.
39
-
40
- ### Approved.
41
- A core developer will approve an PR because of the following:
42
-
43
- - The intentions of the submitter are understood.
44
- - The implementation of the PR is accepted.
45
- - The submitted code complies with the code-style outlined in the project's [styleguide](https://github.com/adaptlearning/documentation/blob/master/01_cross_workstream/style_guide.md).
46
- - The code passes all automated tests.
47
- - No negative issues resulting from the proposed changes are forseen.
48
-
49
- ## References
50
-
51
- [SmartBear: 11 Best Practices for Peer Code Review](http://smartbear.com/smartbear/media/pdfs/wp-cc-11-best-practices-of-peer-code-review.pdf)
package/docs/run.md DELETED
@@ -1,12 +0,0 @@
1
- # Running the application
2
- > You can find developer-specific instructions in the [developer install instructions](install-dev).
3
-
4
- To run the application, simply use the npm start script:
5
- ```
6
- npm start
7
- ```
8
-
9
- > Advanced users may also use the `NODE_ENV` environment variable to specify which configuration file is loaded with the application. This value is `production` by default.
10
- > You can read more about configuring your environment on [this page](configure-environment).
11
-
12
- The application will take a while to start up on the first boot, as it has various initialisation tasks to perform. Subsequent boots will be much quicker.
@@ -1,39 +0,0 @@
1
- # Writing core code
2
-
3
- We heartily welcome contributions to the source code for the Adapt authoring project. This document outlines a few tips to help you get started.
4
- ## Finding work
5
-
6
- * Pick an open issue from the list [here.](https://github.com/adaptlearning/adapt-authoring/issues)
7
- * Create a new ticket for the issue you have noticed, following our guidelines on [submitting new bugs and features.](https://github.com/adaptlearning/adapt_framework/wiki/Bugs-and-features)
8
- * If submitting a new ticket, we recommend getting the go-ahead for the change from the core team before you start work.
9
-
10
- ### Use the labels
11
-
12
- We add difficulty rating labels to issues to give developers an idea of the work involved (always prefixed with `D:`). Picking up a `D: beginner` or `D: easy` issue is a good place to start if you're new to the project, and have limited Node.js and Backbone.js experience. For more confident developers, `D: medium` issues should be no problem. Any `D: hard` and `D: insane` issues are likely to involve very complex solutions, and potentially collaboration, to solve. Due to the work involved, these should only be attempted by developers with an extensive knowledge of the codebase, and a good working relationship with the core team.
13
-
14
- ## Making Changes
15
-
16
- * Create a new branch for the issue that you are fixing:
17
- * Make sure to base it on the correct parent branch; in most cases this will be develop. Getting this step wrong may cause you a lot of heartbreak when it comes to merging later on, so it's worth checking before starting work.
18
- * Name your branch according to the issue it addresses (i.e. `issue/1234`).
19
- * Create your branch (e.g. `git checkout -b issue/123 origin/develop`).
20
- * Make your changes (please make sure that your commit messages stick to the [guidelines](http://www.git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines), and take advantage of GitHub's built in features to [close issues via commits.](https://help.github.com/articles/closing-issues-via-commit-messages/)
21
- * Add unit tests to cover your new functionality, if appropriate.
22
- * Run the existing unit tests using `npm test` (and ensure they pass!)
23
-
24
- ## Submitting Changes
25
-
26
- ### Checklist
27
- - Does it have an accompanying issue?
28
- - Does it have tests?
29
- - Does it pass the project's code standards?
30
-
31
- * Push your changes to your personal fork of the `adapt_authoring` repository.
32
- * Submit a pull request using the GitHub interface, and make sure to link to the issue you're addressing.
33
- * The core team will be automatically notified of your changes, but you can also bring it to our attention via the [gitter.im channel](https://gitter.im/adaptlearning/server-refactor).
34
-
35
-
36
-
37
-
38
-
39
-