{"id":21614913,"url":"https://github.com/eea/clms-frontend","last_synced_at":"2026-04-02T23:38:21.299Z","repository":{"id":37544728,"uuid":"343397342","full_name":"eea/clms-frontend","owner":"eea","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-09T13:41:12.000Z","size":164236,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":27,"default_branch":"master","last_synced_at":"2026-02-09T18:40:47.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eea.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-01T11:48:34.000Z","updated_at":"2026-02-09T13:39:03.000Z","dependencies_parsed_at":"2024-01-21T21:30:24.828Z","dependency_job_id":"4408c095-5748-4d9a-9588-4bd9cdf9bbfc","html_url":"https://github.com/eea/clms-frontend","commit_stats":{"total_commits":1741,"total_committers":10,"mean_commits":174.1,"dds":0.1539345203905801,"last_synced_commit":"4a05470b3178354255950a1eb6a0492cd9222807"},"previous_names":[],"tags_count":779,"template":false,"template_full_name":null,"purl":"pkg:github/eea/clms-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Fclms-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Fclms-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Fclms-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Fclms-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eea","download_url":"https://codeload.github.com/eea/clms-frontend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Fclms-frontend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29550854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T22:10:01.412Z","updated_at":"2026-04-02T23:38:21.293Z","avatar_url":"https://github.com/eea.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Release](https://img.shields.io/github/v/release/eea/clms-frontend?sort=semver)](https://github.com/eea/clms-frontend/releases)\n[![Pipeline](https://ci.eionet.europa.eu/buildStatus/icon?job=volto/clms-frontend/master\u0026subject=master)](https://ci.eionet.europa.eu/view/Github/job/volto/job/clms-frontend/job/master/display/redirect)\n[![Pipeline develop](https://ci.eionet.europa.eu/buildStatus/icon?job=volto%2Fclms-frontend%2Fdevelop\u0026subject=develop)](https://ci.eionet.europa.eu/view/Github/job/volto/job/clms-frontend/job/develop/lastBuild/display/redirect)\n[![Release pipeline](https://ci.eionet.europa.eu/buildStatus/icon?job=volto%2Fclms-frontend%2F3.540.0\u0026build=last\u0026subject=release%20v3.540.0%20pipeline)](https://ci.eionet.europa.eu/view/Github/job/volto/job/clms-frontend/job/3.540.0/lastBuild/display/redirect/)\n\n## [CLMS Installation](https://github.com/eea/clms-frontend/blob/develop/CLMS_INSTALL.md) full guide\n\n\n## Frontend dockerhub image\n\n[eeacms/clms-frontend](https://hub.docker.com/r/eeacms/clms-frontend)\n\n## Backend\n\n[eeacms/clms-backend](https://github.com/eea/eea.docker.plone.clms)\n\n## CLMS\n\nWebsite of the CLMS portal\n\n## How to start\n\nClone this repository:\n\n```bash\n$ git clone git@github.com:eea/clms-frontend.git\n```\n\nIn the project directory, execute below commands to get running this project.\n\n### `yarn`\n\nInstalls needed packages to start the project.\n\n### `yarn develop`\n\nIt has the same effect as executing:\n\n```bash\nmissdev --config=jsconfig.json --output=addons\n```\n\nIt brings needed development packages to the src/addons folder.\n\n### `yarn start`\n\nRuns the project in development mode.  \nYou can view your application at `http://localhost:3000`\n\nThe page will reload if you make edits.\n\n### `yarn plone`\nRuns the plone docker-compose in development mode. \n\n### `yarn upgrade-volto`\nRuns command to upgrade volto to latest version.\n\n## It can be helpful\n\n### mr_developer\n\n[mr_developer](https://www.npmjs.com/package/mr-developer) is a great tool\nfor developing multiple packages at the same time.\n\nmr_developer should work with this project by using the `--config` config option:\n\n```bash\nmrdeveloper --config=jsconfig.json\n```\n\nVolto's latest razzle config will pay attention to your jsconfig.json file\nfor any customizations.\n\n## Run Plone\n\nYou will need a running Plone instance to work with this front-end.\n\nTo do so you can make use of the provided [docker-compose](https://docs.docker.com/compose/install/) file as follows:\n\n```bash\n\n$ docker-compose -f docker-compose-just-plone.yml up\n```\n\nThis will start a Plone instance on your computer listening on 8080. After starting the Plone instance for the first time\nyou need to open localhost:8080 in a browser, log in with the default user and password, go to the [Plone addons control panel](http://localhost:8080/Plone/prefs_install_products_form) and install the following add-ons:\n\n- plone.restapi\n- collective.folderishtypes:default\n- collective.folderishtypes: plone.app.contenttypes types with folderish behavior\n\n\n## Automated @eeacms dependencies upgrades\n\nAll the addon dependencies that are located in the dependencies section of `package.json` file that belong to @eeacms and have a `MAJOR.MINOR.PATCH` version are automatedly upgraded on the release of a new version of the addon. This upgrade is done directly on the `develop` branch. \n\nExceptions from automated upgrades ( see https://docs.npmjs.com/cli/v8/configuring-npm/package-json#dependencies for dependency configuration examples ) :\n* All github or local paths \n* Any version intervals ( `^version` or `\u003eversion` or `MAJOR.MINOR.x` etc )\n\n## Release\n\n## Build and QA testing on clms-staging\n\nIn some scenarios it's beneficial to have a deployed Volto system that runs a specific branch. We use the clms-staging stack in Rancher S3 - CLMS Staging environment. Create a shell in the `frontend` container, run `tmux a` (if this fail, start a new tmux session with `tmux`). If Volto is already started, stop it with CTRL+C. You can go to `src/addons/\u003caddon\u003e` and switch branches, git pull, etc. In the main /app frontend folder, you have to create a new build, using `NODE_OPTIONS=--max-old-space-size=7900 yarn build`. Then you can start the frontend with `yarn start:prod`. You can detach from tmux with `ctrl+b d`. \n  \n### Automatic release using Jenkins\n\n#### Release flow\n\nThe release flow on Volto projects is split in 2 Jenkins jobs:\n\n* A job that runs on every commit on master and creates a production ready GitHub release and tag with the version from `package.json`\n* A job that runs on every new tag ( including the one created in the first job): \n    * A new Docker image is built and released automatically on [DockerHub](https://hub.docker.com/r/eeacms/ims-frontend) with the release tag.\n    * A new entry is automatically added to [Volto - IMS](https://github.com/eea/eea.rancher.catalog/tree/master/templates/volto-ims) `EEA Rancher Catalog` with the release tag\n    * If the project demo stack is configured in `RANCHER_STACKID`, the demo stack is automatically upgraded to the newly created template version\n    * If the project url is configured in `SONARQUBE_TAG`, all volto addon dependencies will be updated both in SonarQube and their `develop` Jenkinsfile with the project url\n\n#### How to start a Production release\n\n*  The automatic release is started by creating a [Pull Request](../../compare/master...develop) from `develop` to `master`. The pull request status checks correlated to the branch and PR Jenkins jobs need to be processed successfully. 1 review from a github user with rights is mandatory.\n* It runs on every commit on `master` branch, which is protected from direct commits, only allowing pull request merge commits.\n* The automatic release is done by [Jenkins](https://ci.eionet.europa.eu). The status of the release job can be seen both in the `README.md` badges and the green check/red cross/yellow circle near the last commit information. If you click on the icon, you will have the list of checks that were run. The `continuous-integration/jenkins/branch` link goes to the Jenkins job execution webpage.\n* Automated release scripts are located in the `eeacms/gitflow` docker image, specifically [frontend-release.sh](https://github.com/eea/eea.docker.gitflow/blob/master/src/frontend-release.sh) script. It  uses the `release-it` tool.\n* As long as a PR request is open from develop to master, the PR Jenkins job will automatically re-create the CHANGELOG.md and package.json files to be production-ready.\n* The version format must be MAJOR.MINOR.PATCH. By default, next release is set to next minor version (with patch 0).\n* You can manually change the version in `package.json`.  The new version must not be already present in the tags/releases of the repository, otherwise it will be automatically increased by the script. Any changes to the version will trigger a `CHANGELOG.md` re-generation.\n* Automated commits and commits with [JENKINS] or [YARN] in the commit log are excluded from `CHANGELOG.md` file.\n\n\n\u003e The release job that runs on the `master` branch only creates the release in GitHub. The release job that runs on the new tag is the one that does the rest. \n\n\n### Manual release from the develop branch ( beta release )\n\n#### Installation and configuration of release-it\n\nYou need to first install the [release-it](https://github.com/release-it/release-it)  client.\n\n   ```\n   npm install -g release-it\n   ```\n\nRelease-it uses the configuration written in the [`.release-it.json`](./.release-it.json) file located in the root of the repository.\n\nRelease-it is a tool that automates 4 important steps in the release process:\n\n1. Version increase in `package.json` ( increased from the current version in `package.json`)\n2. `CHANGELOG.md` automatic generation from commit messages ( grouped by releases )\n3. GitHub release on the commit with the changelog and package.json modification on the develop branch\n\nTo configure the authentification, you need to export GITHUB_TOKEN for [GitHub](https://github.com/settings/tokens)\n\n   ```\n   export GITHUB_TOKEN=XXX-XXXXXXXXXXXXXXXXXXXXXX\n   ```\n\n To configure npm, you can use the `npm login` command or use a configuration file with a TOKEN :\n\n   ```\n   echo \"//registry.npmjs.org/:_authToken=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY\" \u003e .npmrc\n   ```\n\n#### Using release-it tool\n\nThere are 3 yarn scripts that can be run to do the release\n\n##### yarn release-beta\n\nAutomatically calculates and presents 3 beta versions - patch, minor and major for you to choose ( or Other for manual input).\n\n```\n? Select increment (next version):\n❯ prepatch (0.1.1-beta.0)\n  preminor (0.2.0-beta.0)\n  premajor (1.0.0-beta.0)\n  Other, please specify...\n```\n\n##### yarn release-major-beta\n\nSame as `yarn release-beta`, but with premajor version pre-selected.\n\n##### yarn release\n\nGeneric command, does not automatically add the `beta` to version, but you can still manually write it if you choose Other.\n\n#### Important notes\n\n\u003e The release can be triggered by creating a new tag in the GitHub repository. It is not recommended to do this, because both the version from `package.json` and the `CHANGELOG.md` files will be desynchronized.\n\n\u003e Do not use release-it tool on master branch, the commit on CHANGELOG.md file and the version increase in the package.json file can't be done without a PULL REQUEST.\n\n\u003e Do not keep Pull Requests from develop to master branches open when you are doing beta releases from the develop branch. As long as a PR to master is open, an automatic script will run on every commit and will update both the version and the changelog to a production-ready state - ( MAJOR.MINOR.PATCH mandatory format for version).\n\n\n\n## Production\n\nWe use [Docker](https://www.docker.com/), [Rancher](https://rancher.com/) and [Jenkins](https://jenkins.io/) to deploy this application in production.\n\n### Deploy\n\n* Within `Rancher \u003e Catalog \u003e EEA` deploy [Volto - CLMS](https://github.com/eea/eea.rancher.catalog/tree/master/templates/volto-clms)\n\n### Upgrade\n\n* Within your Rancher environment click on the `Upgrade available` yellow button next to your stack.\n\n\n* Confirm the upgrade\n\n* Or roll-back if something went wrong and abort the upgrade procedure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Fclms-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feea%2Fclms-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Fclms-frontend/lists"}