summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2023-04-27 11:31:13 +0200
committerJustin Wernick <justin@worthe-it.co.za>2023-04-27 11:31:13 +0200
commit6cdeab7820d5e56537dc161bd8037ca41d110b68 (patch)
tree46316dd2b671cc0fb334ee2187ec0bc8197779f0
parentf7c4d9245e246f145b101c0dc8ca43820390e961 (diff)
Filling in the development dependencies
-rw-r--r--readme.org68
1 files changed, 64 insertions, 4 deletions
diff --git a/readme.org b/readme.org
index 1aeb9a1..7c4e9a6 100644
--- a/readme.org
+++ b/readme.org
@@ -90,13 +90,71 @@ all of the options, and is a great way to learn what all the commands do.
# TODO
-# cargo install to build from source
-# set as the user's shell
-# create the appropriate directory structure
+# - cargo install to build from source
+# - set as the user's shell
+# - create the appropriate directory structure
+# - requires git installed on the server
+# - I assume users will be connecting over SSH. This is not enforced by the shell.
+
+* Operating System Support
+
+Currently, Shackle Shell only supports running on Linux.
+
+It will likely work on other Unix-like platforms, such as MacOS, but this is not
+currently tested, and there are currently no plans to do so. I would not expect
+it to work on Windows.
* Development Guide
-# TODO
+** Development Environment Setup
+
+- Rust
+ - This project is built using the Rust programming language, and its build
+ tool Cargo. Information on how to install these tools is available on [[https://www.rust-lang.org/learn/get-started][the
+ Rust website]].
+- C Compiler
+ - This is used to built one of the dependencies, libgit2.
+ # TODO how to get one?
+- Docker
+ - Some of the tests use Docker to create a simulated environment. This can be
+ obtained from your operating system's package manager, or the [[https://www.docker.com/][Docker
+ website]].
+ - Docker must be installed, with the =docker= executable on the path.
+ - Your user must have permission to use docker, including building and running
+ Docker containers.
+- Git
+ - Some of the tests use Git to test the end to end functionality of the
+ shell. This can be obtained from your operating system's package manager, or
+ the [[https://git-scm.com/][Git website]].
+ - Git must be installed, with the =git= executable on the path.
+- SSH
+ - Some of the tests use an SSH client to test the end to end functionality of
+ the shell. I have tested this with OpenSSH, which can be obtained from your
+ operating system's package manager, or the [[https://git-scm.com/][Git website]].
+ - with the =ssh= executable on the path.
+
+If you're running Arch Linux, these are the steps you'll need to get your
+environment ready.
+
+# TODO: Test this in a VM, not in Docker. The Docker in Docker stuff doesn't
+# work well.
+
+#+begin_src sh
+ sudo pacman -S rustup docker git openssh gcc
+ rustup default stable
+ sudo usermod -a -G docker $(whoami)
+ sudo systemctl start docker.service
+#+end_src
+
+** Running Tests
+
+** Linting
+
+** Building a Release Binary
+
+#+begin_src sh
+ cargo build --release
+#+end_src
# need to have docker installed
# cargo test --workspace
@@ -139,6 +197,8 @@ all of the options, and is a great way to learn what all the commands do.
- [X] proper licensing
- [ ] all the getting started stuff in the readme
+- [ ] clean up crates.io-friendly readme
+ - It needs to be markdown, and probably not all the content of the "full" readme?
- [ ] consider having the workspace root abstract so that --workspace isn't needed
- [ ] publish to crates.io
- [ ] project website