Skip to content

arjunptm/GITS

 
 

GITS - GIT Simplified

CII Best Practices GitHub Build Status GitHub GitHub

DOI codecov

GitHub issues GitHub closed issues

GitHub pull requests GitHub closed pull requests

Alt text

Sitemap

Reading all 3 sections before starting your work will make life a lot easier for the next few weeks!

  1. Jump here for the easiest Phase 2 start-up guide
  2. Jump here to get information on how this project works
  3. Jump here if you want installation instructions

Welcome, potential developers!

GITS, or Git Simplified, is a tool designed to help make git commands easier and more intuitive to use for beginners and advanced users alike. This first section should help you familiarize yourself with this project, so you can spend more time improving/adding features instead of trying to learn how our code works.

Repo organization

The structure of our repo is as follows:

  1. code contains all of our working code. The structure is as follows:
    • gits.py is where it all starts. For each feature we support, we have a few lines that call the corresponding gits_<commandname>.py.
    • gits_<commandname.>py is a file describing in detail what each supported command should do. E.g. gits_clone.py to clone, and gits_add.py to add.
  2. configurations contains the files required to install/set-up GITS on your system. Further instructions can be found below.
  3. docs has all other supporting documentation.
  4. test contains all of our test cases.

How to make progress

GITS has support for many commonly used git commands such as add, commit, and push. The main way of making progress in this project is to expand the range of commands we support.

  1. To modify how a command is called, you need to edit gits.py. To change what a command does, you need to edit gits_<commandname.>py.
  2. To add a new command, you need to add corresponding calls and imports to gits.py, and additionally create a gits_<commandname.>py to go with it.
  3. Update or add new test files depending on what changes you made.

Your first tasks

After forking this repository onto your own account, here are some tasks that you can start off with.

  1. Organizational tasks

    • Create your own version of Phase 2 project board.
    • Copy issues from this repo to your fork. (Forking doesn't carry over issues and projects, so do them manually)
    • Create your own account for third party services (Zenodo, Codecov, etc) and also update their badges in the readme.
  2. Development tasks

Installation Guidelines:

Please note that this will run directly on Linux/MacOS. If you are running it on Windows, you will need to install some bash terminal for executing it. We recommend git bash, that comes bundled with git during installation. This works best as having git installed is a prerequisite for running this tool anyway.

Once you have git installed, follow these steps:

  1. Clone the GITS repository

  2. Navigate inside GITS folder and enter the following command:
    pip install -r requirements.txt

  3. Navigate inside the configurations folder and run the folllowing commands:

  4. If your main method of running .py files is python3 ..., then run the following command:
    chmod +x python3_project_init.sh
    ./python3_project_init.sh

    If you just use python ... then run the following command:
    chmod +x project_init.sh
    ./project_init.sh

  5. Update the bashrc file:
    source ~/.bashrc

  6. Run gits hello_world from any directory. If you end up getting a welcome message you're good to go!

If you wish to reset the project, perform the following actions.

  1. Go to your home directory (default is users/name/)
  2. Delete .gits folder
  3. Open .bashrc and delete the lines pertaining to GITS.
  4. Now you can repeat the installation guidelines to get a fresh version of GITS.

About the project

This section describes all the features of this project that you would want to be aware of.

About GITS

We hope for GITS to be used as a complete alternative to git (for most day-to-day use cases). This means two things:

  • We need to simplify complex actions that require multiple git commands in a sequence.
  • We also need to support basic git commands, so you won't have to remember whether to use GITS or git everytime you're programming.

A full list and explanation on everything we support can be found in supported_commands.md.

We heavily rely on the argparse module, and the documentation for add_argument() method will be extremely helpful.

All the repository BLING

This repository has many features that make the development process easy and fun. Here's a quick overview:

Github Actions

Contrary to the popular Travis CI, We've set up the repository architecture to use GitHub actions. If you need any more automation on running test files during pushes or pull requests, we've got you covered! Editing this is easy, and you have the added support of the GitHub marketplace for many extensions you can add in few simple steps.

pydoc implementation

We have tried to write as much documentation as possible. You can use pydoc to go through the documentation. For example if you want to go through all the documentation for all files in code/ directory, do the following:

  1. Switch to the code directory by using cd code
  2. Run the pydoc browser-based server python3 -m pydoc -b

This will open up a browser window and you can see all the files. You can click on a particular file to access the documentation associated with that file.

Style Checker and Analyzer

We are using flake8 / pep8 as our style checker and code analyzer. While contributing to this project, make sure you conform to norms dictated by flake8. While our GitHub actions automatically run flake8 tests, you may also run it locally to check for inconsistencies before pushing your code.

  1. Install flake8
    • python -m pip install flake8 to install flake8 for your default python installation.
    • Or, python<version> -m pip install flake8 to install it to a specific version.
  2. Using Flake8
    • To start using Flake8, open an interactive shell and run one of the following,
    • flake8 path/to/code/to/check.py
    • flake8 path/to/code/

This repository is made for CSC 510 Software Engineering Course at NC State University.

Group 16 Team Members:

The same 5 names consist of development, as well as continuous support. Feel free to reach out to any of us if you ever find yourself in a deep dark hole leading nowhere.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.9%
  • Shell 2.1%