Technical topology low-code editing tool.
npm install
Usage explanation of scripts in package.json
.
Run the application in dev mode.
Build the application in dist
folder.
Prepare jsdoc to generate documentation.
Generate documentation with jsdoc.
Run eslint to check on the project.
Run eslint to fix on the project.
Generate issues report with eslint for sonar.
Run all the unit tests.
Run all the unit tests and generate coverage report of the unit tests for sonar.
To run all the e2e tests, you need to run the application with ALL official plugins and use specific url for library of template:
npm ci
npm run plugin:install -- name="terrator-plugin" version="0.12.2"
npm run plugin:install -- name="githubator-plugin" version="0.5.2"
TEMPLATE_LIBRARY_BASE_URL="https://raw.githubusercontent.com/ditrit/leto-modelizer-templates-library/leto-modelizer/e2e_test" npm run dev
- Install terrator-plugin and githubator-plugin
npm ci
npm run plugin:install -- name="terrator-plugin" version="0.12.2"
npm run plugin:install -- name="githubator-plugin" version="0.5.2"
- Build the application for e2e tests
docker build -t leto-modelizer -f DockerfileE2E .
- Run the application
docker run -p 8080:80 -d leto-modelizer
- Run the e2e tests
npm run test:e2e
This is the default directory structure we use for the project:
leto-modelizer
├ cypress ⇨ Contains all the cypress related files
│ ├ e2e ⇨ Contains all the e2e tests
│ ├ videos ⇨ Contains all videos of each run test (only locally)
│ └ support ⇨ Contains all support files for e2e tests
│ └ step_definitions ⇨ Contains all step definitions for e2e tests
├ dist ⇨ Contains the built application
├ docs ⇨ Contains all files generated by jsdoc
├ public ⇨ Contains all public files, like favicon
├ reports ⇨ Contains all the report files for sonar
├ src ⇨ Contains all files for the leto-modelizer application
│ ├ assets ⇨ Contains all the assets
│ ├ boot ⇨ Contains all boot configurations
│ ├ components ⇨ Contains all vue components
│ ├ css ⇨ Contains all style files
│ ├ i18n ⇨ Contains translation engine and translation files
│ ├ layouts ⇨ Contains all the page layouts
│ ├ pages ⇨ Contains all the pages
│ ├ router ⇨ Contains the router engine and the route definitions
│ └ stores ⇨ Contains store engine and all storage definitions
└ tests ⇨ Contains all files related to the tests
We use Semantic Versioning as guideline for the version management.
Steps to release:
- Create a new branch labeled
release/vX.Y.Z
from the latestmain
. - Increase the version number in
package.json
,package-lock.json
andchangelog.md
. - Verify the content of the
changelog.md
. - Commit the modifications with the label
Release version X.Y.Z
. - Create a pull request on github for this branch into
main
. - Once the pull request validated and merged, tag the
main
branch withvX.Y.Z
. - After the tag is pushed, make the release on the tag in GitHub.
The default branch is main. Direct commit on it is forbidden. The only way to update the application is through pull request.
Release tag are only done on the main
branch.
[BRANCH_TYPE]/[BRANCH_NAME]
BRANCH_TYPE
is a prefix to describe the purpose of the branch. Accepted prefixes are:feature
, used for feature developmentbugfix
, used for bug fiximprovement
, used for refactolibrary
, used for updating libraryprerelease
, used for preparing the branch for the releaserelease
, used for releasing projecthotfix
, used for applying a hotfix on main
BRANCH_NAME
is managed by this regex:[a-z0-9._-]
(_
is used as space character).