Skip to main content

Free to use tools for maintaining your OpenSource projects

In this post, we will talk about how to effectively maintain your OpenSource projects using tools/softwares which are free to use for OpenSource and the public repositories. Over time, when the project grows you, need to set up a few tools which can help you maintain the project and automate the trivial tasks.

1. Setup CI/CD

Having an OpenSource project to which you might be contributing just as a hobby, but doesn’t mean you don’t need to set up CI/CD pipeline. You don’t need to expend a single dime on servers or need to use cloud services to run your CI/CD. There are a lot of CI/CD tools available free for open source projects and public repositories. One such tool is Travis CI which you can use for setting up CI/CD for your project.

Image for post
Travis CI

You can run test cases and deploy code to your servers. Travis CI works great and easy to set up the CI/CD pipeline.

2. Code Analysis and Code Quality

Maintaining code quality as the project grows can be very hard and time-consuming. Thankfully there are several tools that can help you in automating the continuous analysis for the code.

Scrutinizer is a great tool that you can use to automate the code quality and code analysis for your project. Scrutinizer is free for OpenSource projects and public repositories. 

Image for post
Scrutinizer

similar tools Codefactor.

3. Code Styling and Indentation

It’s very important to have a consistent coding style and proper code indentation. For OpenSource projects, it becomes even more important. There will be contributors who follow different code styles and prefer different code indentation practices. Over time it’s hard to maintain the same style throughout the code via code reviews. Tools like StyleCI can ease that pain.

You can setup StyleCI or something equivalent which supports project code language to do this. StyleCI automatically checks the Pull Requests and fix the styling issues and can open a PR to fix them.

Image for post
StyleCI

An example PR by StyleCI

Image for post

4. Security

It’s important to automatically find, prioritize and fix vulnerabilities in the project and the open source dependencies used in the project. Snyk is awesome in that respect. Snyk offers Unlimited tests on open- source projects. Snyk can monitor the vulnerabilities and inform you. You can setup it to automate fixing with a one-click fix pull request populated with the required upgrades and patches.

Image for post
Snyk

Thanks for reading. If you have some feedback, please reach out to me on Twitter or Github.

Comments

  1. The chat choices within the video games,additionally confirm that it's a actual occasion. A actual vendor conducts the game, throws the ball into the roulette wheel, announces the start and end of the round and the numbers. When collaborating in Live Roulette in NetEnt Casinos, you'll be able to|you possibly can} observe everything up close whilst actively collaborating within the game on the roulette tables. To place your bets, you employ the betting interface which simplifies casino.edu.kg the wagering process.

    ReplyDelete

Post a Comment

Popular posts from this blog

Track stock market information right in your Terminal.

     Introduction: As a developer, I love working with the terminal. The plain, simple, and in my opinion the best way to interact with the computer (also it makes you look geeky). I spent most of my time in the terminal. By now you must have guessed I am a huge fan of the terminal and terminal-based applications. Recently I developed an interest in stock markets and started tracking the stock markets. Since I love working with the terminal I decided to build a terminal oriented application that can help me to track the stock market. Inspir e d by  wttr.in  I build  terminal-stocks  which can provide the stock's current prices, historical prices, and global market summary. How to use terminal-stocks terminal-stocks  is available and can be used without installation. Get the current price of the stock. curl terminal-stocks.dev/ITC.NS Current price of stocks You need to provide the ticker of the stock and terminal-stocks will give you the price inf...

PrivateGPT: A Step-by-Step Guide to Installation and Use

In this blog post, we will explore the ins and outs of PrivateGPT, from installation steps to its versatile use cases and best practices for unleashing its full potential. What is PrivateGPT? PrivateGPT is a cutting-edge program that utilizes a pre-trained GPT (Generative Pre-trained Transformer) model to generate high-quality and customizable text. Built on OpenAI's GPT architecture, PrivateGPT introduces additional privacy measures by enabling you to use your own hardware and data. This ensures that your content creation process remains secure and private. Installation Steps Before we dive into the powerful features of PrivateGPT, let's go through the quick installation process. PrivateGPT is a command line tool that requires familiarity with terminal commands. Let's get started: 1. Clone the Repository: Begin by cloning the PrivateGPT repository from GitHub using the following command: ``` git clone https://github.com/imartinez/privateGPT.git ``` 2.Navigate to the Direc...

Terraform accessing data from maps and list in the variable

In this post, we will discuss a use case where we want to access the variable value which is part of the list or the map. let’s try to understand the use case with an example: resource "aws_instance" "myec2" { ami = "ami-082b5a644766e0e6f" instance_type = <INSTANCE_TYPE> } variable "list" { type = list default = ["t2.nano", "t2.micro", "t2.medium"] } variable "types" { type = map default = { dev = "t2.nano", int = "t2.micro", prod = "t2.medium" }, } here we want to assign a value for the instance_type from either variable list or from variable types. Variable list is a list type and variable type is a map type. First, let’s use the list variable. To access the value from the list variable we will use the position. We want to assign let’s say t2.micro in that case we want position 1. resource "aws_instance...