Commit Graph

41 Commits

Author SHA1 Message Date
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