Skip to content

Commit 15a327e

Browse files
authored
Preparatios for 0.9.0 release (#51)
* bump version to 0.9.0-rc1 Signed-off-by: Rafael Passos <rafael@rcpassos.me> * fix identation on provenace job Signed-off-by: Rafael Passos <rafael@rcpassos.me> * set output tag name in actions for provenance Signed-off-by: Rafael Passos <rafael@rcpassos.me> * fix: ci: hash release/compressed artifacts move all artifacts to releases folder and hash them from there Signed-off-by: Rafael Passos <rafael@rcpassos.me> * fix(lang): typos Signed-off-by: Rafael Passos <rafael@rcpassos.me> * fix(ci): zip before upload, list files with echo also fixes job dependency in release->provenance Signed-off-by: Rafael Passos <rafael@rcpassos.me> * fix(ci) slsa generator with tag instead of sha Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: add actions/attest-build-provenance for each artifact Signed-off-by: Rafael Passos <rafael@rcpassos.me> * bump 0.9.0-rc * ci: fix glob in attest-build-provenance Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: add attestations: write permissions Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: uses sha in slsa workflow Signed-off-by: Rafael Passos <rafael@rcpassos.me> * bump 0.9.0-rc3 Signed-off-by: Rafael Passos <rafael@rcpassos.me> * Revert "ci: uses sha in slsa workflow" This reverts commit f98caeb. Signed-off-by: Rafael Passos <rafael@rcpassos.me> * refactor: mv Download functions to Downloads mod * docs: update docs and readme, add architectural-drawing Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: scorecard.dev integration Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: upload sha256sms as an asset Signed-off-by: Rafael Passos <rafael@rcpassos.me> * ci: bump to 0.9.0-rc4 Signed-off-by: Rafael Passos <rafael@rcpassos.me> * doc: roadmap and maintainer structure Signed-off-by: Rafael Passos <rafael@rcpassos.me> * doc: fix excalidraw file using obsidian plugin Signed-off-by: Rafael Passos <rafael@rcpassos.me> * bump to 0.9.0 Signed-off-by: Rafael Passos <rafael@rcpassos.me> --------- Signed-off-by: Rafael Passos <rafael@rcpassos.me>
1 parent 6215eb8 commit 15a327e

File tree

17 files changed

+1736
-185
lines changed

17 files changed

+1736
-185
lines changed

.github/workflows/publish.yaml

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ jobs:
1414
actions: read # To read the workflow path.
1515
id-token: write # To sign the provenance.
1616
contents: write # To add assets to a release.
17+
attestations: write # add slsa attestations
1718
name: "Build and Publish Release"
1819
outputs:
1920
hashes: ${{ steps.hash.outputs.hashes }}
@@ -59,32 +60,27 @@ jobs:
5960
- name: Run cargo build
6061
run: cargo build --release
6162

62-
# Generate the hashes for Provenance
63-
- name: Generate subject
64-
id: hash
65-
run: |
66-
set -euo pipefail
67-
echo "hashes=$(sha256sum ./target/release/protonup-rs | base64 -w0)" >> "$GITHUB_OUTPUT"
68-
6963
- name: Run cargo-deb to build a debian package
7064
run: cargo-deb -p protonup-rs --compress-type gzip --deb-version $CURRENT_VERSION
7165

7266
- name: Run Alient to convert the DEB package into a RPM package
7367
run: |
7468
cd target/debian
7569
alien -k --to-rpm protonup-rs_${{ env.CURRENT_VERSION }}_amd64.deb
70+
# move all artifacts to the release folder
71+
mv *.deb *.rpm ../release/
7672
77-
- name: Compress binary release artefacts
73+
- name: Compress binary release artifacts
7874
run: |
7975
cd ./target/release
8076
zip protonup-rs-linux-amd64.zip protonup-rs
8177
tar -czvf protonup-rs-linux-amd64.tar.gz protonup-rs
8278
83-
- name: Upload Ziped,Tar gzed, DEB and RPM binaries to release
79+
- name: Upload Zipped,Tar gzed, DEB and RPM binaries to release
8480
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd #v2.9.0
8581
with:
8682
repo_token: ${{ secrets.GITHUB_TOKEN }}
87-
file: 'target/{release,debian}/protonup-rs**.{gz,zip,rpm,deb}'
83+
file: 'target/release/protonup-rs**.{gz,zip,rpm,deb}'
8884
tag: v${{ env.CURRENT_VERSION }}
8985
overwrite: true
9086
file_glob: true
@@ -118,14 +114,48 @@ jobs:
118114
cargo publish -p protonup-rs
119115
fi
120116
121-
provenance:
122-
needs: [build]
123-
permissions:
124-
actions: read # To read the workflow path.
125-
id-token: write # To sign the provenance.
126-
contents: write # To add assets to a release.
127-
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@f7dd8c54c2067bafc12ca7a55595d5ee9b75204a # v2.1.0
128-
with:
129-
base64-subjects: "${{ needs.build.outputs.hashes }}"
130-
upload-assets: true
131-
upload-tag-name: v${{ env.CURRENT_VERSION }}
117+
# outputs version
118+
- name: Output Tag Name
119+
id: published_version
120+
run: |
121+
set -euo pipefail
122+
echo "published_version=v$CURRENT_VERSION" >> "$GITHUB_OUTPUT"
123+
124+
# Generate the hashes for Provenance
125+
- name: Generate hashes
126+
id: hash
127+
run: |
128+
cd target/release/
129+
sha256sum $(echo *.zip *.deb *.rpm *.gz ) | base64 -w0 > sha256sums.txt
130+
echo "hashes=$(cat sha256sums.txt )" >> "$GITHUB_OUTPUT"
131+
132+
- name: Upload sha256sums
133+
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd #v2.9.0
134+
with:
135+
repo_token: ${{ secrets.GITHUB_TOKEN }}
136+
file: 'target/release/sha256sums.txt'
137+
tag: v${{ env.CURRENT_VERSION }}
138+
overwrite: true
139+
file_glob: true
140+
draft: true
141+
142+
- uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
143+
with:
144+
subject-path: |
145+
target/release/protonup-rs*.gz
146+
target/release/protonup-rs*.zip
147+
target/release/protonup-rs*.deb
148+
target/release/protonup-rs*.rpm
149+
150+
provenance:
151+
needs: [release]
152+
permissions:
153+
actions: read # To read the workflow path.
154+
id-token: write # To sign the provenance.
155+
contents: write # To add assets to a release.
156+
attestations: write # add slsa attestations
157+
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
158+
with:
159+
base64-subjects: "${{ needs.release.outputs.hashes }}"
160+
upload-assets: true
161+
upload-tag-name: ${{ needs.release.outputs.published_version }}

.github/workflows/scorecard.yaml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# This workflow uses actions that are not certified by GitHub. They are provided
2+
# by a third-party and are governed by separate terms of service, privacy
3+
# policy, and support documentation.
4+
5+
name: Scorecard supply-chain security
6+
on:
7+
# For Branch-Protection check. Only the default branch is supported. See
8+
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
9+
branch_protection_rule:
10+
# To guarantee Maintained check is occasionally updated. See
11+
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
12+
schedule:
13+
- cron: '27 8 * * 5'
14+
push:
15+
branches: [ "main" ]
16+
17+
# Declare default permissions as read only.
18+
permissions: read-all
19+
20+
jobs:
21+
analysis:
22+
name: Scorecard analysis
23+
runs-on: ubuntu-latest
24+
# `publish_results: true` only works when run from the default branch. conditional can be removed if disabled.
25+
if: github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request'
26+
permissions:
27+
# Needed to upload the results to code-scanning dashboard.
28+
security-events: write
29+
# Needed to publish results and get a badge (see publish_results below).
30+
id-token: write
31+
# Uncomment the permissions below if installing in a private repository.
32+
# contents: read
33+
# actions: read
34+
35+
steps:
36+
- name: "Checkout code"
37+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38+
with:
39+
persist-credentials: false
40+
41+
- name: "Run analysis"
42+
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
43+
with:
44+
results_file: results.sarif
45+
results_format: sarif
46+
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
47+
# - you want to enable the Branch-Protection check on a *public* repository, or
48+
# - you are installing Scorecard on a *private* repository
49+
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
50+
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
51+
52+
# Public repositories:
53+
# - Publish results to OpenSSF REST API for easy access by consumers
54+
# - Allows the repository to include the Scorecard badge.
55+
# - See https://github.com/ossf/scorecard-action#publishing-results.
56+
# For private repositories:
57+
# - `publish_results` will always be set to `false`, regardless
58+
# of the value entered here.
59+
publish_results: true
60+
61+
# (Optional) Uncomment file_mode if you have a .gitattributes with files marked export-ignore
62+
# file_mode: git
63+
64+
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
65+
# format to the repository Actions tab.
66+
- name: "Upload artifact"
67+
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
68+
with:
69+
name: SARIF file
70+
path: results.sarif
71+
retention-days: 5
72+
73+
# Upload the results to GitHub's code scanning dashboard (optional).
74+
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
75+
- name: "Upload to code-scanning"
76+
uses: github/codeql-action/upload-sarif@v3
77+
with:
78+
sarif_file: results.sarif
79+

Cargo.lock

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
11
# Protonup-rs
22

3-
Lib, CLI and GUI(wip) program to automate the installation and update of Proton-GE
3+
Lib, CLI and GUI(wip) program to automate the installation and update of Linux Gaming Compatibility tools, like ProtonGE, Luxtorpeda, Boxtron and others.
44

55
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/10372/badge)](https://www.bestpractices.dev/projects/10372)
66

7-
> **NOTE**: This has no relations with the original ProtonUp project, and I am glad it was created.
8-
> ~~This is not nearly as feature complete as the original Protonup~~.
7+
> **NOTE**: This has no relations with the original ProtonUp project, and I thankful for the original author.
98
>
109
> I've create it because the original project had a few issues with its Python dependencies (that most likely got fixed already).
1110
> I wanted to to re-create it in rust, in a way it could be used as a lib and a CLI.
12-
> ~~If this repo gets to a stable and feature rich state, I will publish it to Cargo and other repositories.~~ I guess it got there! Thanks!
1311
1412
[![asciicast](https://asciinema.org/a/QZ97c4yRwQ6YczTliB1ziZy5Z.svg)](https://asciinema.org/a/QZ97c4yRwQ6YczTliB1ziZy5Z)
1513

14+
## Currently supported tools
15+
16+
These are the tools that are currently supported by this project.
17+
18+
| Project Name | GitHub Repository |
19+
|-------------------|-------------------|
20+
| GEProton | [GloriousEggroll/proton-ge-custom](https://github.com/GloriousEggroll/proton-ge-custom) |
21+
| WineGE | [GloriousEggroll/wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) |
22+
| Luxtorpeda | [luxtorpeda-dev/luxtorpeda](https://github.com/luxtorpeda-dev/luxtorpeda) |
23+
| Boxtron | [dreamer/boxtron](https://github.com/dreamer/boxtron) |
24+
| VKD3D-Proton | [HansKristian-Work/vkd3d-proton](https://github.com/HansKristian-Work/vkd3d-proton) |
25+
| Lutris-VKD3D | [lutris/vkd3d](https://github.com/lutris/vkd3d) |
26+
| DXVK | [doitsujin/dxvk](https://github.com/doitsujin/dxvk) |
27+
| Kron4ek Wine | [kron4ek/Wine-Builds](https://github.com/kron4ek/Wine-Builds) |
28+
29+
Adding new tools should be a simple process, check the docs section below!
30+
1631
## Usage
1732

1833
The default way is to simply invoke the cli, and navigate the text interface.
@@ -88,18 +103,29 @@ cargo build -p protonup-rs --release
88103
mv ./target/release/protonup-rs "your path"
89104
```
90105

91-
## GUI
106+
## Docs
92107

93-
Not ready for usage.
108+
Code docs available in the [docs/docs.md](./docs/docs.md) file, and default generated docs in [docs.rs/libprotonup](https://docs.rs/libprotonup/latest/libprotonup/).
94109

95-
The GUI is in its [early stages](https://github.com/auyer/Protonup-rs/tree/feature/gui). My current plan is to develop it in the iced framework, but GUI development is not my forte.
110+
### Roadmap
111+
112+
1. GUI:
113+
Not ready for usage. I made a few experiments with different libs, and decided to use the iced/cosmic framework.
114+
I left the [base structure](https://github.com/auyer/Protonup-rs/tree/feature/gui), and hope to get to it someday or to receive contributions.
96115

97116
## Feedbacks & Contributing
98117

99118
This project accepts contributions and feedbacks from anyone.
100-
For feedbacks, please use GitHub Issues or Discussions. Please be polite!
119+
For feedbacks, please use GitHub Issues or Discussions. Please be polite ([code-of-conduct](https://www.rust-lang.org/policies/code-of-conduct)).
101120

102121
For contributions, there aren't many rules.
103122
Just try to justify your changes, and try to make the pull request easy to review.
104123
Is is very recommended to add tests, specially for complex code.
105124
Thanks!
125+
126+
### Roles and Maintainers
127+
128+
This project is maintained only by the creator [@auyer](https://rcpassos.me)
129+
130+
Maintaining this project does not take a lot of effort.
131+
The project is open to having other contributors, specially if implementing a GUI.

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Due to its low risk nature, there are very few attack vectors that could take pl
88

99
| Version | Supported |
1010
| ------- | ------------------ |
11-
| 0.8.x | :white_check_mark: |
11+
| 0.9.x | :white_check_mark: |
1212

1313
## Reporting a Vulnerability
1414

0 commit comments

Comments
 (0)