diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 473175a8..be2a1511 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,12 +72,12 @@ jobs: Add-Content $env:GITHUB_PATH "C:\gtk-build\gtk\x64\release\bin" # We have hardcoded list of libraries in space-acres.wxs, make sure it didn't change unexpectedly - Get-ChildItem C:\gtk-build\gtk\x64\release\bin\*.dll | ForEach-Object { $_.Name } > wix\actual-dlls.log - if (Compare-Object -ReferenceObject (Get-Content -Path wix\expected-dlls.log) -DifferenceObject (Get-Content -Path wix\actual-dlls.log)) { + Get-ChildItem C:\gtk-build\gtk\x64\release\bin\*.dll | ForEach-Object { $_.Name } > actual-dlls.log + if (Compare-Object -ReferenceObject (Get-Content -Path res\windows\wix\expected-dlls.log) -DifferenceObject (Get-Content -Path actual-dlls.log)) { Write-Output "Expected DLLs:" - Get-Content wix\expected-dlls.log + Get-Content res\windows\wix\expected-dlls.log Write-Output "Actual DLLs:" - Get-Content wix\actual-dlls.log + Get-Content actual-dlls.log Throw "Actual DLLs do not match expected" } if: runner.os == 'Windows' diff --git a/Cargo.toml b/Cargo.toml index 42368101..ba995b9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,8 @@ include = [ # TODO: Menu shortcut will not be generated automatically in case of re-init: https://github.com/volks73/cargo-wix/issues/141 [package.metadata.wix] +# Custom location to keep the root of the project cleaner +include = ["res/windows/wix/space-acres.wxs"] product-icon = "res/windows/space-acres.ico" # TODO: This option will not have effect until https://github.com/volks73/cargo-wix/issues/270 is fixed in case of re-init product-name = "Space Acres" diff --git a/README.md b/README.md index ad500237..dcc00a22 100644 --- a/README.md +++ b/README.md @@ -37,11 +37,13 @@ The project at high level is structured in a few large modules: * `networking` contains networking stack that is shared between `farmer` and `node` with a wrapper data structure that abstracts away its internals * `node` contains consensus node with a wrapper data structure that abstracts away its internals * `utils` contains some low-level utilities +* `docs` contains documentation files * `frontend` handles majority of frontend logic with each module corresponding to a major application screen/view -* `main.rs` handles high-level UI and communication with backend, wiring everything together * `res` contains various non-code resources required for application operation and/or packaging * `app.css` contains a few small non-critical tweaks for presentation, it will likely be necessary to ship a GTK4 theme with the app in the future to ensure consistent look -* `wix` contains initially auto-generated, but then modified configuration for [cargo-wix](https://github.com/volks73/cargo-wix) that is essential for Windows packaging + * `linux` contains Linux-specific resources + * `windows` contains Windows-specific resources +* `main.rs` handles high-level UI and communication with backend, wiring everything together Application supports bare minimum configuration and doesn't support operator functionality (not yet anyway). diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 6f85b43e..8c243015 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -20,7 +20,7 @@ farm properly if you don't have enough CPU. ### Storage -HDDs are not supported and will never be. Don't ask about it, don't try using smart caching, tiered storage or other +**HDDs are not supported and will never be**. Don't ask about it, don't try using smart caching, tiered storage or other ways to accelerate it, you'll be 100% disappointed and just waste your time. **Node will require 100 GiB of good quality SSD**. Doesn't have to be anything amazing, but something mid-range from a @@ -38,8 +38,8 @@ farming rewards for literally no benefit in exchange*. ### Required ports -Application uses TCP and UDP ports 30333 and 30433 for P2P communication with the rest of the network, both should be -open and exposed publicly on your router/firewall (settings for this are typically called "port forwarding"). Without +Application uses **TCP and UDP ports 30333 and 30433** for P2P communication with the rest of the network, both should +be open and exposed publicly on your router/firewall (settings for this are typically called "port forwarding"). Without this application may sometimes work fine and sometimes have a hard time syncing or plotting, so it is **strongly recommended**. @@ -47,7 +47,8 @@ this application may sometimes work fine and sometimes have a hard time syncing For Windows go to [the latest release](https://github.com/nazar-pc/space-acres/releases/latest) and download attached file with `.msi` extension. It is not digitally signed, so you'll have to agree to accept the risk when downloading and -installing it for now. +installing it for now. Note that while things might work on other versions of Windows, **only Windows 10 and 11** with +latest updates supported. ### Dependencies diff --git a/wix/expected-dlls.log b/res/windows/wix/expected-dlls.log similarity index 100% rename from wix/expected-dlls.log rename to res/windows/wix/expected-dlls.log diff --git a/wix/space-acres.wxs b/res/windows/wix/space-acres.wxs similarity index 100% rename from wix/space-acres.wxs rename to res/windows/wix/space-acres.wxs