COMMUNITY
Community
Dojo NG is built in the open by a small team. This page explains where to ask questions, how to report a problem, and how to send a change.
Ask a question
Chat happens on Discord. Ask how to do something, suggest an idea, or show what you built.
Report a problem
Open an issue on Heptapod, in the repository the problem belongs to:
- components: the
dj-*elements, their plugins, and the theme. - framework: the renderer in
@dojo-ng/framework. - site: this website and the playground.
A good report names the package and its version, the browser, and the smallest page that shows the problem. A plain HTML page with an import map is often the quickest way to show it; Getting started has one you can copy. You need an account on foss.heptapod.net to open an issue.
The GitHub mirror is read-only. Star it there if you like, but open issues and merge requests on Heptapod; the project does not track them on GitHub.
Contribute a change
Start with an issue labeled good first issue in components or framework. These are small and well scoped. For anything bigger, ask on Discord or comment on the issue first, so nobody does the same work twice.
The repositories use Mercurial, not Git. Clone and build:
hg clone https://foss.heptapod.net/dojo-ng/components
cd components
npm install
npm run build
Heptapod uses Mercurial topics where Git uses branches. Work on a topic, run the checks, add a changeset if the change should be released, then push. Heptapod prints a link to open the merge request:
hg topics fix-dialog-focus
# ...edit, then:
npm run lint
npm run test:unit
npm run test:browser
npx changeset
hg commit -m "Return focus to the trigger when dj-dialog closes"
hg push --topic fix-dialog-focus
If you cannot push to the project, fork it on Heptapod and open the merge request from your fork.
Each repository has a CONTRIBUTING.md with the same steps. Three documents explain how the library is built and what a merge request needs:
- Component conventions: naming, properties and events, theming hooks, form association, and accessibility.
- QA requirements: what is tested and the pass or fail gates.
- Changesets: how to describe a change for the next release.
To extend a component without changing the library, write a plugin instead. The plugin guide shows how.
Code of conduct
Dojo NG follows the Contributor Covenant, version 2.1, on Discord, on Heptapod, and anywhere else people act on behalf of the project. In short: be respectful and constructive, and do not harass anyone.
If someone breaks it, report it privately to a moderator on the Dojo NG Discord. Reports are handled in confidence. The full text, with the enforcement guidelines, is in CODE_OF_CONDUCT.md in each repository.
License
Everything published is BSD-3-Clause. By contributing, you agree that your contribution is released under the same license. The source is in the dojo-ng group on Heptapod.