Skip to content

How to work

Nathan Paul edited this page Jul 2, 2024 · 1 revision

How to work?

Make sure you've got your toolchain setup.

General guidelines

  • Try to be as verbose as possible, write comments and document any code you're writing.

  • Since you would be working asynchronously: respect everybody's time and finish tasks before the week's deadline. Your task may be a prerequisite for someone else to start working.

Workflow

Use our GitHub org in two different ways:

  1. Getting help about around building psh: (Discussions, Projects and this Wiki)
  2. Code and developing psh: (Issues, PRs and Actions)

Don't use the WhatsApp group for anything project related, use it as a means to organize group calls and share informal updates.

Most of the links would get lost in a flood of messages before you know it! It prevents unwarranted distractions when you're at work. (No one's sending you cat videos on GitHub) :octocat: :shipit:

Not codebase related

Projects: Use the dashboard to get a birds eye view of tasks due for the week and move them to the next column when they're done.

Discussions: Chat, drop links about shell building, POSIX, git, tech-help, or any issues you face.

Codebase related

Issues: Suggest new ideas, report bugs and suggest different solutions before they get finalized and you start work on them.

PR: After discussing about open-issues, run git pull to fetch changes, make a new branch with your name or the feature you are building and get to work on your local codebase.

Once you're happy with your code, run git status, stage the appropriate files and finally write a commit message briefly stating changes.

Tip: Use the ref: <#issue number> so they are referenced by GitHub after you make a push.

Finally push your local branch to GitHub and you'll see a URL suggesting you open a PR against that branch. Open a PR, make sure you tag any mentor / team-mates using the comments and ask for any help resolving merge conflicts.

Once everything goes well, the PR is closed and your code is now merged into main branch for everyone to use. Now locally, switch your branch to main and git pull to see your changes reflect in the main branch. GitHub auto-deletes your branches after a successful merge, so don't worry about that!

Codebase

The project is structured as follows
├── bin // where the compiled binaries live (they don't get uploaded to GitHub)
│   ├── main.o
│   └── psh <- here specifically
├── docs // documentation about our shell (Markdown files will do), but eventually man pages
├── LICENSE // FOSS project duh. Tells users what you can and can not do with our code
├── Makefile // a script to build our project easily: make run
├── README.md
└── src
    └── main.c // C code that powers psh
Clone this wiki locally