adapt-authoring-core 1.3.1 → 1.3.3

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,16 +2,22 @@
2
2
  "module": false,
3
3
  "documentation": {
4
4
  "enable": true,
5
+ "manualCover": "docs/cover-manual.md",
5
6
  "manualIndex": "docs/index-manual.md",
6
7
  "sourceIndex": "docs/index-backend.md",
7
8
  "manualPages": {
8
9
  "binscripts.md": "reference",
10
+ "contributing.md": "contributing",
9
11
  "coremodules.md": "reference",
10
- "customising.md": "advanced",
12
+ "customising.md": "development",
11
13
  "folder-structure.md": "getting-started",
12
- "hooks.md": "basics",
14
+ "git.md": "contributing",
15
+ "hooks.md": "concepts",
13
16
  "licensing.md": "reference",
14
- "writing-a-module.md": "basics",
17
+ "peer-review.md": "contributing",
18
+ "releasing.md": "contributing",
19
+ "run.md": "getting-started",
20
+ "writing-a-module.md": "development",
15
21
  "writing-core-code.md": "contributing"
16
22
  },
17
23
  "manualPlugins": [
@@ -0,0 +1,54 @@
1
+ # Contributing to the project
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.
4
+
5
+ ## 1. Explore the community
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.
8
+
9
+ ### Say hello
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!
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.
25
+
26
+ ### Report issues
27
+
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)
31
+
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.
33
+
34
+ If you can fix a bug you've reported, even better! Check out the next section on what to do in that case.
35
+
36
+ ### Fix issues
37
+
38
+ If you're looking to get involved as a developer, fixing existing issues is a good place to start.
39
+
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.
41
+
42
+ ### Contribute code
43
+
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).
45
+
46
+ Have a look at our [page dedicated to code contribution](https://github.com/adaptlearning/adapt_framework/wiki/Contributing-code) for more.
47
+
48
+ ### Write documentation
49
+
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.
51
+
52
+ ## 3. Repeat!
53
+
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:
@@ -0,0 +1,11 @@
1
+ ![](https://www.adaptlearning.org/wp-content/uploads/2015/11/home-icon-03.png)
2
+
3
+ # Adapt authoring tool
4
+
5
+ ## Developer guides
6
+
7
+ > Handy guides and how-to information to help understand and make use of the Adapt authoring tool APIs in a practical way.
8
+
9
+ [<i class="material-icons">download</i> Install](install)
10
+ [<i class="material-icons">settings</i> Configure](configuration)
11
+ [<i class="material-icons">flight_takeoff</i> Run](run)
package/docs/git.md ADDED
@@ -0,0 +1,41 @@
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,11 +1,41 @@
1
- ![](https://www.adaptlearning.org/wp-content/uploads/2015/11/home-icon-03.png)
1
+ # Adapt Authoring Tool Developer guides
2
2
 
3
- # Adapt authoring tool
3
+ Welcome to the technical documentation for the Adapt authoring tool — a web-based application for creating responsive, multi-device e-learning content built on the [Adapt Framework](https://github.com/adaptlearning/adapt_framework).
4
4
 
5
- ## Developer guides
5
+ The authoring tool provides a user-friendly interface for building courses without needing to write code, while its modular architecture gives developers the flexibility to extend and customise virtually every aspect of the system. Whether you're looking to build custom plugins, integrate with external services, or contribute to the core codebase, you're in the right place.
6
6
 
7
- > Handy guides and how-to information to help understand and make use of the Adapt authoring tool APIs in a practical way.
7
+ ## What makes it tick
8
8
 
9
- [<i class="material-icons">download</i> Install](install)
10
- [<i class="material-icons">settings</i> Configure](configuration)
11
- [<i class="material-icons">flight_takeoff</i> Run](run)
9
+ The authoring tool is built on a few key principles:
10
+
11
+ - **Modular by design** — The entire application is composed of discrete modules that can be swapped, extended, or replaced. Need custom authentication? Write an auth plugin. Want to store data differently? Create a new database adapter.
12
+
13
+ - **Schema-driven** — Content types, validation rules, and UI forms are all defined using JSON schemas. This means you can add new content types or modify existing ones without touching application code.
14
+
15
+ - **RESTful API** — Every feature is accessible via a comprehensive REST API, making it straightforward to integrate with other systems or build custom tooling.
16
+
17
+ - **Built for collaboration** — Multi-user support with role-based permissions lets teams work together on courses with appropriate access controls.
18
+
19
+ ## About this documentation
20
+
21
+ This documentation covers the technical side of the authoring tool — how it works under the hood and how to extend it. You'll find guides on writing custom modules, working with the database, creating schemas, and contributing to the project.
22
+
23
+ If you're looking for help using the authoring tool to create courses, check out the user guides on the [Adapt Learning community site](https://www.adaptlearning.org/).
24
+
25
+ ## Where to start
26
+
27
+ New to the codebase? Here are some good starting points:
28
+
29
+ - **[Folder Structure](folder-structure)** — Get familiar with how the application is organised
30
+ - **[Writing a Module](writing-a-module)** — Learn the basics of creating your own module
31
+ - **[Schemas Introduction](schemas-introduction)** — Understand how schemas drive the application
32
+ - **[Hooks](hooks)** — See how to tap into the application lifecycle
33
+
34
+ ## Get involved
35
+
36
+ The Adapt authoring tool is open source and we welcome contributions. You can find the source code and report issues on GitHub:
37
+
38
+ - [adapt-security](https://github.com/adapt-security) — Authoring tool repositories
39
+ - [adaptlearning](https://github.com/adaptlearning) — Adapt Framework and community plugins
40
+
41
+ <div class="big-text">Happy coding!</div>
@@ -0,0 +1,51 @@
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)
@@ -0,0 +1,56 @@
1
+ # Releasing
2
+
3
+ This guide explains how releases are managed for the Adapt authoring tool.
4
+
5
+ ## Overview
6
+
7
+ The project uses two release mechanisms:
8
+
9
+ - **Module releases** — Automated via semantic-release when changes are merged to master
10
+ - **Main repository releases** — Manual, allowing for thorough testing between releases
11
+
12
+ ## Module releases
13
+
14
+ Individual modules (e.g., `adapt-authoring-core`, `adapt-authoring-auth`) are released automatically using [semantic-release](https://semantic-release.gitbook.io/).
15
+
16
+ ### How it works
17
+
18
+ When a pull request is merged to the `master` branch, the release workflow:
19
+
20
+ 1. Analyses commit messages to determine the release type
21
+ 2. Bumps the version in `package.json`
22
+ 3. Generates release notes from commit messages
23
+ 4. Creates a GitHub release
24
+ 5. Publishes the package to npm (via [trusted publishing](https://docs.npmjs.com/generating-provenance-statements))
25
+
26
+ ### Version numbers
27
+
28
+ Releases follow [semantic versioning](https://semver.org/) (major.minor.patch). The version bump is determined by commit message prefixes:
29
+
30
+ | Prefix | Release type | Example |
31
+ | ------ | ------------ | ------- |
32
+ | `Fix:` | Patch (0.0.x) | Bug fixes |
33
+ | `Update:` | Minor (0.x.0) | New features, backwards-compatible changes |
34
+ | `Breaking:` | Major (x.0.0) | Breaking changes |
35
+ | `Docs:`, `Chore:` | No release | Documentation, maintenance |
36
+
37
+ See [writing core code](writing-core-code.md) for detailed commit message guidelines.
38
+
39
+ ### Configuration
40
+
41
+ Each module's release behaviour is configured in `package.json`, with the GitHub Actions workflow defined in `.github/workflows/releases.yml`.
42
+
43
+ ## Main repository releases
44
+
45
+ The main `adapt-authoring` repository is released manually. This allows for a comprehensive testing cycle before each release.
46
+
47
+ ### Release process
48
+
49
+ 1. **Update dependencies** — Bump all `adapt-authoring-*` modules to their latest versions
50
+ 2. **Testing** — Run the full test suite and perform manual testing
51
+ 3. **Version bump** — Update the version in `package.json`
52
+ 4. **Tag and release** — Create a git tag and GitHub release with release notes
53
+
54
+ ### Permissions
55
+
56
+ Only users with collaborator status on the repository can publish releases.
package/docs/run.md ADDED
@@ -0,0 +1,12 @@
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adapt-authoring-core",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
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",