kisumu-lang

Setting Up the Kisumu Development Environment

Welcome to the Kisumu programming language development community! Follow this guide to set up your environment and start contributing.

1. Prerequisites

Ensure you have the following tools installed:

2. Clone the Repository

# Clone the Kisumu Lang repository
$ git clone https://github.com/Zone01-Kisumu-Open-Source-Projects/kisumu-lang.git

# Navigate into the project directory
$ cd kisumu-lang

3. Initialize the Project

Kisumu uses Go modules for dependency management. Initialize the project as follows:

# Verify Go is installed
$ go version

# Initialize the Go module (if not already done)
$ go mod tidy

4. Install Dependencies

Install any necessary packages:

$ make install

Note: If make is not installed, refer to the “Prerequisites” section to set it up.

5. Run Tests

Ensure everything works by running the unit tests:

$ make test

6. Build the Project

Compile the Kisumu language interpreter:

$ make build

The compiled binary will be placed in the bin/ directory.

7. Run the REPL

Start the Kisumu Read-Eval-Print Loop (REPL) for interactive experimentation:

$ ./bin/kisumu-repl

8. Linting and Formatting

Kisumu uses golangci-lint for static analysis and linting. Run the following commands to ensure code quality:

Run Linters

$ make lint

Format Code

$ make format

Note: The CI/CD pipeline will also run linting and formatting checks. Ensure your code passes these checks before submitting a pull request.

9. Contributing

Development Workflow:

  1. Fork the Repository: Create your own copy of the project.
  2. Create a Feature Branch:
    $ git checkout -b feature/awesome-feature
    
  3. Write Code and Tests: Ensure your changes are thoroughly tested.
  4. Run Lint and Formatting Checks:
    $ make pre-commit
    
  5. Submit a Pull Request: Push your changes and open a PR for review.

Commit Guidelines:

10. CI/CD Pipeline

Kisumu uses GitHub Actions for continuous integration and deployment. The pipeline performs the following tasks:

You can view the pipeline status on the Actions tab in the repository.

11. Need Help?

If you encounter any issues:

12. Additional Resources