forked from 1b-agent/fieldcraft-upstream
repo: move to github.com/tangency-labs/fieldcraft (URLs, updater, Pages)
The updater's release endpoint, docs, README, release notes and the Pages URL point at the tangency-labs org. App IDs (io.github.jyviko.fieldcraft) stay unchanged so installed copies keep their identity and settings. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
1 parent
b74d15e44d
commit
a079e51f9d
18 files changed
+55
-55
No files matched your search
@@ -1,9 +1,9 @@
|
||||
FieldCraft is open-source CAE pre-processing in Rust: it turns geometry into analysis-ready
|
||||
finite element models, writes Abaqus, Nastran and LS-DYNA decks, and solves linear static and
|
||||
modal problems with its own solver. AI agents can drive it over MCP (`fieldcraft-cli mcp`).
|
||||
[README](https://github.com/jyviko/fieldcraft#readme) ·
|
||||
[roadmap](https://github.com/jyviko/fieldcraft/blob/main/ROADMAP.md) ·
|
||||
[issues](https://github.com/jyviko/fieldcraft/issues)
|
||||
[README](https://github.com/tangency-labs/fieldcraft#readme) ·
|
||||
[roadmap](https://github.com/tangency-labs/fieldcraft/blob/main/ROADMAP.md) ·
|
||||
[issues](https://github.com/tangency-labs/fieldcraft/issues)
|
||||
|
||||
**Which file?**
|
||||
- **macOS 11+** (Apple silicon and Intel): open `fieldcraft-{version}-macos-universal.dmg` and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# The web app (apps/fieldcraft-web, docs/web.md) on GitHub Pages: https://jyviko.github.io/fieldcraft/
|
||||
# The web app (apps/fieldcraft-web, docs/web.md) on GitHub Pages: https://tangency-labs.github.io/fieldcraft/
|
||||
# After SolidCraft's pages.yml (MIT OR Apache-2.0; see ATTRIBUTION.md).
|
||||
#
|
||||
# A push to `main` (a release; main holds released code only) builds the app with Trunk (release,
|
||||
|
||||
@@ -139,7 +139,7 @@ People trust FieldCraft with their models; a crash loses their work. **This outr
|
||||
heavy tests, nightly, before every release and on demand (`gh workflow run CI --ref <branch>`). Hostile-input tests run commands on sessions with small
|
||||
work caps (`Session::limits`) so refusals are instant; never lower the production caps for a
|
||||
test.
|
||||
- **Publishing**: `origin` is github.com/jyviko/fieldcraft. Changes land through pull requests
|
||||
- **Publishing**: `origin` is github.com/tangency-labs/fieldcraft. Changes land through pull requests
|
||||
as the workflow above describes; the coordinator reads every merged diff and sends findings
|
||||
back as fix-forward work. Never force-push `develop` or `main`; `main` holds released code and moves only by
|
||||
fast-forward at a release (docs/releasing.md). Never commit `plan/`, `.agent-files/`,
|
||||
|
||||
+17
-17
@@ -15,7 +15,7 @@ needed most, and how to claim work. The rules every change follows, by a person
|
||||
You need stable Rust 1.95 or newer.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/jyviko/fieldcraft && cd fieldcraft
|
||||
git clone https://github.com/tangency-labs/fieldcraft && cd fieldcraft
|
||||
cargo run --release -p fieldcraft -- --sample cantilever # the desktop app on a sample model
|
||||
cargo run -p fieldcraft-cli -- commands # every command and its parameters
|
||||
cargo test -p fieldcraft-solver # the tests of one crate
|
||||
@@ -28,32 +28,32 @@ cargo xtask oracle --quick # the verification ca
|
||||
|
||||
## Where help is wanted most
|
||||
|
||||
See the [`help wanted`](https://github.com/jyviko/fieldcraft/labels/help%20wanted) and
|
||||
[`good first issue`](https://github.com/jyviko/fieldcraft/labels/good%20first%20issue) labels, and
|
||||
See the [`help wanted`](https://github.com/tangency-labs/fieldcraft/labels/help%20wanted) and
|
||||
[`good first issue`](https://github.com/tangency-labs/fieldcraft/labels/good%20first%20issue) labels, and
|
||||
the `area:` labels for your field. In order of how much they would help users:
|
||||
|
||||
1. **Reproducible meshes** ([#115](https://github.com/jyviko/fieldcraft/issues/115)). The same part
|
||||
1. **Reproducible meshes** ([#115](https://github.com/tangency-labs/fieldcraft/issues/115)). The same part
|
||||
must give the same tet mesh on every platform and every run, as the solvers already do.
|
||||
2. **All-hex meshing of thin and curved parts** ([#85](https://github.com/jyviko/fieldcraft/issues/85)).
|
||||
2. **All-hex meshing of thin and curved parts** ([#85](https://github.com/tangency-labs/fieldcraft/issues/85)).
|
||||
The octree mesher over-refines thin walls; concave transition templates and an up-front depth
|
||||
are next. Hex meshing is the centre of gravity of the project.
|
||||
3. **Getting results in and out**: ParaView export ([#90](https://github.com/jyviko/fieldcraft/issues/90)),
|
||||
Gmsh import ([#91](https://github.com/jyviko/fieldcraft/issues/91)), Abaqus deck reading
|
||||
([#98](https://github.com/jyviko/fieldcraft/issues/98)), CSV and STL
|
||||
([#92](https://github.com/jyviko/fieldcraft/issues/92), [#93](https://github.com/jyviko/fieldcraft/issues/93)).
|
||||
4. **Verification benchmarks** ([#97](https://github.com/jyviko/fieldcraft/issues/97),
|
||||
[#106](https://github.com/jyviko/fieldcraft/issues/106)). An engineer with a published benchmark
|
||||
3. **Getting results in and out**: ParaView export ([#90](https://github.com/tangency-labs/fieldcraft/issues/90)),
|
||||
Gmsh import ([#91](https://github.com/tangency-labs/fieldcraft/issues/91)), Abaqus deck reading
|
||||
([#98](https://github.com/tangency-labs/fieldcraft/issues/98)), CSV and STL
|
||||
([#92](https://github.com/tangency-labs/fieldcraft/issues/92), [#93](https://github.com/tangency-labs/fieldcraft/issues/93)).
|
||||
4. **Verification benchmarks** ([#97](https://github.com/tangency-labs/fieldcraft/issues/97),
|
||||
[#106](https://github.com/tangency-labs/fieldcraft/issues/106)). An engineer with a published benchmark
|
||||
can add it as an oracle case without touching solver code.
|
||||
5. **Nonlinear elements and materials**: incompatible modes at finite strain
|
||||
([#82](https://github.com/jyviko/fieldcraft/issues/82)), kinematic hardening
|
||||
([#81](https://github.com/jyviko/fieldcraft/issues/81)), and the material library
|
||||
([#99](https://github.com/jyviko/fieldcraft/issues/99)).
|
||||
6. **The app**: typed command forms ([#112](https://github.com/jyviko/fieldcraft/issues/112)), XY and
|
||||
path plots ([#94](https://github.com/jyviko/fieldcraft/issues/94), [#95](https://github.com/jyviko/fieldcraft/issues/95)).
|
||||
([#82](https://github.com/tangency-labs/fieldcraft/issues/82)), kinematic hardening
|
||||
([#81](https://github.com/tangency-labs/fieldcraft/issues/81)), and the material library
|
||||
([#99](https://github.com/tangency-labs/fieldcraft/issues/99)).
|
||||
6. **The app**: typed command forms ([#112](https://github.com/tangency-labs/fieldcraft/issues/112)), XY and
|
||||
path plots ([#94](https://github.com/tangency-labs/fieldcraft/issues/94), [#95](https://github.com/tangency-labs/fieldcraft/issues/95)).
|
||||
|
||||
Bigger areas on the [roadmap](ROADMAP.md) — contact, dynamics, composites, coupled fields, wave
|
||||
propagation, turbulence — are open to anyone who wants to own one: start a thread in
|
||||
[Discussions](https://github.com/jyviko/fieldcraft/discussions).
|
||||
[Discussions](https://github.com/tangency-labs/fieldcraft/discussions).
|
||||
|
||||
## Before you start: claim an issue
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ edition = "2024"
|
||||
license = "MIT OR Apache-2.0"
|
||||
rust-version = "1.95"
|
||||
authors = ["FieldCraft contributors"]
|
||||
repository = "https://github.com/jyviko/fieldcraft"
|
||||
repository = "https://github.com/tangency-labs/fieldcraft"
|
||||
|
||||
[workspace.dependencies]
|
||||
# internal
|
||||
|
||||
@@ -10,8 +10,8 @@ see the results — with a nonlinear implicit solver (large deformation, plastic
|
||||
in place. Hex meshing is the centre of gravity. Next: buckling and arc-length, contact, then
|
||||
the wider material and multiphysics library. See [ROADMAP.md](ROADMAP.md).
|
||||
**Want to help?** Pick an issue labelled
|
||||
[good first issue](https://github.com/jyviko/fieldcraft/labels/good%20first%20issue) or
|
||||
[help wanted](https://github.com/jyviko/fieldcraft/labels/help%20wanted) and read
|
||||
[good first issue](https://github.com/tangency-labs/fieldcraft/labels/good%20first%20issue) or
|
||||
[help wanted](https://github.com/tangency-labs/fieldcraft/labels/help%20wanted) and read
|
||||
[CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||

|
||||
@@ -28,15 +28,15 @@ theory with shear 0.177 mm).
|
||||
|
||||
## Download
|
||||
|
||||
[](https://github.com/jyviko/fieldcraft/releases/latest)
|
||||
[](https://github.com/jyviko/fieldcraft/releases/latest)
|
||||
[](https://github.com/jyviko/fieldcraft/releases/latest)
|
||||
[](https://jyviko.github.io/fieldcraft/)
|
||||
[](https://github.com/tangency-labs/fieldcraft/releases/latest)
|
||||
[](https://github.com/tangency-labs/fieldcraft/releases/latest)
|
||||
[](https://github.com/tangency-labs/fieldcraft/releases/latest)
|
||||
[](https://tangency-labs.github.io/fieldcraft/)
|
||||
|
||||
- **macOS:** open the `.dmg` and drag FieldCraft into Applications (Apple silicon and Intel).
|
||||
- **Windows:** unzip and run `fieldcraft.exe`.
|
||||
- **Linux:** the `.AppImage` (allow it to run as a program), or the `.tar.gz`.
|
||||
- **Browser:** [try it at jyviko.github.io/fieldcraft](https://jyviko.github.io/fieldcraft/), no install.
|
||||
- **Browser:** [try it at tangency-labs.github.io/fieldcraft](https://tangency-labs.github.io/fieldcraft/), no install.
|
||||
- **Command line:** `fieldcraft-cli` ships in every package; AI agents connect to it over MCP
|
||||
([docs/mcp.md](docs/mcp.md)).
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
FieldCraft is young; only `main` and the latest release get fixes.
|
||||
|
||||
Please **don't open a public issue** for a security problem. Report it privately through the
|
||||
repository's [Security tab](https://github.com/jyviko/fieldcraft/security/advisories/new) with
|
||||
repository's [Security tab](https://github.com/tangency-labs/fieldcraft/security/advisories/new) with
|
||||
what you found, how to reproduce it (a model, deck or script), the version and platform, and the
|
||||
impact you expect.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ fn cli(host: &str, args: &[&str]) -> std::process::Output {
|
||||
#[test]
|
||||
fn update_check_reports_the_latest_release() {
|
||||
let server = Server::start().unwrap();
|
||||
server.release("latest", &json!({"tag_name": "v99.0.0", "html_url": "https://github.com/jyviko/fieldcraft/releases/tag/v99.0.0", "assets": []}));
|
||||
server.release("latest", &json!({"tag_name": "v99.0.0", "html_url": "https://github.com/tangency-labs/fieldcraft/releases/tag/v99.0.0", "assets": []}));
|
||||
let out = cli(&server.url(), &["update", "--check"]);
|
||||
assert!(out.status.success(), "{out:?}");
|
||||
let report: Value = serde_json::from_slice(&out.stdout).unwrap();
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
<meta property="og:site_name" content="FieldCraft">
|
||||
<meta property="og:title" content="FieldCraft">
|
||||
<meta property="og:description" content="Open-source CAE built in Rust: structures, heat, fluids, and MCP for AI agents.">
|
||||
<meta property="og:url" content="https://jyviko.github.io/fieldcraft/">
|
||||
<meta property="og:image" content="https://jyviko.github.io/fieldcraft/og.png">
|
||||
<meta property="og:url" content="https://tangency-labs.github.io/fieldcraft/">
|
||||
<meta property="og:image" content="https://tangency-labs.github.io/fieldcraft/og.png">
|
||||
<meta property="og:image:width" content="1280">
|
||||
<meta property="og:image:height" content="640">
|
||||
<meta property="og:image:alt" content="FieldCraft: Open-source CAE built in Rust">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="FieldCraft">
|
||||
<meta name="twitter:description" content="Open-source CAE built in Rust: structures, heat, fluids, and MCP for AI agents.">
|
||||
<meta name="twitter:image" content="https://jyviko.github.io/fieldcraft/og.png">
|
||||
<meta name="twitter:image" content="https://tangency-labs.github.io/fieldcraft/og.png">
|
||||
<link data-trunk rel="rust" data-bin="fieldcraft-web" data-wasm-opt="z" data-weak-refs />
|
||||
<link data-trunk rel="icon" type="image/svg+xml" href="../../assets/app-icon/icon-small.svg" />
|
||||
<link data-trunk rel="copy-file" href="../../assets/app-icon/icon.iconset/[email protected]" data-target-path="icons" />
|
||||
|
||||
@@ -101,7 +101,7 @@ assets = [
|
||||
[package.metadata.generate-rpm]
|
||||
name = "fieldcraft"
|
||||
license = "MIT OR Apache-2.0"
|
||||
url = "https://github.com/jyviko/fieldcraft"
|
||||
url = "https://github.com/tangency-labs/fieldcraft"
|
||||
assets = [
|
||||
{ source = "target/release/fieldcraft", dest = "/usr/bin/fieldcraft", mode = "755" },
|
||||
{ source = "target/release/fieldcraft-cli", dest = "/usr/bin/fieldcraft-cli", mode = "755" },
|
||||
|
||||
@@ -17,7 +17,7 @@ use serde_json::{Value, json};
|
||||
use crate::crash::without_home;
|
||||
|
||||
/// The issue form.
|
||||
pub const ISSUE_URL: &str = "https://github.com/jyviko/fieldcraft/issues/new";
|
||||
pub const ISSUE_URL: &str = "https://github.com/tangency-labs/fieldcraft/issues/new";
|
||||
/// The longest link a draft opens: GitHub refuses new-issue links much past 8 KB.
|
||||
pub const MAX_URL: usize = 7000;
|
||||
/// The session file a draft attaches.
|
||||
@@ -329,7 +329,7 @@ mod tests {
|
||||
..Default::default()
|
||||
};
|
||||
let d = draft(&input, "v1.2.3, testos x");
|
||||
assert!(d.url.starts_with("https://github.com/jyviko/fieldcraft/issues/new?template=bug.yml&title="), "{}", d.url);
|
||||
assert!(d.url.starts_with("https://github.com/tangency-labs/fieldcraft/issues/new?template=bug.yml&title="), "{}", d.url);
|
||||
assert!(d.attachments.is_empty() && d.clipboard.is_none(), "nothing attached without Share my session");
|
||||
let all = format!("{} {:?} {}", d.title, d.fields, decode(&d.url));
|
||||
assert!(!all.contains(&home()), "no home folder: {all}");
|
||||
|
||||
@@ -13,7 +13,7 @@ use crate::ModelApp;
|
||||
use crate::files::Prompt;
|
||||
|
||||
/// What is sent, event by event.
|
||||
pub const PRIVACY_URL: &str = "https://github.com/jyviko/fieldcraft/blob/main/docs/privacy.md";
|
||||
pub const PRIVACY_URL: &str = "https://github.com/tangency-labs/fieldcraft/blob/main/docs/privacy.md";
|
||||
/// The question, as the first run asks it.
|
||||
pub const QUESTION: &str = "Help improve FieldCraft by sharing anonymous usage: which tools you use, nothing from your models.";
|
||||
const DETAIL: &str = "Counted: the commands you run (their names, how long they took, whether they failed), the steps from a design to results, \
|
||||
|
||||
@@ -35,7 +35,7 @@ pub use release::{Asset, Check, Release};
|
||||
pub use version::Version;
|
||||
|
||||
/// The repository releases come from.
|
||||
pub const REPO: &str = "jyviko/fieldcraft";
|
||||
pub const REPO: &str = "tangency-labs/fieldcraft";
|
||||
/// The GitHub API.
|
||||
pub const DEFAULT_HOST: &str = "https://api.github.com";
|
||||
/// Replaces [`DEFAULT_HOST`] (and allows plain `http`), for tests against a local server only.
|
||||
|
||||
@@ -164,9 +164,9 @@ mod tests {
|
||||
// Errors are messages, never panics.
|
||||
let missing = Client::new(&server.url()).release(&Which::Version(Version::parse("1.2.3").unwrap())).unwrap_err();
|
||||
assert!(missing.to_string().contains("no published release of FieldCraft 1.2.3"), "{missing}");
|
||||
server.route("/repos/jyviko/fieldcraft/releases/latest", 200, b"not json".to_vec());
|
||||
server.route("/repos/tangency-labs/fieldcraft/releases/latest", 200, b"not json".to_vec());
|
||||
assert!(matches!(Client::new(&server.url()).check(), Err(Error::Release(_))));
|
||||
server.route("/repos/jyviko/fieldcraft/releases/latest", 403, b"{}".to_vec());
|
||||
server.route("/repos/tangency-labs/fieldcraft/releases/latest", 403, b"{}".to_vec());
|
||||
assert!(matches!(Client::new(&server.url()).check(), Err(Error::Network(_))));
|
||||
assert!(matches!(Client::new("http://127.0.0.1:1").check(), Err(Error::Network(_))));
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ mod tests {
|
||||
pub(crate) fn github(tag: &str) -> Value {
|
||||
json!({
|
||||
"tag_name": tag,
|
||||
"html_url": format!("https://github.com/jyviko/fieldcraft/releases/tag/{tag}"),
|
||||
"html_url": format!("https://github.com/tangency-labs/fieldcraft/releases/tag/{tag}"),
|
||||
"body": "## What's new\n- updates",
|
||||
"draft": false,
|
||||
"prerelease": false,
|
||||
|
||||
+10
-10
@@ -56,7 +56,7 @@ about it, and the release notes say which of the two the draft contains.
|
||||
| `APPLE_TEAM_ID` | The 10-character team id of the Developer ID |
|
||||
|
||||
Add them to the `release` environment ([Where the secrets live](#where-the-secrets-live)) with
|
||||
`gh secret set <NAME> --env release -R jyviko/fieldcraft`. With the certificate but without the
|
||||
`gh secret set <NAME> --env release -R tangency-labs/fieldcraft`. With the certificate but without the
|
||||
three notarization secrets the app is signed and not notarized. A dmg made locally with
|
||||
`packaging/macos/package.sh` is ad-hoc signed unless `MACOS_SIGN_IDENTITY` names an identity
|
||||
in the keychain.
|
||||
@@ -84,7 +84,7 @@ Setting it up, once:
|
||||
```sh
|
||||
cargo install --locked rsign2 --version 0.6.7
|
||||
rsign generate -W -p fieldcraft-release.pub -s fieldcraft-release.key # -W: no password
|
||||
gh secret set FIELDCRAFT_SIGNING_KEY --env release -R jyviko/fieldcraft < fieldcraft-release.key
|
||||
gh secret set FIELDCRAFT_SIGNING_KEY --env release -R tangency-labs/fieldcraft < fieldcraft-release.key
|
||||
```
|
||||
|
||||
Keep an offline copy of the secret key file (a password manager, an encrypted backup) and
|
||||
@@ -130,19 +130,19 @@ never the shell history):
|
||||
```sh
|
||||
for n in APPLE_CERTIFICATE APPLE_CERTIFICATE_PASSWORD KEYCHAIN_PASSWORD APPLE_ID APPLE_PASSWORD \
|
||||
APPLE_TEAM_ID FIELDCRAFT_SIGNING_KEY POSTHOG_KEY; do
|
||||
gh secret set "$n" --env release -R jyviko/fieldcraft < "$n.txt"
|
||||
gh secret set "$n" --env release -R tangency-labs/fieldcraft < "$n.txt"
|
||||
done
|
||||
gh secret list --env release -R jyviko/fieldcraft # all eight listed
|
||||
gh secret list --env release -R tangency-labs/fieldcraft # all eight listed
|
||||
# After a release run on main has signed with them:
|
||||
for n in APPLE_CERTIFICATE APPLE_CERTIFICATE_PASSWORD KEYCHAIN_PASSWORD APPLE_ID APPLE_PASSWORD \
|
||||
APPLE_TEAM_ID FIELDCRAFT_SIGNING_KEY POSTHOG_KEY; do
|
||||
gh secret delete "$n" -R jyviko/fieldcraft
|
||||
gh secret delete "$n" -R tangency-labs/fieldcraft
|
||||
done
|
||||
```
|
||||
|
||||
## Choose and prepare the version
|
||||
|
||||
1. Look at the previous published release (`gh release list -R jyviko/fieldcraft`) and the
|
||||
1. Look at the previous published release (`gh release list -R tangency-labs/fieldcraft`) and the
|
||||
changes since it, and choose one version for the batch: a patch for compatible fixes; a minor
|
||||
for new capabilities, and while on `0.x` also for breaking changes (say what breaks in the
|
||||
notes); `-rc.N` for a release candidate. `1.0` is the owner's decision.
|
||||
@@ -189,8 +189,8 @@ commit needs: `cargo xtask affected --base <sha>^ --head <sha>`. A file outside
|
||||
Publishing is a maintainer's call; an agent preparing a release stops at the draft.
|
||||
|
||||
1. Check the run succeeded for the intended commit and the draft targets it
|
||||
(`gh release view v<version> -R jyviko/fieldcraft`).
|
||||
2. Download the assets into an empty folder (`gh release download v<version> -R jyviko/fieldcraft`),
|
||||
(`gh release view v<version> -R tangency-labs/fieldcraft`).
|
||||
2. Download the assets into an empty folder (`gh release download v<version> -R tangency-labs/fieldcraft`),
|
||||
run `shasum -a 256 -c SHA256SUMS.txt`, check the signature
|
||||
(`minisign -Vm SHA256SUMS.txt -P <the public key above>`, or `rsign verify -P …`), and check
|
||||
every platform's files are there.
|
||||
@@ -201,13 +201,13 @@ Publishing is a maintainer's call; an agent preparing a release stops at the dra
|
||||
platforms you could not try (each job checks its own package).
|
||||
4. Edit the notes: what is new, fixes, breaking changes, known limitations. Keep the install and
|
||||
signing paragraphs; never claim signing the notes don't state.
|
||||
5. Publish: `gh release edit v<version> -R jyviko/fieldcraft --draft=false --latest`
|
||||
5. Publish: `gh release edit v<version> -R tangency-labs/fieldcraft --draft=false --latest`
|
||||
(a release candidate: `--draft=false --prerelease --latest=false`). Publishing creates the tag
|
||||
at the draft's commit; never push release tags by hand.
|
||||
|
||||
## Dry runs
|
||||
|
||||
`gh workflow run release.yml -R jyviko/fieldcraft --ref <branch>` runs the verify jobs and builds every package in parallel, and
|
||||
`gh workflow run release.yml -R tangency-labs/fieldcraft --ref <branch>` runs the verify jobs and builds every package in parallel, and
|
||||
uploads them with the notes as the `release-assets` artifact of the run, without creating a
|
||||
release. `-f draft=true` creates or updates the draft, and is accepted on `main` only.
|
||||
Locally, `packaging/macos/package.sh --arch aarch64` (or `x86_64`, `universal`) and
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ each step. The code is `crates/update` (`fieldcraft-update`); the window's side
|
||||
## Checking
|
||||
|
||||
The app asks the GitHub Releases API for the latest published release
|
||||
(`GET https://api.github.com/repos/jyviko/fieldcraft/releases/latest`; drafts and pre-releases
|
||||
(`GET https://api.github.com/repos/tangency-labs/fieldcraft/releases/latest`; drafts and pre-releases
|
||||
are never offered) and compares its version with the running one (Semantic Versioning order).
|
||||
|
||||
- **At start-up**, at most once a day, when **Check for updates automatically** is on (the
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ page through eframe's web runner, drawing with WebGPU where the browser has it a
|
||||
otherwise. The engine, the meshers and the solvers are the same code, compiled to
|
||||
`wasm32-unknown-unknown`.
|
||||
|
||||
Live: <https://jyviko.github.io/fieldcraft/>, deployed from each release (a push to `main`,
|
||||
Live: <https://tangency-labs.github.io/fieldcraft/>, deployed from each release (a push to `main`,
|
||||
`.github/workflows/pages.yml`).
|
||||
|
||||
## Run it locally
|
||||
|
||||
Reference in new issue
Block a user