Skip to content

Commit 7272f8f

Browse files
authored
build: Release (#2714)
2 parents 4c86232 + 824b677 commit 7272f8f

File tree

63 files changed

+13632
-13655
lines changed

Some content is hidden

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

63 files changed

+13632
-13655
lines changed

.eslintrc.json

Lines changed: 0 additions & 39 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ jobs:
105105
- name: Node 20
106106
NODE_VERSION: 20.18.0
107107
- name: Node 22
108-
NODE_VERSION: 22.9.0
108+
NODE_VERSION: 22.12.0
109109
fail-fast: false
110110
name: ${{ matrix.name }}
111111
timeout-minutes: 15

.github/workflows/release-automated.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
persist-credentials: false
1414
- uses: actions/setup-node@v4
1515
with:
16-
node-version: 18
16+
node-version: 20
1717
registry-url: https://registry.npmjs.org/
1818
cache: npm
1919
- run: npm ci

release.config.js renamed to .releaserc.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22
* Semantic Release Config
33
*/
44

5-
const fs = require('fs').promises;
6-
const path = require('path');
5+
const { readFile } = require('fs').promises;
6+
const { resolve } = require('path');
7+
8+
// For ES6 modules use:
9+
// import { readFile } from 'fs/promises';
10+
// import { resolve, dirname } from 'path';
11+
// import { fileURLToPath } from 'url';
712

813
// Get env vars
914
const ref = process.env.GITHUB_REF;
@@ -24,7 +29,7 @@ const templates = {
2429
async function config() {
2530

2631
// Get branch
27-
const branch = ref.split('/').pop();
32+
const branch = ref?.split('/')?.pop()?.split('-')[0] || '(current branch could not be determined)';
2833
console.log(`Running on branch: ${branch}`);
2934

3035
// Set changelog file
@@ -38,13 +43,10 @@ async function config() {
3843
branches: [
3944
'release',
4045
{ name: 'alpha', prerelease: true },
41-
{ name: 'beta', prerelease: true },
46+
// { name: 'beta', prerelease: true },
4247
'next-major',
43-
// Long-Term-Support branches
44-
// { name: 'release-1', range: '1.x.x', channel: '1.x' },
45-
// { name: 'release-2', range: '2.x.x', channel: '2.x' },
46-
// { name: 'release-3', range: '3.x.x', channel: '3.x' },
47-
// { name: 'release-4', range: '4.x.x', channel: '4.x' },
48+
// Long-Term-Support branch
49+
'release-8.x.x',
4850
],
4951
dryRun: false,
5052
debug: true,
@@ -58,13 +60,13 @@ async function config() {
5860
{ scope: 'no-release', release: false },
5961
],
6062
parserOpts: {
61-
noteKeywords: [ 'BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING' ],
63+
noteKeywords: ['BREAKING CHANGE'],
6264
},
6365
}],
6466
['@semantic-release/release-notes-generator', {
6567
preset: 'angular',
6668
parserOpts: {
67-
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING']
69+
noteKeywords: ['BREAKING CHANGE']
6870
},
6971
writerOpts: {
7072
commitsSort: ['subject', 'scope'],
@@ -86,12 +88,13 @@ async function config() {
8688
['@semantic-release/github', {
8789
successComment: getReleaseComment(),
8890
labels: ['type:ci'],
89-
releasedLabels: ['state:released<%= nextRelease.channel ? `-${nextRelease.channel}` : "" %>']
91+
releasedLabels: ['state:released<%= nextRelease.channel ? `-\${nextRelease.channel}` : "" %>']
9092
}],
93+
// Back-merge module runs last because if it fails it should not impede the release process
9194
[
9295
'@saithodev/semantic-release-backmerge',
9396
{
94-
'branches': [
97+
'backmergeBranches': [
9598
// { from: 'beta', to: 'alpha' },
9699
// { from: 'release', to: 'beta' },
97100
{ from: 'release', to: 'alpha' },
@@ -106,15 +109,17 @@ async function config() {
106109

107110
async function loadTemplates() {
108111
for (const template of Object.keys(templates)) {
109-
const text = await readFile(path.resolve(__dirname, resourcePath, templates[template].file));
112+
113+
// For ES6 modules use:
114+
// const fileUrl = import.meta.url;
115+
// const __dirname = dirname(fileURLToPath(fileUrl));
116+
117+
const filePath = resolve(__dirname, resourcePath, templates[template].file);
118+
const text = await readFile(filePath, 'utf-8');
110119
templates[template].text = text;
111120
}
112121
}
113122

114-
async function readFile(filePath) {
115-
return await fs.readFile(filePath, 'utf-8');
116-
}
117-
118123
function getReleaseComment() {
119124
const url = repositoryUrl + '/releases/tag/${nextRelease.gitTag}';
120125
const comment = '🎉 This change has been released in version [${nextRelease.version}](' + url + ')';

Parse-Dashboard/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ module.exports = function(config, options) {
185185
//Check also if the icons really exist
186186
checkIfIconsExistForApps(config.apps, config.iconsFolder);
187187
}
188-
} catch (e) {
188+
} catch {
189189
// Directory doesn't exist or something.
190190
console.warn('Iconsfolder at path: ' + config.iconsFolder +
191191
' not found!');

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![Build Status](https://github.com/parse-community/parse-dashboard/workflows/ci/badge.svg?branch=release)](https://github.com/parse-community/parse-dashboard/actions?query=workflow%3Aci+branch%3Arelease)
77
[![Snyk Badge](https://snyk.io/test/github/parse-community/parse-dashboard/badge.svg)](https://snyk.io/test/github/parse-community/parse-dashboard)
88

9-
[![Node Version](https://img.shields.io/badge/nodejs-18,_20-green.svg?logo=node.js&style=flat)](https://nodejs.org/)
9+
[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22-green.svg?logo=node.js&style=flat)](https://nodejs.org/)
1010
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
1111

1212
[![npm latest version](https://img.shields.io/npm/v/parse-dashboard/latest.svg)](https://www.npmjs.com/package/parse-dashboard)

changelogs/CHANGELOG_alpha.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
# [7.0.0-alpha.2](https://github.com/ParsePlatform/parse-dashboard/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2025-03-27)
2+
3+
4+
### Features
5+
6+
* Allow to select and copy multiple cells in data browser ([#2691](https://github.com/ParsePlatform/parse-dashboard/issues/2691)) ([eb50315](https://github.com/ParsePlatform/parse-dashboard/commit/eb503151b30a5fd35437559eaddfc7e7e5991dc7))
7+
8+
# [7.0.0-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/6.2.1-alpha.1...7.0.0-alpha.1) (2025-03-22)
9+
10+
11+
### Features
12+
13+
* Increase minimum required Node versions to `18.20.4`, `20.18.0`, `22.12.0` ([#2694](https://github.com/ParsePlatform/parse-dashboard/issues/2694)) ([034df6a](https://github.com/ParsePlatform/parse-dashboard/commit/034df6af3526edc33768f408c9e8faf018fa2ba9))
14+
15+
16+
### BREAKING CHANGES
17+
18+
* Increases the minimum required Node versions to `18.20.4`, `20.18.0`, `22.12.0`. ([034df6a](034df6a))
19+
20+
## [6.2.1-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/6.2.0...6.2.1-alpha.1) (2025-03-19)
21+
22+
23+
### Bug Fixes
24+
25+
* Title row disappears when scrolling down in data browser ([#2690](https://github.com/ParsePlatform/parse-dashboard/issues/2690)) ([7eebc45](https://github.com/ParsePlatform/parse-dashboard/commit/7eebc45a17844e7d72c5a7e86963ee355f63dd77))
26+
127
# [6.2.0-alpha.3](https://github.com/ParsePlatform/parse-dashboard/compare/6.2.0-alpha.2...6.2.0-alpha.3) (2025-03-16)
228

329

eslint.config.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
const { defineConfig } = require('eslint/config');
2+
const { includeIgnoreFile } = require('@eslint/compat');
3+
const path = require('node:path');
4+
const globals = require('globals');
5+
6+
const gitignorePath = path.resolve(__dirname, '.gitignore');
7+
8+
const js = require('@eslint/js');
9+
const babelParser = require('@babel/eslint-parser');
10+
const reactPlugin = require('eslint-plugin-react');
11+
const jestPlugin = require('eslint-plugin-jest');
12+
13+
module.exports = defineConfig([
14+
includeIgnoreFile(gitignorePath), // Load ignores from .gitignore
15+
js.configs.recommended,
16+
reactPlugin.configs.flat.recommended,
17+
{
18+
files: ['**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx'],
19+
languageOptions: {
20+
parser: babelParser,
21+
parserOptions: {
22+
ecmaVersion: 6,
23+
sourceType: 'module',
24+
requireConfigFile: false
25+
},
26+
globals: {
27+
...globals.builtin,
28+
...globals.browser,
29+
...globals.es6,
30+
...globals.node,
31+
}
32+
},
33+
settings: {
34+
react: {
35+
version: 'detect',
36+
},
37+
},
38+
rules: {
39+
'indent': ['error', 2, { 'SwitchCase': 1 }],
40+
'linebreak-style': ['error', 'unix'],
41+
'no-trailing-spaces': 'error',
42+
'eol-last': 'error',
43+
'space-in-parens': ['error', 'never'],
44+
'no-multiple-empty-lines': 'warn',
45+
'prefer-const': 'error',
46+
'space-infix-ops': 'error',
47+
'no-useless-escape': 'off',
48+
'require-atomic-updates': 'off',
49+
'react/jsx-uses-vars': 'warn',
50+
'react/jsx-uses-react': 'warn',
51+
'react/react-in-jsx-scope': 'warn',
52+
'no-console': 'off',
53+
'no-case-declarations': 'off',
54+
'quotes': ['error', 'single'],
55+
'no-var': 'error',
56+
'no-prototype-builtins': 'off',
57+
'curly': ['error', 'all'],
58+
'react/no-deprecated': 'off',
59+
'react/prop-types': 'off',
60+
'react/no-string-refs': 'off',
61+
}
62+
},
63+
{
64+
files: ['**/*.test.js', '**/*.test.jsx', '**/*.test.ts', '**/*.test.tsx'],
65+
plugins: {
66+
jest: jestPlugin
67+
},
68+
languageOptions: {
69+
globals: {
70+
...globals.builtin,
71+
...globals.browser,
72+
...globals.es6,
73+
...globals.node,
74+
...globals.jest
75+
}
76+
},
77+
}
78+
]);

0 commit comments

Comments
 (0)