All Projects → nim-works → gitnim

nim-works / gitnim

Licence: MIT, Unknown licenses found Licenses found MIT LICENSE Unknown copying.txt
choosenim for choosey nimions

Programming Languages

nim
578 projects
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to gitnim

r-novice-inflammation
Programming with R
Stars: ✭ 142 (+688.89%)
Mutual labels:  stable
github-action-publish-binaries
Publish binaries when new releases are made.
Stars: ✭ 123 (+583.33%)
Mutual labels:  binaries
redis-windows
Native port of Redis for Windows,it can be installed as service.
Stars: ✭ 460 (+2455.56%)
Mutual labels:  latest
sql-ecology-lesson
Data Management with SQL for Ecologists
Stars: ✭ 37 (+105.56%)
Mutual labels:  stable
Synergy-Binaries
Download the latest stable Synergy binaries.
Stars: ✭ 671 (+3627.78%)
Mutual labels:  binaries
aarch64-tensorflow
tensorflow and bazel for aarch64: binaries at...
Stars: ✭ 14 (-22.22%)
Mutual labels:  binaries
latinum
Latinum is a framework for resource and currency calculations.
Stars: ✭ 109 (+505.56%)
Mutual labels:  stable
go-gtfo
gtfo, now with the speed of golang
Stars: ✭ 59 (+227.78%)
Mutual labels:  binaries
sql-novice-survey
Databases and SQL
Stars: ✭ 59 (+227.78%)
Mutual labels:  stable
php
Unofficial Docker image packing nightly builds
Stars: ✭ 17 (-5.56%)
Mutual labels:  nightly
automate-branch-rules-cli
The tool lets you automate the addition, removal or alteration of the branch protection rules for 1 or more branches & repositories in one go.
Stars: ✭ 29 (+61.11%)
Mutual labels:  branches
branch-switcher
a GitHub bot that switches the base branch of pull requests to the preferred branch
Stars: ✭ 15 (-16.67%)
Mutual labels:  branches
matlab-novice-inflammation
Programming with MATLAB
Stars: ✭ 26 (+44.44%)
Mutual labels:  stable
github-release-cli
A command-line tool for managing release assets on a GitHub repository.
Stars: ✭ 69 (+283.33%)
Mutual labels:  releases
nightly-docker-rebuild
Use nightli.es 🌔 to rebuild N docker 🐋 images 📦 on hub.docker.com
Stars: ✭ 13 (-27.78%)
Mutual labels:  nightly
jet
A Fast C and Python like Programming Language that puts the Developer first. WIP
Stars: ✭ 41 (+127.78%)
Mutual labels:  latest
octoclairvoyant-webapp
Compare GitHub changelogs across multiple releases in a single view.
Stars: ✭ 45 (+150%)
Mutual labels:  releases
git-tag-action
[GitHub Action] Get ${version} from package.json and git tag ${version} for the repository.
Stars: ✭ 26 (+44.44%)
Mutual labels:  releases
branch-names
Github action to retrieve branch or tag names with support for all events.
Stars: ✭ 99 (+450%)
Mutual labels:  branches
shell-genomics
Introduction to the Command Line for Genomics
Stars: ✭ 54 (+200%)
Mutual labels:  stable

gitnim linux_x64

tests version-1-0 version-1-2 version-1-4 version-1-6 devel License Matrix

choosenim for choosey nimions

What Is It?

The aim of this tool is two-fold:

  • Provide an easy way to install the Nim compiler and tools.
  • Manage multiple Nim installations and allow them to be selected on-demand.

Basically, it gits nim for you.

Okay, But I Heard It Was Different. And, Like, Scary?

Yes, it's different. But not in a scary way; it's open and simple.

This program adds a git subcommand for Nim git nim and installs itself next to your Nim compiler so that if your compiler is in your PATH, so is gitnim.

It Installs Itself? Wait, Maybe It's Already Installed...

No, nimpleton, it's not already installed. 🤦

When you compile the source code, gitnim.nim, the output is a binary adjacent to your nim compiler and named git-nim.

This binary is detected by git such that git nim is a command you can run on the command-line and it will do a thing.

Yeah, Okay, a git Subcommand. But What Does It Do?

The git nim subcommand allows you to choose from precompiled Nim releases and download or install them by managing your Nim installation as any other git repository.

So? Why Should I Care? I Already Have Nim Installed.

Yeah, well, you can keep using your current Nim installation. 🤷

The aim of this tool is two-fold:

  • Provide an easy way to install the Nim compiler and tools.
  • Manage multiple Nim installations and allow them to be selected on-demand.

If you don't need either of these features, then gitnim is not for you.

So It's a Git Repo with Branches Matching Nim Versions? Is That All?

This Nim repository also links to the distribution from https://github.com/nim-works/dist, which is a hand-curated monorepo holding the most useful Nim modules from the ecosystem.

Okay, So What Makes That a Feature I Should Care About?

When run, gitnim displays or switches branches in the Nim repository and updates the dist submodules to ensure you always have easy access to the latest features and fixes as matched to your active compiler.

Y'know, That Actually Makes A Lot Of Sense.

Yeah, I know. You're welcome.

Installation

Clone the Repository

We use git for distribution; what else?

$ git clone https://github.com/nim-works/gitnim /somewhere

Add bin to $PATH

A critical step; humor me on this one. The location of the compiler is used to infer the installation directory for gitnim itself.

$ export PATH=/somewhere/bin:$PATH

Build gitnim

You now have a statically-linked Nim binary for your Linux-x64 system, so you can immediately compile gitnim.

This will automatically install the gitnim binary next to the compiler binary according to your PATH, enabling the git nim subcommand.

$ cd /somewhere
$ nim c gitnim/gitnim.nim

Usage

List Available Releases

With no additional arguments, git nim will check the network for updates and present the available Nim releases for selection.

The current distribution will be updated from the network, if necessary.

$ git nim

git nim

Choose a Release by Version

When a version is provided, git nim will switch to that version immediately without querying the network, provided the version exists locally.

The distribution will be updated without querying the network, if possible.

$ git nim 1.4.3

git nim 1.4.3

Choose a Release by Tag

When a tag is provided, git nim will switch to the tagged version immediately without querying the network, provided the tagged reference exists locally.

The distribution will be updated without querying the network, if possible.

$ git nim devel

git nim devel

$ git nim stable

git nim stable

Advanced Usage

Creating Your Own Nim Distribution

$ git checkout -b "my favorite nims"

Publishing Your Nim Distribution

$ git remote rename origin upstream
$ git remote add origin "[email protected]:your_name/gitnim.git"
$ git push --set-upstream origin "your branch name"

Adding a Custom Release Tag

$ git tag -a "tag_name" -m "your description"

Sharing Your Tags With Others

$ git push --tags

Revoking Your Tags With Others

$ git push --delete origin tag_name

Adding a Friend's Tags

$ git remote add jeff https://github.com/jeff/gitnim

Using a Friend's Tag

$ git nim jeff/1.3.3

Contributing

https://github.com/nim-works/gitnim

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].