Skip to content

Commit 65d929a

Browse files
committed
Merge branch 'master' into linkcheck
* master: (25 commits) Add projectId for Cypress dashboard (#3023) Docs: faster onboarding, identify running processes, improve internal proxy clarification (#3010) Pin pyOpenSSL to 21.1.0 Back to development Release 14.7.0 Prepare for release Fix changelog Look ma, no `momentjs`! (#2910) Back to development Release 14.6.0 Prepare for release Fix ObjectWidget story (#3009) Use `volto.config.js` as dynamic configuration for addons. It adds up… (#3008) fix: enable url with 'underscore' char fix: fixed italian translations Back to development Release 14.5.0 Prepare for release Chenges to lockfile not saved, apparently :/ Fix `language-independent-field` CSS class styling (#3005) ...
2 parents c95c40c + facd3c9 commit 65d929a

File tree

77 files changed

+2591
-421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2591
-421
lines changed

Diff for: CHANGELOG.md

+44-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Change Log
22

3-
## 14.4.1 (unreleased)
3+
## 14.7.1 (unreleased)
44

55
### Breaking
66

@@ -16,9 +16,50 @@
1616

1717
### Internal
1818

19-
- Lazyload react-beautiful-dnd @tiberiuichim
19+
### Docs
20+
21+
Update documentation for internal proxy & other smaller reorganisation for quicker onboarding of
22+
new users/evaluators. @fredvd
23+
24+
## 14.7.0 (2022-01-28)
25+
26+
### Feature
27+
28+
- Add `<FormattedDate>` and `<FormattedRelativeDate>` components. Check their Storybook stories for details. This is part of ongoing work to minimize the use of 'deprecated' momentjs. @sneridagh @tiberiuichim
29+
30+
### Internal
31+
32+
- Upgrade jest to latest release, 27 major. @tiberiuichim
33+
- Lazyload momentjs. `parseDateTime` helper now requires passing the momentjs library @tiberiuichim
34+
35+
## 14.6.0 (2022-01-27)
36+
37+
### Feature
38+
39+
- Use `volto.config.js` as dynamic configuration for addons. It adds up to the `package.json` `addons` key, allowing dynamic load of addons (eg. via environment variables) @sneridagh
2040

41+
### Internal
42+
43+
- Fix ObjectListWidget story bug caused by lazyloading dnd libraries
44+
@tiberiuichim
45+
46+
## 14.5.0 (2022-01-26)
47+
48+
### Feature
49+
50+
- VocabularyTermsWidget: Token is now on creation of term editable, but stays ineditable afterwards. @ksuess
51+
52+
### Bugfix
53+
54+
- Fix A11Y violations in Navigation @iRohitSingh
55+
- Fix `language-independent-field` CSS class styling @sneridagh
56+
57+
### Internal
58+
59+
- Lazyload react-beautiful-dnd @tiberiuichim
2160
- Lazyload react-dnd @tiberiuichim
61+
- Improve docs on environment variables, add recipes @sneridagh
62+
- Update p.restapi to 8.20.0 and plone.volto to 4.0.0a1 and plone.rest to 2.0.0a2 @sneridagh
2263

2364
## 14.4.0 (2022-01-21)
2465

@@ -36,6 +77,7 @@
3677

3778
### Bugfix
3879

80+
- Fix ListingBlock to add "No results" message when there are no messages @erral
3981
- Fix overflow table in Content view @giuliaghisini
4082
- Fixed url validation in FormValidation to admit ip addresses. @giuliaghisini
4183
- Upgrade to plone.restapi 8.19.0 (to support the language independent fields serialization) @sneridagh

Diff for: Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ MAKEFLAGS+=--no-builtin-rules
1414

1515
INSTANCE_PORT=8080
1616
DOCKER_IMAGE=plone/plone-backend:5.2.6
17-
KGS=plone.restapi==8.19.0 plone.app.iterate==4.0.2 plone.rest==2.0.0a1 plone.app.vocabularies==4.3.0 plone.volto==3.1.0a8
17+
KGS=plone.restapi==8.20.0 plone.volto==4.0.0a2 plone.rest==2.0.0a2 plone.app.iterate==4.0.2 plone.app.vocabularies==4.3.0
1818

1919
# Recipe snippets for reuse
2020

@@ -91,7 +91,7 @@ start-backend: ## Start Plone Backend
9191

9292
.PHONY: start-backend-docker
9393
start-backend-docker:
94-
docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.volto" -e ZCML="plone.volto.cors" plone
94+
docker run -it --rm -p 8080:8080 -e SITE=Plone -e ADDONS='$(KGS)' $(DOCKER_IMAGE)
9595

9696
.PHONY: start-backend-docker-guillotina
9797
start-backend-docker-guillotina:

Diff for: __tests__/addon-registry.test.js

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ describe('AddonConfigurationRegistry', () => {
2626
'test-addon',
2727
'test-released-addon',
2828
'test-released-source-addon',
29+
'my-volto-config-addon',
2930
'test-released-dummy',
3031
'test-released-unmentioned',
3132
]);
@@ -60,6 +61,13 @@ describe('AddonConfigurationRegistry', () => {
6061
name: 'test-released-unmentioned',
6162
packageJson: `${base}/node_modules/test-released-unmentioned/package.json`,
6263
},
64+
'my-volto-config-addon': {
65+
addons: ['test-released-dummy'],
66+
isPublishedPackage: false,
67+
modulePath: `${base}/addons/my-volto-config-addon/src`,
68+
name: 'my-volto-config-addon',
69+
packageJson: `${base}/addons/my-volto-config-addon/package.json`,
70+
},
6371
'test-released-dummy': {
6472
addons: ['test-released-unmentioned'],
6573
isPublishedPackage: false,
@@ -74,6 +82,7 @@ describe('AddonConfigurationRegistry', () => {
7482
const base = path.join(__dirname, 'fixtures', 'test-volto-project');
7583
const reg = new AddonConfigurationRegistry(base);
7684
expect(reg.getResolveAliases()).toStrictEqual({
85+
'my-volto-config-addon': `${base}/addons/my-volto-config-addon/src`,
7786
'test-addon': `${base}/addons/test-addon/src`,
7887
'test-released-addon': `${base}/node_modules/test-released-addon`,
7988
'test-released-dummy': `${base}/addons/test-released-dummy`,
@@ -98,6 +107,7 @@ describe('AddonConfigurationRegistry', () => {
98107
'test-addon',
99108
'test-released-addon',
100109
'test-released-source-addon',
110+
'my-volto-config-addon',
101111
]);
102112
});
103113

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "test-addon",
3+
"customizationPaths": [
4+
"src/custom-addons"
5+
],
6+
"addons": [
7+
"test-released-dummy"
8+
]
9+
}

Diff for: __tests__/fixtures/test-volto-project/addons/my-volto-config-addon/src/testaddon.js

Whitespace-only changes.

Diff for: __tests__/fixtures/test-volto-project/jsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"compilerOptions": {
33
"paths": {
44
"test-addon": ["test-addon/src"],
5-
"test-released-dummy": ["test-released-dummy"]
5+
"test-released-dummy": ["test-released-dummy"],
6+
"my-volto-config-addon": ["my-volto-config-addon/src"]
67
},
78
"baseUrl": "addons"
89
}
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
addons: ['my-volto-config-addon'],
3+
};

Diff for: addon-registry.js

+15-2
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,26 @@ class AddonConfigurationRegistry {
9999
projectRootPath,
100100
'package.json',
101101
)));
102+
// Loads the dynamic config, if any
103+
if (fs.existsSync(path.join(projectRootPath, 'volto.config.js'))) {
104+
this.voltoConfigJS = require(path.join(
105+
projectRootPath,
106+
'volto.config.js',
107+
));
108+
} else {
109+
this.voltoConfigJS = [];
110+
}
111+
this.resultantMergedAddons = [
112+
...(packageJson.addons || []),
113+
...(this.voltoConfigJS.addons || []),
114+
];
102115

103116
this.projectRootPath = projectRootPath;
104117
this.voltoPath =
105118
packageJson.name === '@plone/volto'
106119
? `${projectRootPath}`
107120
: `${projectRootPath}/node_modules/@plone/volto`;
108-
this.addonNames = (packageJson.addons || []).map((s) => s.split(':')[0]);
121+
this.addonNames = this.resultantMergedAddons.map((s) => s.split(':')[0]);
109122
this.packages = {};
110123
this.customizations = new Map();
111124

@@ -114,7 +127,7 @@ class AddonConfigurationRegistry {
114127
this.initTestingPackages();
115128

116129
this.dependencyGraph = buildDependencyGraph(
117-
packageJson.addons || [],
130+
this.resultantMergedAddons,
118131
(name) => {
119132
this.initPublishedPackage(name);
120133
return this.packages[name].addons || [];

Diff for: api/buildout.cfg

+3-2
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,14 @@ eggs = ${instance:eggs}
7474
setuptools =
7575
zc.buildout =
7676
# force to latest p.restapi
77-
plone.restapi = 8.19.0
77+
plone.restapi = 8.20.0
7878
# new JSON only traversal
79-
plone.rest = 2.0.0a1
79+
plone.rest = 2.0.0a2
8080
# Using working copy support in Volto requires it
8181
plone.app.iterate = 4.0.2
8282
# plone.volto requires it
8383
plone.app.vocabularies = 4.3.0
84+
pyOpenSSL = 21.0.0
8485

8586
plone.volto =
8687
robotframework =

Diff for: cypress.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"viewportWidth": 1280,
44
"ignoreTestFiles": ["*~"],
55
"integrationFolder": "cypress/tests/core",
6-
"chromeWebSecurity": false
6+
"chromeWebSecurity": false,
7+
"projectId": "5iy5e2"
78
}

Diff for: cypress/tests/core-sandbox/search.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ context('Search action tests', () => {
3232
cy.navigate('/newsitem/edit');
3333

3434
// Add subject
35-
cy.get('a:contains("Categorization")')
36-
.click()
37-
.get('.field-wrapper-subjects input')
35+
cy.get('.field-wrapper-subjects input')
3836
.type('garden', { force: true })
3937
.type('{enter}');
4038
cy.get('#toolbar-save').click();

0 commit comments

Comments
 (0)