diff --git a/.changes/config.json b/.changes/config.json
index d59e3bc42..ba398fbd5 100644
--- a/.changes/config.json
+++ b/.changes/config.json
@@ -3,18 +3,152 @@
"pkgManagers": {
"rust": {
"version": true,
- "publish": false
+ "getPublishedVersion": "cargo search ${ pkg.pkg } --limit 1 | sed -nE 's/^[^\"]*\"//; s/\".*//1p' -",
+ "prepublish": [
+ "sudo apt-get update",
+ "sudo apt-get install -y webkit2gtk-4.0",
+ {
+ "command": "cargo generate-lockfile",
+ "dryRunCommand": true,
+ "runFromRoot": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"# Cargo Audit\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "cargo audit",
+ "dryRunCommand": true,
+ "runFromRoot": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "cargo package --no-verify --allow-dirty",
+ "dryRunCommand": true,
+ "pipe": true
+ }
+ ],
+ "publish": [
+ {
+ "command": "echo \"# Cargo Publish\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "cargo publish --no-verify",
+ "dryRunCommand": "cargo publish --no-verify --dry-run",
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ }
+ ],
+ "postpublish": [
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor } -f",
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
+ "git push --tags -f"
+ ],
+ "assets": [
+ {
+ "path": "${ pkg.path }/${ pkg.pkg }-${ pkgFile.version }.crate",
+ "name": "${ pkg.pkg }-${ pkgFile.version }.crate"
+ }
+ ]
},
"javascript": {
"version": true,
- "publish": false
+ "getPublishedVersion": "npm view ${ pkgFile.pkg.name } version",
+ "prepublish": [
+ {
+ "command": "yarn",
+ "dryRunCommand": true
+ },
+ {
+ "command": "echo \"# Yarn Audit\n\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\nclick to view
\n\n\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "yarn audit",
+ "dryRunCommand": true,
+ "runFromRoot": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\n\n \n\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "npm pack",
+ "dryRunCommand": true,
+ "pipe": true
+ }
+ ],
+ "publish": [
+ {
+ "command": "echo \"# NPM Package Publish\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "npm publish --access public",
+ "dryRunCommand": "npm publish --dry-run --access public",
+ "pipe": true
+ },
+ {
+ "command": "echo \"\\`\\`\\`\"",
+ "dryRunCommand": true,
+ "pipe": true
+ }
+ ],
+ "postpublish": [
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor } -f",
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
+ "git push --tags -f"
+ ]
}
},
"packages": {
"tauri.js": {
"path": "./cli/tauri.js",
"manager": "javascript",
- "dependencies": ["tauri"]
+ "dependencies": ["tauri"],
+ "assets": [
+ {
+ "path": "./cli/tauri.js/tauri-${ pkgFile.version }.tgz",
+ "name": "tauri.js-${ pkgFile.version }.tgz"
+ }
+ ]
},
"tauri-bundler": {
"path": "./cli/tauri-bundler",
@@ -36,7 +170,8 @@
},
"tauri-updater": {
"path": "./tauri-updater",
- "manager": "rust"
+ "manager": "rust",
+ "publish": false
}
}
}
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 66d9b7307..d399ca557 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -30,7 +30,6 @@ If yes, please describe the impact and migration path for existing applications
**The PR fulfills these requirements:**
-- [ ] It's submitted to the `dev` branch and _not_ the `latest` branch
- [ ] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix: #xxx[,#xxx]`, where "xxx" is the issue number)
- [ ] A change file is added if any packages will require a version bump due to this PR per [the instructions in the readme](https://github.com/tauri-apps/tauri/blob/dev/.changes/readme.md).
diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml
new file mode 100644
index 000000000..8e44b58a4
--- /dev/null
+++ b/.github/workflows/covector-version-or-publish.yml
@@ -0,0 +1,77 @@
+name: release-npm
+
+on:
+ push:
+ branches:
+ - dev
+
+jobs:
+ version-or-publish:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-node@v1
+ with:
+ node-version: 12
+ registry-url: 'https://registry.npmjs.org'
+ - name: cargo login
+ run: cargo login ${{ secrets.crate_token }}
+ - name: git config
+ run: |
+ git config --global user.name "${{ github.event.pusher.name }}"
+ git config --global user.email "${{ github.event.pusher.email }}"
+ - name: covector version
+ uses: jbolda/covector/packages/action@covector-v0
+ id: covector
+ with:
+ command: 'version-or-publish'
+ - name: Create Pull Request With Versions Bumped
+ if: ${{ steps.covector.outputs.command }} == 'version'
+ uses: tauri-apps/create-pull-request@v2.8.0
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ branch: release/version-updates
+ title: Apply Version Updates From Current Changes
+ commit-message: "apply version updates"
+ labels: "version updates"
+ body: ${{ steps.covector.outputs.change }}
+
+ tangle:
+ runs-on: ubuntu-latest
+ needs: version-or-publish
+ if: ${{ needs.version-or-publish.outputs.covector.successfulPublish }} == 'true'
+ strategy:
+ fail-fast: false
+ matrix:
+ package:
+ - name: tauri.js
+ registryName: tauri
+ - name: tauri-bundler
+ registryName: tauri-bundler
+ - name: tauri-utils
+ registryName: tauri-utils
+ - name: tauri-api
+ registryName: tauri-api
+ - name: tauri-updater
+ registryName: tauri-updater
+ - name: tauri-core
+ registryName: tauri
+
+ steps:
+ - uses: actions/checkout@v2
+ - run: echo ::set-env name=PUBLISHED::$(jq '.${{ matrix.package.name }}.command' ${{ needs.version-or-publish.outputs.covector.change }})
+ - run: echo ::set-env name=PACKAGE_VERSION::$(jq '.${{ matrix.package.name }}.pkg.pkgFile.version' ${{ needs.version-or-publish.outputs.covector.change }})
+ - name: Tangle Release
+ if: env.PUBLISHED != 'false' && !startsWith(env.PUBLISHED, "parse error") && !startsWith(env.PACKAGE_VERSION, "parse error")
+ id: tangle_release
+ uses: iotaledger/gh-tangle-release@v0.6.2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ IOTA_SEED: ${{ secrets.IOTA_SEED }}
+ IOTA_NODE: "https://iotanode.us:14267"
+ with:
+ tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
+ comment: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [npmjs.com]"
diff --git a/.github/workflows/pr-to-latest.yml b/.github/workflows/pr-to-latest.yml
deleted file mode 100644
index b326d8b3f..000000000
--- a/.github/workflows/pr-to-latest.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: pr-to-latest
-
-on:
- push:
- branches:
- - dev
-
-jobs:
- pr-to-latest:
- runs-on: ubuntu-latest
- if: contains(github.event.head_commit.message, 'version updates')
- steps:
- - uses: actions/checkout@v2
- with:
- ref: latest
- fetch-depth: 0
- - name: git config
- run: |
- git config --global user.name "${{ github.event.pusher.name }}"
- git config --global user.email "${{ github.event.pusher.email }}"
- - run: git fetch origin dev
- - run: git merge -Xours ${{ github.sha }}
- - name: Create Pull Request
- uses: tauri-apps/create-pull-request@v2.8.0
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- commit-message: ${{ github.event.head_commit.message }}
- branch: release/latest
- branch-suffix: short-commit-hash
- title: Publish
- labels: "publish"
- body: |
- Merging this PR will squash and push all changes to the latest branch.
- It will kick off the process to release and publish any packages with an incremented version number.
diff --git a/.github/workflows/pr-version-updates.yml b/.github/workflows/pr-version-updates.yml
deleted file mode 100644
index d422449c1..000000000
--- a/.github/workflows/pr-version-updates.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: pr-version-updates
-
-on:
- push:
- branches:
- - dev
-
-jobs:
- pr-to-latest:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - name: git config
- run: |
- git config --global user.name "${{ github.event.pusher.name }}"
- git config --global user.email "${{ github.event.pusher.email }}"
- - name: covector version
- uses: jbolda/covector/packages/action@covector-v0
- id: covector
- with:
- command: 'version'
- - name: Create Pull Request With Versions Bumped
- uses: tauri-apps/create-pull-request@v2.8.0
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- branch: release/version-updates
- title: Apply Version Updates From Current Changes
- commit-message: "apply version updates"
- labels: "version updates"
- body: ${{ steps.covector.outputs.change }}
diff --git a/.github/workflows/release-cargo.yml b/.github/workflows/release-cargo.yml
deleted file mode 100644
index 6c04d6826..000000000
--- a/.github/workflows/release-cargo.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-name: release-cargo
-
-on:
- push:
- branches:
- - latest
- paths:
- - '**/Cargo.toml'
- - '.github/workflows/**'
-
-jobs:
- publish:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- max-parallel: 1
- matrix:
- package:
- - name: tauri-bundler
- registryName: tauri-bundler
- path: cli/tauri-bundler
- publishPath: cli/tauri-bundler/target/package # not in workspace so target folder is nested
- auditPath: cli/tauri-bundler
- - name: tauri-utils
- registryName: tauri-utils
- path: tauri-utils
- publishPath: target/package
- auditPath: ./
- - name: tauri-api
- registryName: tauri-api
- path: tauri-api
- publishPath: target/package
- auditPath: ./
- - name: tauri-updater
- registryName: tauri-updater
- path: tauri-updater
- publishPath: target/package
- auditPath: ./
- - name: tauri-core
- registryName: tauri
- path: tauri
- publishPath: target/package
- auditPath: ./
- steps:
- - uses: actions/checkout@v2
- with:
- ref: latest
- toolchain: stable
- - name: get version
- working-directory: ${{ matrix.package.path }}
- run: echo ::set-env name=PACKAGE_VERSION::$(sed -nE 's/^\s*version = "(.*?)"/\1/p' Cargo.toml)
- - name: check published version
- run: echo ::set-env name=PUBLISHED_VERSION::$(cargo search ${{ matrix.package.registryName }} --limit 1 | sed -nE 's/^[^"]*"//; s/".*//1p' -)
- - name: install webkit2gtk
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- run: |
- sudo apt-get update
- sudo apt-get install -y webkit2gtk-4.0
- - name: cargo login
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- run: cargo login ${{ secrets.crate_token }}
- - name: cargo generate-lockfile (for audit)
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.auditPath }}
- env:
- TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
- TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
- run: |
- echo "This is only for the audit. Lock files are listed in the gitignore so it should not be published."
- cargo generate-lockfile
- - name: cargo package
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- env:
- TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
- TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
- run: |
- cargo package --no-verify
- echo "We will publish:" $PACKAGE_VERSION
- echo "This is current latest:" $PUBLISHED_VERSION
- - name: cargo audit
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.auditPath }}
- env:
- TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
- TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
- run: |
- cargo install cargo-audit
- echo "# Cargo Audit" | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- cargo audit 2>&1 | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- - name: Publish ${{ matrix.package.name }}
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- env:
- TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
- TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
- run: |
- echo "# Cargo Publish" | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- set -o pipefail && cargo publish --no-verify 2>&1 | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- - name: Create Release
- id: create_crate_release
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: jbolda/create-release@v1.1.0
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
- release_name: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"
- bodyFromFile: ./../notes.md
- draft: false
- prerelease: false
- - name: Upload Release Asset
- id: upload-release-asset
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: actions/upload-release-asset@v1.0.1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_crate_release.outputs.upload_url }}
- asset_path: ./${{ matrix.package.publishPath }}/${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
- asset_name: ${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
- asset_content_type: application/x-gtar
- - name: Tangle Release
- id: tangle_release
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: iotaledger/gh-tangle-release@v0.6.2
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- IOTA_SEED: ${{ secrets.IOTA_SEED }}
- IOTA_NODE: "https://iotanode.us:14267"
- with:
- tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
- comment: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"
diff --git a/.github/workflows/release-npm.yml b/.github/workflows/release-npm.yml
deleted file mode 100644
index 12e0e59b3..000000000
--- a/.github/workflows/release-npm.yml
+++ /dev/null
@@ -1,106 +0,0 @@
-name: release-npm
-
-on:
- push:
- branches:
- - latest
- paths:
- - '**/package.json'
- - '.github/workflows/**'
-
-jobs:
- publish:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- package:
- - name: tauri.js
- registryName: tauri
- path: cli/tauri.js
- steps:
- - uses: actions/checkout@v2
- with:
- ref: latest
- - uses: actions/setup-node@v1
- with:
- node-version: 12
- registry-url: 'https://registry.npmjs.org'
- - name: get version
- working-directory: ${{ matrix.package.path }}
- run: echo ::set-env name=PACKAGE_VERSION::$(node -p "require('./package.json').version")
- - name: check published version
- run: echo ::set-env name=PUBLISHED_VERSION::$(npm view ${{ matrix.package.registryName }} version)
- - name: yarn install
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- run: yarn
- - name: npm pack
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- run: |
- echo "pack dir:"
- ls
- npm pack
- echo "We will publish:" $PACKAGE_VERSION
- echo "This is current latest:" $PUBLISHED_VERSION
- echo "post pack dir:"
- ls
- - name: yarn audit
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- run: |
- echo "# Yarn Audit Results" | tee -a ${{runner.workspace }}/notes.md
- echo "" >> ${{runner.workspace }}/notes.md
- echo "" >> ${{runner.workspace }}/notes.md
- echo "click to view
" >> ${{runner.workspace }}/notes.md
- echo "" >> ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- yarn audit 2>&1 | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- echo " " >> ${{runner.workspace }}/notes.md
- echo "" >> ${{runner.workspace }}/notes.md
- - name: Publish ${{ matrix.package.name }}
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: |
- echo "# NPM Package Publish" | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- set -o pipefail && npm publish 2>&1 | tee -a ${{runner.workspace }}/notes.md
- echo "\`\`\`" >> ${{runner.workspace }}/notes.md
- - name: Create Release
- id: create_npm_release
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: jbolda/create-release@v1.1.0
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
- release_name: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [npmjs.com]"
- bodyFromFile: ./../notes.md
- draft: false
- prerelease: false
- - name: Upload Release Asset
- id: upload-release-asset
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: actions/upload-release-asset@v1.0.1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_npm_release.outputs.upload_url }}
- asset_path: ./${{ matrix.package.path }}/${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.tgz
- asset_name: ${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.tgz
- asset_content_type: application/x-gtar
- - name: Tangle Release
- id: tangle_release
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- uses: iotaledger/gh-tangle-release@v0.6.2
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- IOTA_SEED: ${{ secrets.IOTA_SEED }}
- IOTA_NODE: "https://iotanode.us:14267"
- with:
- tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
- comment: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [npmjs.com]"
diff --git a/.gitignore b/.gitignore
index c7dd43b96..bfaa7ddc1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -75,8 +75,9 @@ TODO.md
# rust compiled folders
target
-# Cargo lock for libs
+# lock for libs
Cargo.lock
+yarn.lock
/cli/tauri.js/test/jest/tmp
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..fca0416f1
--- /dev/null
+++ b/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "tauri-workspace",
+ "version": "0.0.0",
+ "license": "MIT",
+ "private": true,
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tauri-apps/tauri.git",
+ "directory": "cli/tauri.js"
+ },
+ "devDependencies": {
+ "covector": "^0.2.6"
+ }
+}