Developer guide - Orange-OpenSource/Orange-Boosted-Bootstrap GitHub Wiki
This guide gathers good practices and elements that can help the developers to contribute to this project.
Each pull request will be reviewed by:
- 1 or 2 developers of the core team depending on the complexity
- 1 designer if applicable
- 1 accessibility expert if applicable
Each modification of the source code must respect our philosophy: consistency. A change to fix an issue or for a new feature must take into account the existing code and propagate the new rules or modification everywhere in the code.
This philosphy is applicable for technical concepts, but also for the rendering, wording and code formatting.
Templates exist for issues and pull requests. They must be used and filled out in details to help with the efficiency of the core team. Too much details is better than no details.
Please don't forget to check all the elements in the lists.
Continuous integration is put in place thanks to GitHub Actions. Most of these GitHub Actions are executable locally. The detailed commands are available in our package.json in the scripts section.
Based on the users' feedback, we are maintaining a detailed migration guide between versions. Each PR should be evaluated in terms of impact for the end-user:
- Change of HTML markup in components, documentation and examples
- New/deprecated features or components
- New/deprecated Sass/CSS variables
Most of the time, when new variables are added (CSS or Sass), it must be reflected in the documentation thanks to the <code>scss-docs</code> shortcode.
New components have their own docs pages, Sass files, JavaScript code and tests. But they can also be mentioned somewhere else in the documentation. Here is a list of places not to forget:
- in
/about/overview/#custom-componentsif it is an Orange custom component - in
/getting-started/introduction/#componentsif it is a new Orange custom component that requires JavaScript (and Popper) - in
<code>/customize/overview#csps-and-embedded-svgs</code>if it is a new Orange custom component that includes embedded SVGs in our CSS - in
<code>/forms/validation/?#supported-elements</code>if it is a new Orange custom component that is a form control - in
<code>/forms/overview/</code>if it is a new Orange custom component that is a form control
A hidden URL is available in the documentation to check more easily some reusable elements of this documentation. It is available at /docsref/ (e.g., https://main--boosted.netlify.app/docsref/).
Before each release we must update the using-ouds-web skill to be sure it includes all the documentation related to the release.
Be careful, skills are directly installed from main branch of this Github repo, they are not released. The skill must therefore be updated just before the release and not with every feature merged on main.
The update process is to use and Agent to update the skill. Currently the skill is updated thanks to opencode using the skills available in .github/skills.
The prompt might looks like that :
The folder @skills/using-ouds-web contains a skill for AI agent of users of our library. Update the skill with what has been done in the last release of the library. You can find the changelog in @site/src/content/docs/getting-started/migration.mdx and the corresponding documentation of each items in @site/src/content/docs . Use all the most recent best practices for skill writing.