Commit Graph
48 Commits
Author SHA1 Message Date
Aram Drevekenin 3d686e73d5 docs: fix outdated contributing packaging command 2026-08-24 09:31:04 +02:00
Aram Drevekenin 34e7491548 fix: allow building without bundled plugin assets (#5433)
* fix: allow building without bundled plugin assets

* add pr
2026-08-03 13:54:55 +02:00
Aram Drevekenin 0ed2edea0c fix(build): remove manpage, honor CARGO_TARGET_DIR, add cargo argument passthrough, remove clippy (#5426)
* fix(build): remove manpage, honor CARGO_TARGET_DIR, add cargo argument passthrough, remove clippy

* add pr
2026-07-30 16:50:12 +02:00
ZykinoandZykino ba152f53fc Fish completion delete session (#5317)
* Add session completion for "delete-session"

Close #5316

* Force default value for CARGO_TARGET_DIR

Since we did not approved and maintain #2611

* Move `xtask run`'s specific output to stderr

That way command output can be redirected without garbage e.g.:
`cargo xtask run -- setup --generate-completion fish > ~/.config/fish/completions/zellij.fish`

---------

Co-authored-by: Zykino <3809938+Zykino@users.noreply.github.com>
2026-06-30 12:35:30 +02:00
Thomas Linford 6542afabd8 fix(e2e): stabilize tests and support Apple Silicon local dev (#4952)
- cross-compile musl binary on macOS via cargo-zigbuild, with
arch-independent symlink so snapshots are stable across x86_64 and aarch64

- kill_running_sessions() now calls stop_zellij() instead of
start_zellij(), eliminating 3s startup per test

- prevent steps from firing prematurely by tightening completion conditions
and adding re-send logic for garbled keys
2026-04-01 12:41:07 +02:00
har7an 8aba80ebcc docs(CONTRIBUTING): Describe rust toolchain versioning policy (#4585)
* docs(CONTRIBUTING): Describe rust toolchain versioning policy

and mention the lack of a MSRV. This should allow people to discover how
toolchain updates are handled, even though there currently isn't much of
an explanation.

* docs(CHANGELOG): Mention PR #4585

which describes the Rust toolchain versioning policy.
2026-01-07 06:11:25 +00:00
Aram Drevekenin 92e209a307 docs(contributing): update PR statement wording 2025-03-10 17:32:53 +01:00
bjorn3 7d7848cddc dependencies: switch from Wasmer to Wasmtime (#3349)
* Remove ForeignFunctionEnv wrapper around PluginEnv

This will enable PluginEnv to be the Store context when migrating to
Wasmtime.

* Pass PluginEnv by value to load_plugin_instance

This will allow removing the Clone impl from PluginEnv when migrating to
Wasmtime as required by the missing Clone impl on Wasmtime's WasiCtx.

* Avoid passing a Store around when an Engine is enough

* Pass PluginEnv to the wasi read/write functions

Wasmtime requires storing the read/write end of the pipe outside of the
WasiCtx. Passing PluginEnv to these functions allows storing them in the
PluginEnv.

* Migrate to Wasmtime

* Switch from wasi-common to wasmtime-wasi

* Reduce verbosity of wasmtime_wasi logs

* Increase startup delay

To wait for all plugins to be compiled.

* Disable some wasmtime features

* Update to Wasmtime 21.0.1
2024-06-28 16:47:43 +02:00
Aram Drevekenin 24ce348bb2 chore(repo): update build instructions 2023-08-28 17:47:49 +02:00
Aram Drevekenin 59239cc113 docs(contributing): status of contributions 2023-06-14 13:24:34 +02:00
har7an 46b9bc755e Feature: simulate publishing (#2194)
* xtask: Add arguments to `publish`

that allow specifying a custom git remote to push to and a custom cargo
registry to publish packages to.

* xtask/publish: Don't release `xtask` subcrate

because it's not meant to be released at all.

* xtask/publish: Add status messages to publish

so we see what crate is currently being published, too.

* xtask/publish: Disable default features on `zellij`

because otherwise it tries to pick up the debug builds of the plugins,
which aren't part of released version of `zellij utils`.

* xtask/publish: Fix handling of custom registry

* docs: Add `RELEASE.md`

which explains how to simulate a zellij release.

* xtask: Apply rustfmt

* xtask: Remove `wasm-opt` from build steps

because recent versions cause havoc in the release process in GitHub
pipelines and it's primary goal is to only reduce binary size. Current
rust versions seem to produce very compact wasm binaries themselves,
though.

* .github: Don't install wasm-opt in workflows
2023-03-06 18:16:21 +00:00
m-lima d1b458e37b chore(build): make the singlepass compiler opt-in through flags (#2146) 2023-02-13 17:52:10 +01:00
m-lima 5b3e1ecacd chore(development): use singlepass in debug mode (#2134)
* Add new feature flags

* Use singlepass in debug mode

* Use Cow to avoid unnecessary copies

- Instead of removing and reinserting into the memory cache, use Cow to
  model both owned an borrowed data
- Log at debug-level the time to compile/load a wasm module
- A little clippy drive-by on touched files

* Satisfy the assumption from zellij-utils/src/consts.rs for target-dir

* Allow forcing cranlift in debug mode

* Remove deprecated comments

* PR comment: typo

* Remove extras
2023-02-07 17:55:37 +01:00
Aram Drevekenin d1cacc3fa8 chore(repo): remove nix support (#2038) 2022-12-20 12:24:19 +01:00
har7an d1f50150f6 WIP: Use xtask as build system (#2012)
* 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-17 13:27:18 +00:00
哇呜哇呜呀咦耶 8626e7ab40 update log path (#1927) 2022-11-13 23:25:37 +09:00
har7an 49b831c032 docs: Improve error handling docs (#1919)
* docs: Improve error handling docs

and add more TL;DRs and new sections about handling specific errors, and
logging errors.

* contributing: Add more coding tips
2022-11-09 18:01:36 +00:00
har7an 0711591ad3 docs: Describe how to handle Options as errors (#1805)
* docs: Describe how to handle Options as errors

* CONTRIBUTING: Add tips for code contributions

which will be home to condensed tips and best-practices around the
zellij code. Currently explains to prefer returning `Result` types
instead of `unwrap`ing on them.

The tips in here are meant to be short, concise guides that allow the
user to get started without a lot of reading. The individual tips can
(and should) be supplemented with links to "further reading" where the
topic at hand is explained in greater detail.
2022-10-18 14:14:38 +00:00
Aram Drevekenin 68c5f1e051 docs(contributing): document logging (#1627)
* docs(contributing): document logging

* docs(contributing): add logging example
2022-08-01 18:07:06 +02:00
a-kenji f3d8b31635 fix(readme): cargo install instructions (#1616) 2022-07-29 18:59:50 +02:00
a-kenji d71c212fe8 chore(docs): add more matrix links (#1581) 2022-07-10 19:51:01 +02:00
a-kenji 147fd729dc docs(contrib): fix markup 2022-03-04 17:43:31 +01:00
a-kenji 8a9fb73791 docs(contributing): add a small nix section (#1172) 2022-03-04 16:33:42 +01:00
a-kenji a7e2d55aa7 docs(add): podman as alternative to docker (#1137) 2022-02-27 13:21:36 +01:00
Ken Matsui 1dd548eb2b fix(docs): add information about clippy lints (#1126) 2022-02-27 11:52:20 +01:00
Ken Matsui abbf40e014 fix(docs): fix a grammatical error in CONTRIBUTING.md (#1070)
The verb `consider` is followed by a gerund form verb.
When you want to follow `consider` by to-infinitive verb, you should use it with a pronoun.
2022-02-24 11:35:23 +01:00
Joseph Post 485b9e4f98 fix: Update CONTRIBUTING.md (#909)
added a newline to fix URLs
2021-11-30 08:01:24 +01:00
Ken Matsui 382acd9fc8 fix(docs): Add additional e2e test instruction for macOS users (including m1) (#845) 2021-11-09 17:37:54 +01:00
Ken Matsui b61489c218 fix(docs): fix wrong arguments for cargo make run given in CONTRIBUTING.md (#819) 2021-10-31 20:41:49 +01:00
Aram Drevekenin a232a8c39d docs(contributing): clean up language 2021-09-29 16:17:06 +02:00
a-kenji da415657df Add new dependencies to CONTRIBUTING.md 2021-06-29 23:19:23 +02:00
Aram Drevekenin 3313634fe9 Add e2e tests (#582)
* feature(tests): e2e tests

* chore(build): github action

* chore(build): fix workflow

* chore(build): fix workflow

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* work

* working

* working

* working

* bring back the proper errors

* make e2e flow run properly

* style(fmt): make rustfmt happy

* style(fmt): make rustfmt happy

* run on everything just to test the workflow

* bring back running behaviour on workflow
2021-06-21 10:45:18 +02:00
Matthias 7f67e6d97f docs(contributing): add the invite link to the discord server (#570) 2021-06-10 09:23:26 +02:00
a-kenji 0dfd610388 chore(docs): Fix references
* `xrdb` is not included currently
2021-05-19 10:48:30 +02:00
NKGoc 24b4ae831c wrapped lines in CONTRIBUTING.md 2021-05-05 12:07:47 +02:00
NKGoc 0ab7a51d04 simplifications 2021-05-05 12:05:05 +02:00
a-kenji d0d83b048d docs(contributing): Update Dependencies 2021-05-02 16:14:27 +02:00
Brooks J Rady a52aa9be97 docs(build): update CONTRIBUTING.md 2021-04-14 19:11:24 +01:00
Brooks J Rady 6f4dcfbf65 fix(clippy): get ci passing again 2021-04-13 18:14:13 +01:00
Brooks J Rady d2a7d100ac docs(build): documented the new build system 2021-04-13 16:06:04 +01:00
a-kenji 0e88c921d0 Doc build (#207)
* docs(build): Add information about binaryen dep

* docs(build): Add information about binaryen dep
2021-02-24 17:05:19 +01:00
Brooks J Rady 0f5363679d Add updated build instructions 2021-02-16 18:40:20 +00:00
henil 30f0567d8a Update references of mosaic to Zellij in md files 2021-02-10 12:12:19 +05:30
henil b1006b9f4d Follow Conventional commits where necessary 2021-02-05 21:03:24 +05:30
henil 81989ede17 change heading level 2021-02-04 18:51:00 +05:30
henil 0854461519 fix links 2021-02-04 18:48:47 +05:30
henil c906a8b2fa removed CHANGELOG for now and added some more details 2021-02-04 14:51:11 +05:30
henil aa8da0b142 Add initial issue template and CONTRIBUTING.md 2021-01-31 12:12:55 +05:30