DEV Community

Marcus Christensen
Marcus Christensen

Posted on

The state of a modern repo

Background

During the years I have seen many tools and technologies both rise and fall, both good and bad attempts on solving different problems in and around development.

In my early years source control wasn't even a thing, issues was tracked by pen and paper and a release was something that you as a developer created on your own machine. :P

Much time has passed since then, and looking back at this, it's easy to see that we are in a much better place today, with modern tools and services like GitHub, that offers a complete package for what you need.

The problem

With the advent of toolchains and build pipelines, among other things, we have had a need to save configuration for a lot of stuff along with the actual code in our repos.

On the whole, I think this a good thing, as the possibility to discuss and change configuration, along with what tools to use is much more in the open nowadays.

But, what I dislike is that the root of a repo is a free-for-all to save configuration files in.

Just take a small peek into the Forem repo for dev.to, to get a hint of what i mean.

Along with the few folders of actual code, there are countless of files and folders needed for the different tools used for testing / building / deploying.

Disclaimer

Take note! There is no blame sent in the direction of the
Forem team, this problem is visible in almost all repos, in some sort or the other.

Question

What if I happen to be a new coder, eager to test out opensource development for a project i really like?

In my line of work as a professional developer, I often come back to the fact that we manage complexity, and try to present it a something simple.

Not to hide the complexity away for everyone, but instead not to scare away the people that just want to get a grasp of what the system does, and be able to dive into the details when ready.

I just feel that we could do better in some areas when it comes to all the configuration-files as well, can't we?

Happy coding! :)

Top comments (1)

Collapse
 
klvenky profile image
Venkatesh KL

Definitely true with the bunch of config files during in the for of the repo.
I normally see these list

  1. Package.json
  2. Yarn.lock/package-lock.json
  3. Prettier and / or editorconfig
  4. Gitlab ci/ circle CI / GitHub workflows config etc
  5. Makefile or setup if if requires some custom config.

So they all make the barrier of entry a little higher. Probably we could create a single to level file that shares a link to all the config files which are in another sub directory. It doesn't help much but keeps the repository beginner friendly.