Saving development time by swiftly installing Golang packages
Bas van Essen,
Monday, January 14, 2019
How do you save time on programming, while not making a trade-off with the quality of your code? In our ongoing interview serie with developers across the globe, we chatted with Albanian developer Jul Kreshpaj. He just open-sourced a tool called GEPM, that makes it plain easy to find, install and manage Go packages.
Sebastiaan [12:11 PM]:
Do you see any disadvantages with Go, compared to the languages you used before?
Jul Kreshpaj [12:16 PM]:
Nope i don’t see any disadvantage in Go compared to other languages I’ve been working with. It’s well suited for servers and doing async task overall. It has a variety of tools you can use and being compiled for every platform I think it’s a big advantage for Go.
Sebastiaan [12:17 PM]:
Please mention some projects that you really enjoyed to do with Go.
Jul Kreshpaj [12:19 PM]:
Generally speaking, all the projects related to Go language have been my favourite due to its robustness and ease of use especially tooling there’s so much you can do with it. Latest one I loved working with is a simple tool I made for continuous integration without many configurations and resources (servers).
Sebastiaan [12:20 PM]:
This tool is open-sourced?
Jul Kreshpaj [12:21 PM]:
Yeah most of the things I am building in Go are open source and opened to contributions
which you promoted additionally in this article
so it’s clear you hope gophers are going to use it
can you pitch it in a way so they will?
Jul Kreshpaj [12:29 PM]:
So i started building GEPM out of necessity.
Personally, I find time-consuming googling for packages and copy and paste commands in terminal to install them which instead you can easily search them in one place and at a press of a button it does everything for you. All the packages are save in one file so when you need to clone your code on any other machine i personally use docker a lot you can install everything by just running
Sebastiaan [12:30 PM]
You say time-consuming
How much time do you lose, and therefore could win with gepm?
let’s say in general, it depends of course on the project/situation
Jul Kreshpaj [12:35 PM]:
It can save me a lot of time installing tools that I already used and know what they do. If you know what you are searching for and what a specific package does. You don’t have to search for example “mux”, find the github page and copy the command paste and install it in your machine.
But although you still need to do some searching for packages to see what it does if you’ve not used that before.
Sebastiaan [12:38 PM]:
Since you built it, and use it for your own projects, how much time do you estimate it saves for you (compared with similar projects before)? Is that something you can try to sketch? Because if others want to adopt it, they may need an indication to really see the value of it.
Jul Kreshpaj [12:44 PM]:
On my team 20 people are working with the same service in Go. Everyone who clones the repo doesn’t need to see deps and install all the packages one by one.
We use micro-service architecture and half of our services are written in Go. All the services are running on its own containers and Dockerfiles used to be 200 lines of commands installing different packages ‘RUN go get’. Using GEPM we can install them in one line.
Sebastiaan [12:47 PM]:
You open-sourced it also with the hope developers are going to help you to improve it.
What are the next improvements you would like to realize?
Jul Kreshpaj [12:50 PM]:
Yeah. I would love the community contribution since GEPM its in version 1.0 and there are many features that can be added and improved. It needs faster search and options like add packages without installing them again to your system or manage different packages in different environments. Also integration GoDoc with it for better package descriptions. So it can also a quick documentation before install
Sebastiaan [12:51 PM]
Are you currently working on improving version 1.0?
Jul Kreshpaj [12:52 PM]
Yeah i am working on faster api search because now it takes 5 to 10 seconds to find a package
Sebastiaan [12:54 PM]
Do you stay committed to improving GEPM on the long-term? Or does that depend on the contributions of the community?
Jul Kreshpaj [12:56 PM]
I will surely try to constantly work and improve it. I know there are many other things that can be done to help gophers out there
Sebastiaan [1:06 PM]
You know that stars and forks are very important to get these contributions from the open-source community.
What do you think determines if you will get these?
I hope that bringing it to attention here will help
Jul Kreshpaj [1:15 PM]
Stars and forks are important, but are not everything. The project itself is not something crazy, but more of a handy simple tool to cut the time on manual work. Everyone that finds it useful and would like to further develop it is welcomed to contribute.
Sebastiaan [1:17 PM]
Alright, also with regards to FlakaCI, what are you planning to improve firstly?
Jul Kreshpaj [1:19 PM]
For the moment it is configured by default to run jobs only when a commit is done against the master
I would like to have this optional so you can specify what happens on different branches and thats what i am currently working on
Also there are some bugs when you run it as a daemon process which will be fixed soon
Sebastiaan [1:21 PM]
Are there other projects you already have brought to the open-source community and would like to mention?
Jul Kreshpaj [1:23 PM]
There are some on my github page but not fully finished or working as it should
I am currently focusing only on improving GEPM and FlakaCI:
Also published on Medium.
Categorised in: Develop smarter, not harder
This post was written by Bas van Essen