diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml index 0bbd8db66..15e184327 100644 --- a/.github/pr-labeler.yml +++ b/.github/pr-labeler.yml @@ -1,4 +1,22 @@ -'Type: Bug / Error': ['bug/*', fix/*] -'Type: Enhancement': ['feature/*', 'feat/*'] -'Type: Other': ['other/*', 'chore/*', 'test/*', 'refactor/*'] -'Area: Documentation': ['docs/*'] +# yaml-language-server: $schema=https://raw.githubusercontent.com/release-drafter/release-drafter/master/schema.json +autolabeler: + - label: 'Type: Bug / Error' + branch: + - '/bug\/.+/' + - '/fix\/.+/' + - label: 'Type: Enhancement' + branch: + - '/feature\/.+/' + - '/feat\/.+/' + - label: 'Type: Other' + branch: + - '/other\/.+/' + - '/chore\/.+/' + - '/test\/.+/' + - '/refactor\/.+/' + - label: 'Area: Documentation' + branch: + - '/docs\/.+/' + +template: | + This field is unused, as we only use this config file for labeling PRs. diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index e650f8dd1..83138c3d4 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -25,8 +25,6 @@ categories: change-template: '- $TITLE (#$NUMBER) @$AUTHOR' sort-by: title sort-direction: ascending -branches: - - develop exclude-labels: - 'Skip changelog' no-changes-template: 'This release contains minor changes and bugfixes.' diff --git a/.github/workflows/pr-labeler-config-validator.yml b/.github/workflows/pr-labeler-config-validator.yml deleted file mode 100644 index 8bdfed21b..000000000 --- a/.github/workflows/pr-labeler-config-validator.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Validate PR Labeler Configuration -on: - push: - paths: - - .github/workflows/pr-labeler-config-validator.yml - - .github/workflows/pr-labeler.yml - - .github/pr-labeler.yml - pull_request: - paths: - - .github/workflows/pr-labeler-config-validator.yml - - .github/workflows/pr-labeler.yml - - .github/pr-labeler.yml - -jobs: - pr-labeler: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Validate Configuration - uses: Yash-Singh1/pr-labeler-config-validator@releases/v0.0.3 - with: - configuration-path: .github/pr-labeler.yml diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 0a53c6e42..b2fc1cc26 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -1,13 +1,31 @@ name: Apply labels to PR on: pull_request_target: - types: [opened] + # required for pr-labeler to support PRs from forks + # ===================== ⛔ ☢️ 🚫 ⚠️ Warning ⚠️ 🚫 ☢️ ⛔ ======================= + # Be very careful what you put in this GitHub Action workflow file to avoid + # malicious PRs from getting access to the Mermaid-js repo. + # + # Please read the following first before reviewing/merging: + # - https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target + # - https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ + types: [opened, reopened, synchronize] + +permissions: + contents: read jobs: pr-labeler: runs-on: ubuntu-latest + permissions: + contents: read # read permission is required to read config file + pull-requests: write # write permission is required to label PRs steps: - name: Label PR - uses: TimonVS/pr-labeler-action@v4 + uses: release-drafter/release-drafter@v5 + with: + config-name: pr-labeler.yml + disable-autolabeler: false + disable-releaser: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml index a37b7bcf2..8ad1b13ec 100644 --- a/.github/workflows/release-draft.yml +++ b/.github/workflows/release-draft.yml @@ -5,11 +5,19 @@ on: branches: - develop +permissions: + contents: read + jobs: draft-release: runs-on: ubuntu-latest + permissions: + contents: write # write permission is required to create a github release + pull-requests: read # required to read PR titles/labels steps: - name: Draft Release - uses: toolmantim/release-drafter@v5 + uses: release-drafter/release-drafter@v5 + with: + disable-autolabeler: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.vite/build.ts b/.vite/build.ts index b89df9e31..bacc6bc6c 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -117,6 +117,9 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) output, }, }, + define: { + 'import.meta.vitest': 'undefined', + }, resolve: { extensions: [], }, diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js index aac4a31b1..b7583ccf1 100644 --- a/cypress/integration/rendering/flowchart-v2.spec.js +++ b/cypress/integration/rendering/flowchart-v2.spec.js @@ -729,6 +729,18 @@ A ~~~ B {} ); }); + + it('5064: Should render when subgraph child has links to outside node and subgraph', () => { + imgSnapshotTest( + `flowchart TB + Out --> In + subgraph Sub + In + end + Sub --> In` + ); + }); + describe('Markdown strings flowchart (#4220)', () => { describe('html labels', () => { it('With styling and classes', () => { diff --git a/cypress/integration/rendering/gitGraph.spec.js b/cypress/integration/rendering/gitGraph.spec.js index 9f040a36f..2aab34c34 100644 --- a/cypress/integration/rendering/gitGraph.spec.js +++ b/cypress/integration/rendering/gitGraph.spec.js @@ -701,4 +701,114 @@ gitGraph TB: {} ); }); + it('34: should render a simple gitgraph with two branches from same commit', () => { + imgSnapshotTest( + `gitGraph + commit id:"1-abcdefg" + commit id:"2-abcdefg" + branch feature-001 + commit id:"3-abcdefg" + commit id:"4-abcdefg" + checkout main + branch feature-002 + commit id:"5-abcdefg" + checkout feature-001 + merge feature-002 + `, + {} + ); + }); + it('35: should render a simple gitgraph with two branches from same commit | Vertical Branch', () => { + imgSnapshotTest( + `gitGraph TB: + commit id:"1-abcdefg" + commit id:"2-abcdefg" + branch feature-001 + commit id:"3-abcdefg" + commit id:"4-abcdefg" + checkout main + branch feature-002 + commit id:"5-abcdefg" + checkout feature-001 + merge feature-002 + `, + {} + ); + }); + it('36: should render GitGraph with branch that is not used immediately', () => { + imgSnapshotTest( + `gitGraph LR: + commit id:"1-abcdefg" + branch x + checkout main + commit id:"2-abcdefg" + checkout x + commit id:"3-abcdefg" + checkout main + merge x + `, + {} + ); + }); + it('37: should render GitGraph with branch that is not used immediately | Vertical Branch', () => { + imgSnapshotTest( + `gitGraph TB: + commit id:"1-abcdefg" + branch x + checkout main + commit id:"2-abcdefg" + checkout x + commit id:"3-abcdefg" + checkout main + merge x + `, + {} + ); + }); + it('38: should render GitGraph with branch and sub-branch neither of which used immediately', () => { + imgSnapshotTest( + `gitGraph LR: + commit id:"1-abcdefg" + branch x + checkout main + commit id:"2-abcdefg" + checkout x + commit id:"3-abcdefg" + checkout main + merge x + checkout x + branch y + checkout x + commit id:"4-abcdefg" + checkout y + commit id:"5-abcdefg" + checkout x + merge y + `, + {} + ); + }); + it('39: should render GitGraph with branch and sub-branch neither of which used immediately | Vertical Branch', () => { + imgSnapshotTest( + `gitGraph TB: + commit id:"1-abcdefg" + branch x + checkout main + commit id:"2-abcdefg" + checkout x + commit id:"3-abcdefg" + checkout main + merge x + checkout x + branch y + checkout x + commit id:"4-abcdefg" + checkout y + commit id:"5-abcdefg" + checkout x + merge y + `, + {} + ); + }); }); diff --git a/demos/git.html b/demos/git.html index f24217711..92e0e6863 100644 --- a/demos/git.html +++ b/demos/git.html @@ -14,30 +14,364 @@
---- - title: Simple Git diagram + title: Simple "branch and merge" (left-to-right) --- - gitGraph: - options - { - "nodeSpacing": 50, - "nodeRadius": 5 - } - end - branch master + gitGraph LR: commit branch newbranch checkout newbranch commit + checkout main + merge newbranch ++
+ --- + title: Simple "branch and merge" (top-to-bottom) + --- + gitGraph TB: commit - checkout master + branch newbranch + checkout newbranch commit + checkout main + merge newbranch ++
+ --- + title: Continuous development (left-to-right) + --- + gitGraph LR: + commit + branch develop + checkout develop + commit + checkout main + merge develop + checkout develop + commit + checkout main + merge develop ++
+ --- + title: Continuous development (top-to-bottom) + --- + gitGraph TB: + commit + branch develop + checkout develop + commit + checkout main + merge develop + checkout develop + commit + checkout main + merge develop ++
+ --- + title: Merge feature to advanced main (left-to-right) + --- + gitGraph LR: + commit + branch newbranch + checkout newbranch + commit + checkout main commit merge newbranch- +
+ --- + title: Merge feature to advanced main (top-to-bottom) + --- + gitGraph TB: + commit + branch newbranch + checkout newbranch + commit + checkout main + commit + merge newbranch ++
+ --- + title: Two-way merges (left-to-right) + --- + gitGraph LR: + commit + branch develop + checkout develop + commit + checkout main + merge develop + commit + checkout develop + merge main + commit + checkout main + merge develop ++
+ --- + title: Two-way merges (top-to-bottom) + --- + gitGraph TB: + commit + branch develop + checkout develop + commit + checkout main + merge develop + commit + checkout develop + merge main + commit + checkout main + merge develop ++
+ --- + title: Cherry-pick from branch (left-to-right) + --- + gitGraph LR: + commit + branch newbranch + checkout newbranch + commit id: "Pick me" + checkout main + commit + checkout newbranch + commit + checkout main + cherry-pick id: "Pick me" ++
+ --- + title: Cherry-pick from branch (top-to-bottom) + --- + gitGraph TB: + commit + branch newbranch + checkout newbranch + commit id: "Pick me" + checkout main + commit + checkout newbranch + commit + checkout main + cherry-pick id: "Pick me" ++
+ --- + title: Cherry-pick from main (left-to-right) + --- + gitGraph LR: + commit + branch develop + commit + checkout main + commit id:"A" + checkout develop + commit + cherry-pick id: "A" ++
+ --- + title: Cherry-pick from main (top-to-bottom) + --- + gitGraph TB: + commit + branch develop + commit + checkout main + commit id:"A" + checkout develop + commit + cherry-pick id: "A" ++
+ --- + title: Cherry-pick then merge (left-to-right) + --- + gitGraph LR: + commit + branch newbranch + checkout newbranch + commit id: "Pick me" + checkout main + commit + checkout newbranch + commit + checkout main + cherry-pick id: "Pick me" + merge newbranch ++
+ --- + title: Cherry-pick then merge (top-to-bottom) + --- + gitGraph TB: + commit + branch newbranch + checkout newbranch + commit id: "Pick me" + checkout main + commit + checkout newbranch + commit + checkout main + cherry-pick id: "Pick me" + merge newbranch ++
+ --- + title: Merge from main onto undeveloped branch (left-to-right) + --- + gitGraph LR: + commit + branch develop + commit + checkout main + commit + checkout develop + merge main ++
+ --- + title: Merge from main onto undeveloped branch (top-to-bottom) + --- + gitGraph TB: + commit + branch develop + commit + checkout main + commit + checkout develop + merge main ++
+ --- + title: Merge from main onto developed branch (left-to-right) + --- + gitGraph LR: + commit + branch develop + commit + checkout main + commit + checkout develop + commit + merge main ++
+ --- + title: Merge from main onto developed branch (top-to-bottom) + --- + gitGraph TB: + commit + branch develop + commit + checkout main + commit + checkout develop + commit + merge main ++
+ --- + title: Two branches from same commit (left-to-right) + --- + gitGraph LR: + commit + commit + branch feature-001 + commit + commit + checkout main + branch feature-002 + commit + checkout feature-001 + merge feature-002 ++
+ --- + title: Two branches from same commit (top-to-bottom) + --- + gitGraph TB: + commit + commit + branch feature-001 + commit + commit + checkout main + branch feature-002 + commit + checkout feature-001 + merge feature-002 ++
+ --- + title: Three branches and a cherry-pick from each (left-to-right) + --- + gitGraph LR: + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + branch featureA + commit id:"FIX" + commit id: "FIX-2" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + cherry-pick id:"FIX" + checkout develop + commit id:"C" + merge featureA ++
+ --- + title: Three branches and a cherry-pick from each (top-to-bottom) + --- + gitGraph TB: + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + branch featureA + commit id:"FIX" + commit id: "FIX-2" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + cherry-pick id:"FIX" + checkout develop + commit id:"C" + merge featureA +