Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Commit

Permalink
Merge pull request #42 from eea/develop
Browse files Browse the repository at this point in the history
Volto 14 compatibility
  • Loading branch information
nileshgulia1 authored Jan 12, 2022
2 parents c12c259 + 7491b1f commit 3ce334a
Show file tree
Hide file tree
Showing 11 changed files with 338 additions and 563 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,24 @@ All notable changes to this project will be documented in this file. Dates are d

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

#### [0.1.31](https://github.com/eea/volto-forests-theme/compare/0.1.30...0.1.31)

- fix content.js customization [`0f16a6a`](https://github.com/eea/volto-forests-theme/commit/0f16a6a35560c63f5d62e7786a2e84da136b0081)
- update App customizations [`30369c5`](https://github.com/eea/volto-forests-theme/commit/30369c58628047e6c2ee2d612192be046b7336a5)
- fix warning [`e881021`](https://github.com/eea/volto-forests-theme/commit/e8810211219389fffdacba55f67520e00cebc9b6)
- comment navigation [`f247d9f`](https://github.com/eea/volto-forests-theme/commit/f247d9fb5ce7565aeffcdb1ae593997318173553)
- admin/admin [`67cc9e6`](https://github.com/eea/volto-forests-theme/commit/67cc9e6e148547d5e7d78efa0c0b86e072441ff6)
- use admin/secret [`5830a61`](https://github.com/eea/volto-forests-theme/commit/5830a6128996af1eaac262b43214f29cc759e686)
- use proper container links [`7ff2bdd`](https://github.com/eea/volto-forests-theme/commit/7ff2bdd70e1ae563511f40e7fe5df156f2c2a7b7)
- remove dup componentDidMount [`8fa7055`](https://github.com/eea/volto-forests-theme/commit/8fa70553a541f65ba2fd2e069b18d7be4e62cc0c)
- rename to componentDidMount [`0efabf9`](https://github.com/eea/volto-forests-theme/commit/0efabf9176d768707247a7b62d4dd3e994c473df)
- volto 14 compatibility [`c6b6c04`](https://github.com/eea/volto-forests-theme/commit/c6b6c04269c3cba3be764ade14f3d13dd8e49fcd)

#### [0.1.30](https://github.com/eea/volto-forests-theme/compare/0.1.29...0.1.30)

> 14 December 2021
- Webscore fix [`#40`](https://github.com/eea/volto-forests-theme/pull/40)
- fix edge case in browser detection [`e76c224`](https://github.com/eea/volto-forests-theme/commit/e76c224dac6fbe3f8acfef4c7349d15a5977c100)
- [Webscore fix] Correct expresion [`98e76f9`](https://github.com/eea/volto-forests-theme/commit/98e76f91a594ccdb1180886bee14bf87937deb4e)

Expand Down
9 changes: 5 additions & 4 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ pipeline {
node(label: 'docker') {
script {
try {
sh '''docker pull plone; docker run -d --name="$BUILD_TAG-plone" -e SITE="Plone" -e PROFILES="profile-plone.restapi:blocks" plone fg'''
sh '''docker pull plone/volto-addon-ci; docker run -i --name="$BUILD_TAG-cypress" --link $BUILD_TAG-plone:plone -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e DEPENDENCIES="$DEPENDENCIES" plone/volto-addon-ci cypress'''
sh '''docker pull plone; docker run -d --rm --name="$BUILD_TAG-plone" -e SITE="Plone" -e PROFILES="profile-plone.restapi:blocks" plone fg'''
sh '''docker pull plone/volto-addon-ci; docker run -i --name="$BUILD_TAG-cypress" --link $BUILD_TAG-plone:plone -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e DEPENDENCIES="$DEPENDENCIES" -e NODE_ENV=development plone/volto-addon-ci cypress'''
} finally {
try {
sh '''rm -rf cypress-reports cypress-results cypress-coverage'''
Expand All @@ -142,7 +142,8 @@ pipeline {
reportName: 'CypressCoverage',
reportTitles: 'Integration Tests Code Coverage'])
}
archiveArtifacts artifacts: 'cypress-reports/videos/*.mp4', fingerprint: true
sh '''touch empty_file; for ok_test in $(grep -E 'file=.*failures="0"' $(grep 'testsuites .*failures="0"' $(find cypress-results -name *.xml) empty_file | awk -F: '{print $1}') empty_file | sed 's/.* file="\\(.*\\)" time.*/\\1/' | sed 's#^cypress/integration/##g' | sed 's#^../../../node_modules/@eeacms/##g'); do rm -f cypress-reports/videos/$ok_test.mp4; rm -f cypress-reports/$ok_test.mp4; done'''
archiveArtifacts artifacts: 'cypress-reports/**/*.mp4', fingerprint: true, allowEmptyArchive: true
stash name: "cypress-coverage", includes: "cypress-coverage/**", allowEmpty: true
}
finally {
Expand Down Expand Up @@ -237,4 +238,4 @@ pipeline {
}
}
}
}
}
85 changes: 85 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# volto-forests-theme

[![Releases](https://img.shields.io/github/v/release/eea/volto-forests-theme)](https://github.com/eea/volto-forests-theme/releases)

[![Pipeline](https://ci.eionet.europa.eu/buildStatus/icon?job=volto-addons%2Fvolto-forests-theme%2Fmaster&subject=master)](https://ci.eionet.europa.eu/view/Github/job/volto-addons/job/volto-forests-theme/job/master/display/redirect)
[![Lines of Code](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-master&metric=ncloc)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-master)
[![Coverage](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-master&metric=coverage)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-master)
[![Bugs](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-master&metric=bugs)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-master)
[![Duplicated Lines (%)](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-master&metric=duplicated_lines_density)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-master)

[![Pipeline](https://ci.eionet.europa.eu/buildStatus/icon?job=volto-addons%2Fvolto-forests-theme%2Fdevelop&subject=develop)](https://ci.eionet.europa.eu/view/Github/job/volto-addons/job/volto-forests-theme/job/develop/display/redirect)
[![Lines of Code](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-develop&metric=ncloc)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-develop)
[![Coverage](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-develop&metric=coverage)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-develop)
[![Bugs](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-develop&metric=bugs)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-develop)
[![Duplicated Lines (%)](https://sonarqube.eea.europa.eu/api/project_badges/measure?project=volto-forests-theme-develop&metric=duplicated_lines_density)](https://sonarqube.eea.europa.eu/dashboard?id=volto-forests-theme-develop)

[Volto](https://github.com/plone/volto) add-on

Expand Down Expand Up @@ -72,6 +82,81 @@

1. Happy editing!

## Release

### Automatic release using Jenkins

* 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.
* It runs on every commit on `master` branch, which is protected from direct commits, only allowing pull request merge commits.
* 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.
* Automated release scripts are located in the `eeacms/gitflow` docker image, specifically [js-release.sh](https://github.com/eea/eea.docker.gitflow/blob/master/src/js-release.sh) script. It uses the `release-it` tool.
* 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.
* The version format must be MAJOR.MINOR.PATCH. By default, next release is set to next minor version (with patch 0).
* 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.
* Automated commits and commits with [JENKINS] or [YARN] in the commit log are excluded from `CHANGELOG.md` file.

### Manual release from the develop branch ( beta release )

#### Installation and configuration of release-it

You need to first install the [release-it](https://github.com/release-it/release-it) client.

```
npm install -g release-it
```

Release-it uses the configuration written in the [`.release-it.json`](./.release-it.json) file located in the root of the repository.

Release-it is a tool that automates 4 important steps in the release process:

1. Version increase in `package.json` ( increased from the current version in `package.json`)
2. `CHANGELOG.md` automatic generation from commit messages ( grouped by releases )
3. GitHub release on the commit with the changelog and package.json modification on the develop branch
4. NPM release ( by default it's disabled, but can be enabled in the configuration file )

To configure the authentification, you need to export GITHUB_TOKEN for [GitHub](https://github.com/settings/tokens)

```
export GITHUB_TOKEN=XXX-XXXXXXXXXXXXXXXXXXXXXX
```

To configure npm, you can use the `npm login` command or use a configuration file with a TOKEN :

```
echo "//registry.npmjs.org/:_authToken=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" > .npmrc
```

#### Using release-it tool

There are 3 yarn scripts that can be run to do the release

##### yarn release-beta

Automatically calculates and presents 3 beta versions - patch, minor and major for you to choose ( or Other for manual input).

```
? Select increment (next version):
❯ prepatch (0.1.1-beta.0)
preminor (0.2.0-beta.0)
premajor (1.0.0-beta.0)
Other, please specify...
```
##### yarn release-major-beta
Same as `yarn release-beta`, but with premajor version pre-selected.
##### yarn release
Generic command, does not automatically add the `beta` to version, but you can still manually write it if you choose Other.
#### Important notes
> 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.
> 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).
## How to contribute
See [DEVELOP.md](https://github.com/eea/volto-forests-theme/blob/master/DEVELOP.md).
Expand Down
12 changes: 4 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@eeacms/volto-forests-theme",
"version": "0.1.30",
"version": "0.1.31",
"description": "@eeacms/volto-forests-theme: Volto add-on",
"main": "src/index.js",
"author": "European Environment Agency: IDM2 A-Team",
Expand All @@ -23,27 +23,23 @@
"@eeacms/volto-matomo"
],
"dependencies": {
"@blueprintjs/core": "^3.30.0",
"@blueprintjs/icons": "^3.19.0",
"@eeacms/volto-plotlycharts": "*",
"@eeacms/volto-addons-forest": "*",
"@eeacms/volto-datablocks": "2.0.16",
"@eeacms/volto-matomo": "*",
"raven-js": "3.27.2",
"recharts": "2.1.6",
"react-highlight-words": "^0.16.0",
"react-image-gallery": "1.2.7",
"react-lazy-load-image-component": "^1.5.0",
"react-stickynode": "^2.1.1",
"react-toastify": "^5.3.2",
"webpack-bundle-analyzer": "^3.6.0"
"react-stickynode": "^2.1.1"
},
"devDependencies": {
"@cypress/code-coverage": "^3.9.5",
"babel-plugin-transform-class-properties": "^6.24.1"
},
"scripts": {
"release": "release-it",
"release-major-beta": "release-it major --preRelease=beta",
"release-beta": "release-it --preRelease=beta",
"bootstrap": "npm install -g ejs; npm link ejs; node bootstrap",
"stylelint": "../../../node_modules/stylelint/bin/stylelint.js --allow-empty-input 'src/**/*.{css,less}'",
"stylelint:overrides": "../../../node_modules/.bin/stylelint --syntax less --allow-empty-input 'theme/**/*.overrides' 'src/**/*.overrides'",
Expand Down
24 changes: 5 additions & 19 deletions src/components/theme/CatalogueViews/AppHeader.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { compose } from 'redux';
import { asyncConnect } from 'redux-connect';
import loadable from '@loadable/component';

import { Header } from '@plone/volto/components';
import { BodyClass, getBaseUrl, getView } from '@plone/volto/helpers';
Expand All @@ -25,6 +24,7 @@ import {
} from '@eeacms/volto-forests-theme/actions';
import { getPortlets } from '@eeacms/volto-addons-forest/actions';
import config from '@plone/volto/registry';
import * as Sentry from '@sentry/browser';

class App extends Component {
static propTypes = {
Expand All @@ -41,21 +41,6 @@ class App extends Component {
errorInfo: null,
};

/**
* ComponentDidMount
* @method ComponentDidMount
* @param {string} error The error
* @param {string} info The info
* @returns {undefined}
*/
componentDidMount() {
// this.props.getDefaultHeaderImage();
if (__CLIENT__ && process.env.SENTRY_DSN) {
const Raven = loadable(() => import('raven-js'));

Raven.config(process.env.SENTRY_DSN).install();
}
}
// shouldComponentUpdate(nextProps, nextState) {
// if (nextProps.loadingContent.loading || nextProps.search.loading) {
// console.log('dont load');
Expand Down Expand Up @@ -89,9 +74,10 @@ class App extends Component {
*/
componentDidCatch(error, info) {
this.setState({ hasError: true, error, errorInfo: info });
if (__CLIENT__ && process.env.SENTRY_DSN) {
const Raven = loadable(() => import('raven-js'));
Raven.captureException(error, { extra: info });
if (__CLIENT__) {
if (window?.env?.RAZZLE_SENTRY_DSN || __SENTRY__?.SENTRY_DSN) {
Sentry.captureException(error);
}
}
}

Expand Down
Loading

0 comments on commit 3ce334a

Please sign in to comment.