X Tutup
The Wayback Machine - https://web.archive.org/web/20200522041649/https://github.com/radicle-dev/radicle
Skip to content
This repository has been archived by the owner. It is now read-only.
A peer-to-peer stack for code collaboration
Haskell Shell Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.buildkite CI: Set up Buildkite Oct 28, 2019
bin Update rad-daemon-ipfs Jul 11, 2019
ci minimize dockerfile and image Mar 15, 2019
docs Bump urllib3 from 1.23 to 1.24.2 in /docs Oct 24, 2019
examples feat: Machines define their frontend (#630) May 9, 2019
exe Create Lang hierarchy in radicle-lang and hide Internal utility modul… Oct 10, 2019
images/rad-daemon-radicle Create and upload docker image for radicle daemon. (#455) Feb 25, 2019
nix nix: use --nix instead of --system-ghc Aug 27, 2019
notes Add notes about packaging Jan 29, 2019
packaging Change radicle_bindir for darwin. (#510) Mar 4, 2019
rad-base Remove cabal files from tracking. Oct 17, 2019
radicle-lang Remove cabal files from tracking. Oct 17, 2019
radicle-repl Remove cabal files from tracking. Oct 17, 2019
rfcs RFC: Fast, incremental app state updates (#356) Feb 13, 2019
scripts CI: Set up Buildkite Oct 28, 2019
src/Radicle Create Lang hierarchy in radicle-lang and hide Internal utility modul… Oct 10, 2019
test Fix defaulting of RADPATH in e2e tests Oct 16, 2019
.gitignore Ignore _all_ cabal files Oct 17, 2019
.hlint.yaml Update modules in hlint Oct 14, 2019
.stylish-haskell.yaml Implement Radicle Daemon Jan 30, 2019
.weeder.yaml Update weeder yaml using weeder --yaml Oct 15, 2019
Brewfile Move to brew bundle Mar 14, 2019
ChangeLog.md Version update: 0.0.4 May 9, 2019
LICENSE MIT license. Sep 6, 2018
README.md Deprecation notice Mar 26, 2020
Setup.hs Install scripts on `stack install` Feb 26, 2019
cabal.project Add rad-base to cabal.project Oct 16, 2019
cabal.project.freeze Support cabal new-build Jun 4, 2019
cloudbuild.yaml CI: Set up Buildkite Oct 28, 2019
code-of-conduct.md Update CoC contact email Nov 6, 2019
package.yaml Create rad-base for findModule and the rad source code to live in Oct 16, 2019
reference-doc.yaml Create http module. (#653) Jun 5, 2019
snapshot.yaml Upgrade deps for hackage release (#679) Aug 30, 2019
stack.yaml Create rad-base for findModule and the rad source code to live in Oct 16, 2019

README.md

🚨 THIS PROJECT IS NOT ACTIVELY MAINTAINED 🚨

We are still developing Radicle, the main repositories are:

Join us on discourse for updates, and if you want to get involved!


Radicle

A peer-to-peer stack for code collaboration.

  • peer-to-peer : The Radicle stack builds on IPFS, and works without a centralized server. No hassle with setting up your own hosting, and no need to trust companies with your data.
  • terminal-first : A Radicle project contains a git repository, plus the associated issues and proposals. Access all the issues and proposals associated with your codebase right from your terminal.
  • programmable : Ever wanted to tweak your code collaboration service? With Radicle each unit of functionality –a machine– is its own litte P2P program, written in the Radicle language. You can change them to suit your needs, or create entirely new ones.

Radicle has a webpage which contains a lot more information on Radicle.

Installation

To build Radicle from source you will need stack.

And make sure the location at which stack installs executables is in your PATH: export PATH=$HOME/.local/bin:$PATH.

stack build
stack install :rad :radicle

Note: stack will need about 4GB of memory to compile successfully.

To use Radicle you will also need to install ipfs and git-remote-ipfs. Running Radicle requires you to keep both the Radicle daemon and Radicle IPFS daemon running.

rad daemon-ipfs
rad daemon-radicle

Debian/Ubuntu

We provide .deb packages for Debian-based systems.

wget https://storage.googleapis.com/static.radicle.xyz/releases/radicle_latest_amd64.deb
sudo apt install ./radicle_latest_amd64.deb

To use Radicle you need to start the Radicle daemon

systemctl --user start radicle-daemon
systemctl --user status radicle-daemon

Issues

We are currently using Radicle itself to manage issues (but you can still submit issues on Github). You can create and see issues with rad issues list in the project repo. To checkout the project, run:

rad project checkout 12D3KooWPS3UXcvSZSXfi7P4J9Ut8MMVNvN63HHiCSP8rxj3RmtC

If you cloned the project from Github, you can instead, from the repo, run:

git config radicle.project-id 12D3KooWPS3UXcvSZSXfi7P4J9Ut8MMVNvN63HHiCSP8rxj3RmtC

You can also reach us on the radicle IRC channel on #freenode, or via the mailing list.

Development

The script ./scripts/ci-tests.sh runs all tests that are run on CI. The script requires docker and docker-compose to be installed for end-to-end tests.

The documentation is build with make -C docs html. Reference documentation for Radicle code must be regenerated with stack run radicle-doc-ref and checked into version control.

End-to-end Tests

The end-to-end test suite is run with

RAD_IPFS_API_URL=http://localhost:19301 \
  RAD_BIN="$(stack path --docker --local-install-root)/bin" stack test :e2e

It requires you to first start up an IPFS test network and the Radicle daemon.

docker-compose -f test/docker-compose.yaml up -d ipfs-test-network
RAD_IPFS_API_URL=http://localhost:19301 stack exec -- \
  rad-daemon-radicle --machine-config /tmp/radicle-machines.json

And to build the project with stack's docker support:

stack build --docker

If you use docker-compose up for the first time you will also need to initialize the IPFS test network with

echo '{"radicle": true}' | \
  docker-compose -f test/docker-compose.yaml exec -T ipfs-test-network ipfs dag put

If you are using docker-machine, replace localhost in RAD_IPFS_API_URL with the output of docker-machine ip.

You can reset the test daemon’s machine configuration by removing the file /tmp/radicle-machines.json.

Packaging

Packages can be built with the ./packaging/build-package.sh script. Run it with -h for more information. The script requires fpm.

On CI a Debian package is built for every commit and uploaded to http://static.radicle.xyz/releases. The package uses the commit hash as the version.

Troubleshooting

Your local machine might build binaries that are incompatible with the debian:stretch container image. In that case building the docker images fails. You can build compatible binaries using stack’s docker integration. This is enabled by passing the STACK_DOCKER=1 environment to ./scripts/ci-tests.sh.

Code of conduct

Please read our code of conduct when thinking of contributing.

You can’t perform that action at this time.
X Tutup