Serverless (offline-first, merge-friendly) Information Tracker
Rust Shell Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.cargo Problem: Repository::new_named_item duplicate check on aarch64 May 17, 2018
.sit CI report Aug 17, 2018
build-tools Problem: cross-compilation for MacOSX fails Jul 25, 2018
doc Problem: non-architectural picture in architecture May 5, 2018
scripts Problem: inability to quickly tell the status of MRs Jul 8, 2018
sit-core Problem: padding in base32 encoding Aug 2, 2018
sit-web Problem: unnecessary files in sit-web/webapp Aug 2, 2018
sit Problem: migrating items & records Jul 31, 2018
.gitattributes Problem: GitHub shows that this repository is 90% C Apr 14, 2018
.gitignore Problem: isolated Linux testing, release builds Jun 23, 2018
.gitmodules Problem: SIT's scope is very narrow Apr 12, 2018
.travis.yml Problem: Travis CI setup for CI tests on MRs fails to push Jul 23, 2018
CHANGELOG.md Prepare 0.4.0 May 26, 2018
CONTRIBUTING.md Problem: ssh-based inbox workflow is troublesome Jul 21, 2018
CONTRIBUTORS Problem: one of the contributors is not listed Jul 23, 2018
Cargo.lock Problem: padding in base32 encoding Aug 2, 2018
Cargo.toml Problem: using SIT through CLI is painful Feb 11, 2018
LICENSE-APACHE Problem: depending one external issue trackers has downsides Jan 28, 2018
LICENSE-MIT Problem: depending one external issue trackers has downsides Jan 28, 2018
MAINTAINERS Problem: merging own patches Aug 1, 2018
Makefile Problem: isolated Linux testing, release builds Jun 23, 2018
PULL_REQUEST_TEMPLATE.md Problem: pull requests are not preserved in SIT Feb 5, 2018
README.md Problem: ssh-based inbox workflow is troublesome Jul 21, 2018
RELEASE_NOTES.md Prepare 0.4.0 May 26, 2018
appveyor.yml Problem: AppVeyor still can't find CMake May 4, 2018
logo.png Problem: current logo is being phased out May 26, 2018
splash.jpg Problem: README's top is old & stale Jul 20, 2018

README.md


SIT

SIT

Serverless Information Tracker

Release Chat Build status Windows Build status issues open/total merge requests open/total

[ Download | Overview | Issues & Merge Requests ]

SIT is a compact tool that helps tracking and sharing information between people and systems in a decentralized, sporadically-online environment (aka "the real world").

Its goal is to lower the barrier for recording, querying and sharing information independently. Instead of having to setup and maintain a server and a database, or having to rely on services of an external third party, SIT is a self-contained binary for Linux, OS X and Windows that typically works on the end-user's computer. SIT's medium of record is files. No external database is required.

Modules

While bare SIT can track any kind of information (it's all just files, after all), the user experience of using it as is might be less than exciting. For this reason, SIT supports a concept of modules that allows to operate domain-specific workflows and interfaces easily.

Currently available modules:

Why Should I Care?

As far as analogies go, we're doing to information tracking what Git did to version control systems. But let us further elaborate on a few benefits to consider:

  • Works offline. You can synchronize information, go offline and work on it without needing a connection. You can synchronize at any time later.
  • Contextualizes state. When used together with an SCM (such as Git), you can see the state of any item at any given revision (in the context of issue tracking, for example, it can answer the question of "what release branches is this issue closed on?")
  • Continuously localizes data. You can access the data at any time. No API rate limits. It's on your filesystem.
  • Adapts to your group topology. Synchronization can be done over Git, Dropbox, Keybase, USB flash drives or anything else that allows you to copy files between computers.
  • Malleable. You can make it handle just about any workflow and payload. The customization is in its blood.

Project Status

It is in the early adopter stage. It's usable but not everything is done yet and some things will change. We're publishing releases regularly but always encourage trying out the latest and greatest master branch.

Originally IT in SIT stood for "issue tracking". Since then, it grew to become a generalized information tracking tool (with issue tracking extracted to a module)

Obtaining SIT

All our releases are hosted on GitHub and binary files can be downloaded from there.

You can also use this oneliner to install it for your local user:

curl -s https://sit.fyi/install.sh | sh

Please note that while this is a convenient way to install SIT, it is not the most secure one because you're trusting install.sh to not do any harm. We're doing our best (within reason) to ensure this file isn't hijacked by a malicious actor. If this is a concern for you, please use the links referenced above or build SIT from sources.

Build Instructions

As SIT is currently in its early days, sometimes it might make sense to use a pre-release build. We encourage that. It helps us building a better product.

Firstly, you will need to install Rust 1.27.1 and CMake. Luckily it is typically a very simple process. You can find instructions on Rust's website.

Now, after that has been taken care of, time to check out SIT and build it:

git clone https://github.com/sit-fyi/sit
cd sit
cargo build --release

Now, you can copy target/release/sit and target/release/sit-web to your PATH or add /path/to/target/release to PATH to always have the most recent version available.

Questions, Bug Reports, etc.?

SIT's is using SIT for tracking issues (duh!) and because of this, GitHub issues are turned off. It's a good excuse to try out SIT if you have an issue to file!

You will get all issue updates when you fetch this git repository. All updates will come through it as well.

Simply run sit-web in this repository's clone and open it in the browser.

Send Updates to Upstream

Once you've used sit-web or sit mr to work on the issues, you can send the updates to this repository:

  1. Create a branch (as a convention, you can use your issue ID or an added record ID as a branch name, but free to choose anything else, preferrably unique)
  2. Add new files in .sit and commit them. Commit message can be simply "Added issue " or, say, "Commented on issue "
  3. Send it out to the Inbox: git send-email --to=sit@inbox.sit.fyi master..<branch>
  4. If the commit only contains new records (nothing else is permitted!) the Inbox will accept the push and immediately forward it to sit's master repository on GitHub. Otherwise, the push will be rejected.

Preparing a merge request

Please refer to CONTRIBUTING for the instruction.

License

SIT is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Credits

Shout-out to Ura Design for designing the previous version of our logo, hope we wore it well! They help with design magic for open source projects.

Contributing

This project is in its very early days and we will always be welcoming contributors.

Our goal is to encourage frictionless contributions to the project. In order to achieve that, we use Unprotocols' C4 process as an inspiration. Please read it, it will answer a lot of questions. Our goal is to merge patches as quickly as possible and make new stable releases regularly.

In a nutshell, this means:

  • We merge patches rapidly (try!)
  • We are open to diverse ideas
  • We prefer code now over consensus later

To learn more, read our contribution guidelines