summaryrefslogtreecommitdiffstats
path: root/.github
AgeCommit message (Collapse)Author
2022-12-20chore(repo): remove nix support (#2038)Aram Drevekenin
2022-12-17WIP: Use `xtask` as build system (#2012)har7an
* xtask: Implement a new build system xtask is a cargo alias that is used to extend the cargo build system with custom commands. For an introduction to xtask, see here: https://github.com/matklad/cargo-xtask/ The idea is that instead of writing makefiles, xtask requires no additional dependencies except `cargo` and `rustc`, which must be available to build the project anyway. This commit provides a basic implementation of the `build` and `test` subcommands. * xtask/deps: Add 'which' * xtask/test: Handle error when cargo not found * xtask/flags: Add more commands to perform different useful tasks. Includes: - clippy - format - "make" (composite) - "install" (composite) Also add more options to `build` to selectively compile plugins or leave them out entirely. * xtask/main: Return error when cargo not found * xtask/build: Add more subtasks - `wasm_opt_plugins` and - `manpage` that perform other build commands. Add thorough documentation on what each of these does and also handle the new `build` cli flags appropriately. * xtask/clippy: Add job to run clippy * xtask/format: Add job to run rustfmt * xtask/pipeline: Add composite commands that perform multiple atomic xtask commands sequentially in a pipeline sort of fashion. * xtask/deps: Pin dependencies * xtask/main: Integrate new jobs and add documentation. * xtask: Implement 'dist' which performs an 'install' and copies the resulting zellij binary along with some other assets to a `target/dist` folder. * cargo: Update xflags version * xtask: Measure task time, update tty title * xtask: Update various tasks * xtask: wasm-opt plugins in release builds automatically. * xtask/build: Copy debug plugins to assets folder * xtask: Add 'run' subcommand * xtask: Add arbitrary args to test and run * xtask: Rearrange CLI commands in help * xtask: Add deprecation notice * docs: Replace `cargo make` with `xtask` * github: Use `xtask` in workflows. * xtask: Add support for CI commands * xtask: Streamline error handling * github: Use new xtask commands in CI * xtask: Add 'publish' job * xtask/publish: Add retry when publish fails * xtask: Apply rustfmt * xtask: Refine 'make' deprecation warning * xtask: add task to build manpage * contributing: Fix e2e commands * xtask/run: Add missing `--` to pass all arguments following `xtask run` directly to the zellij binary being run. * xtask: Stay in invocation dir and make all tasks that need it change to the project root dir themselves. * xtask/run: Add `--data-dir` flag which will allow very quick iterations when not changing the plugins between builds. * xtask/ci: Install dependencies without asking * utils: Allow including plugins from target folder * utils/assets: Reduce asset map complexity * utils/consts: Update asset map docs * xtask: Fix plugin includes * xtask/test: Build plugins first because the zellij binary needs to include the plugins. * xtask/test: Fix formatting * xtask: Add notice on how to disable it
2022-12-12fix(ci): move `nix build` -> `nix-develop`a-kenji
This will trigger the nix build workflow, only on changes in the nix files. - This won't generate precompiled artifacts for any person wanting to use them from the main branch anymore. Also PR's that pass CI won't be able to be run with: ``` nix run github:zellij-org/zellij/pr# ``` without compilation anymore on any linux, or darwin system.
2022-12-01build(deps): bump DeterminateSystems/update-flake-lock from 14 to 15 (#1982)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 14 to 15. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v14...v15) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22plugins: rework plugin loading (#1924)har7an
* zellij: Move "populate_data_dir" to utils and rewrite it to take a second, optional parameter. This allows controlling whether only a specific asset should be installed. We do this as preparation for being able to recover from a plugin version mismatch error, where we will need to repopulate the data dir for offending plugins. * server/wasm_vm: Recover from PluginVersionMismatch Adds a global plugin cache that stores, per plugin config, the wasmer module associated with it. Make `start_plugin` take the pre-populated module and create only the necessary modifications to the wasm env etc. * utils: Fix formatting * zellij: Delete non-existent module * utils/shared: fix missing "set_permissions" function when not on unix systems. * server/wasm_vm: Don't populate cachedir with serialized versions of the WASM plugins. * utils/input/plugins: load wasm bytes from assets for builtin plugin specifications. This foregoes any need to: - Dump the plugin bytes to disk at all and - subsequently read the plugin bytes from disk * zellij: Disable default asset installation which previously installed only the builtin plugins to disk. This is no longer necessary because now we can load the builtin plugins directly from the application binary. * utils/input/plugins: Update docs * utils/input/plugins: Add 'is_builtin' method to `PluginConfig` that returns true if the plugin configuration refers to a builtin plugin. * wasm_vm: Remove plugin version mismatch handling because a version mismatch in an internal plugin is now unfixable, with the plugins being loaded from the running binary, and we have no control over external plugins in the first place. * cargo: Reintroduce feature flag for `disable_automatic_asset_installation` * utils/consts: Add `ASSET_MAP` which currently contains the compiled WASM plugins. * utils/shared: Fix clippy lint * utils/errors: Add more `ZellijError` variants * zellij: Make loading internal plugins optional by reenabling the `disable_automatic_asset_installation` flag and utilizing it for this purpose. Changes plugin search behavior to throw better errors in case the builtin plugins cannot be found, depending on the state of this feature. * utils/errors: Apply rustfmt * utils/setup: Allow dumping builtin plugins to a specified folder on disk. This is meant to be an "escape hatch" for users that have accidentally deleted the builtin plugins from disk (in cases where the plugins aren't loaded from inside the zellij binary). * utils/input/plugins: Update docs * utils/setup: Add hint to `setup --check` output when zellij was built without the `disable_automatic_asset_installation` flag and will thus not read builtin plugins from the "PLUGIN DIR". * utils/setup: Refine `setup --dump-plugins` to dump to: - The default "DATA DIR" when no option is provided with the argument, or - The provided option, if existent Also print a message to stdout with the destination folder that the plugins are dumped to. * server/wasm_vm: Ignore "NotFound" errors when attempting to delete the non-existent plugin data directories. This silences an error message that otherwise ends up in the logs when quitting zellij. * utils/errors: Extend "BuiltinPluginMissing" msg to hint the user to the `zellij setup --dump-plugins` command to fix their issues for them! * utils/errors: Track caller in calls to `non_fatal` which will hopefully, once closures can be annotated, allow us to display the location of the call to `non_fatal` in log messages. * utils/input/plugins: Fix plugin lookup to prefer internal assets if available. It was previously broken because sorting the paths vector before deduping it would bring the paths into a wrong order, looking up in the plugin folder first. Also print a log message when a plugin is being loaded from the internal assets but exists on disk, too. * Apply rustfmt * make: build-e2e depends on wasm-opt-plugins so it updates the assets when building the binary * server/qwasm_vm: Remove var * utils/consts: Add plugins from target folder and include them in the asset map from there, too. Include plugins from debug or release builds, depending on the build type. * utils/consts: Take release plugins from assets instead of the target/release folder. The latter will break installations from crates.io, because we currently rely on including the plugins we pre-compiled and distribute along with the binary. * server/wasm_vm: Reintroduce .cache folder to speedup subsequent application launches. * cargo: Reorder workspace members to improve behavior with `cargo make` with respect to compilation order. * Makefile: restructure plugin tasks * Makefile: Fix CI errors * Makefile: More CI diagnosis * github: Install wasm-opt in e2e test workflow * Makefile: Build plugins for e2e-test target * server/Wasm_vm: Reorder plugin folder creation so no folders are created in the plugin cache when loading a plugin fails due to not being present or similar. * update plugins testcommit * makefile: Change job order * changelog: Add PR #1924
2022-11-09chore(ci): remove msrv check (#1923)Aram Drevekenin
2022-11-01build(deps): bump cachix/install-nix-action from 17 to 18 (#1890)dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-01build(deps): bump cachix/cachix-action from 10 to 12 (#1891)dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25chore(ci): do not strip binaryAram Drevekenin
2022-10-25chore(ci): do not strip for aarch64Aram Drevekenin
2022-10-25chore(release): temporarily disable aarch64Aram Drevekenin
2022-10-25chore(ci): fix binaryen install for ubuntu (I hope)Aram Drevekenin
2022-10-25chore(release): remove extraneous ci stepAram Drevekenin
2022-10-25chore(ci): brew work now ploxAram Drevekenin
2022-10-25chore(ci): install brew in ubuntuAram Drevekenin
2022-10-01update: update-rust-toolchain v1 -> v1.1a-kenji
2022-10-01build(deps): bump DeterminateSystems/update-flake-lock from 13 to 14 (#1762)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 13 to 14. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v13...v14) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-02docs(template): mention stty size in bug recreationAram Drevekenin
2022-08-23build(deps): bump DeterminateSystems/update-flake-lock from 12 to 13 (#1683)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 12 to 13. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v12...v13) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-22chore(ci): change dependabot frequencyAram Drevekenin
2022-08-14chore(workflows): change rust-toolchain update to once per monthAram Drevekenin
2022-08-11style(comment): update flake-lock frequency commentAram Drevekenin
2022-08-11chore(ci): change frequency of flake lock updates to once per monthAram Drevekenin
2022-08-01build(deps): bump DeterminateSystems/update-flake-lock from 10 to 12 (#1624)dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-29fix(ci): remove cachix environment (#1617)a-kenji
2022-07-29fix(ci): change checksum tool in macos (#1613)Jae-Heon Ji
2022-07-28chore(ci): do not upload checksum for macosAram Drevekenin
2022-07-15fix(ci): quoting issues (#1589)a-kenji
2022-07-10fix(ci): add new rust toolchain location to action (#1576)a-kenji
2022-07-04fix(ci): clippy (#1559)a-kenji
Install `cargo-make` explicitly in the workflow, even tough it should be cached from the previous steps. There are some corner cases in which gh messes the caching up and can't access it.
2022-07-01Use 'stty size' in issue template instead of tputraphTec
tput just revealed that it sometimes reports values read from the terminal database instead of the real tty size which is misleading (in the case where the terminal reports a zero size). Also stty is in the coreutil instead of tput from ncurses and might be available better. Finally, it's just one command instead of two and less to type.
2022-06-27build(deps): bump DeterminateSystems/update-flake-lock from 9 to 10 (#1543)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 9 to 10. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v9...v10) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-17add(ci): check for msrv (#1522)a-kenji
2022-06-15Add/ci enable clippy (#1509)a-kenji
* fix(clippy): clippy fixes * add(ci): enable clippy warnings * chore(fmt): cargo fmt * disable: failing clippy action Add `cargo make clippy` in ci
2022-06-11ci: add checksum for release binary (#1482)Jae-Heon Ji
2022-06-10add(ci/makefile): run clippy on all features (#1479)a-kenji
Run clippy on all exposed features, to minimize the possiblility of breakage.
2022-06-09ci(nix): retry nix build on spurious failure (#1472)a-kenji
2022-05-02build(deps): bump DeterminateSystems/update-flake-lock from 8 to 9 (#1365)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 8 to 9. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v8...v9) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11build(deps): bump cachix/install-nix-action from 16 to 17 (#1310)dependabot[bot]
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 16 to 17. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](https://github.com/cachix/install-nix-action/compare/v16...v17) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28build(deps): bump actions/cache from 2 to 3 (#1277)dependabot[bot]
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25fix(ci): disable enabling of flakes in action'sa-kenji
2022-03-25fix(ci): scope for triggering the workflowa-kenji
2022-03-21add(ci): token to `update-rust-toolchain`a-kenji
In order to trigger ci from the pr.
2022-03-21add(ci): update tokena-kenji
2022-03-20fix(ci): scope nix workflows (#1248)a-kenji
2022-03-20fix(ci): use release version instead of maina-kenji
2022-03-20fix(ci): semantic errora-kenji
2022-03-20fix: remove obsolete script (#1247)a-kenji
2022-03-20fix(ci): add refa-kenji
2022-03-20add(ci): toolchain (#1245)a-kenji