semanser
awesome-startup-postmortems – A list of startup postmortems to learn from
You can subscribe by clicking on Watch -> Custom -> Releases.
It's true that dependency-free software is very rare these days. The most obvious reason is that people don't want to "reinvent the wheel" when doing something. While this is a 100% valid reason, sometimes people simply forget what they are building and for whom. Extensive usage of dependencies is just one of the forms of overengineering. Some engineering teams even do their planning and features because of the new shiny thing.
The problem of dependencies is massive these days, and most companies are focusing on producing more and more code instead of helping people manage what they already have.
Show HN: DepsHub – linter for dependencies best practices
https://github.com/DepsHubHQ/depshub
Hey there. I've been working on a dependencies-related product for the last year. A lot of engineering teams that I've seen are building their own internal tooling to check on dependencies.In short, people either update too frequently or don't update at all.So, I decided to create a simple linter that checks all the main issues and best practices, comes with sensible defaults, and allows you to...
PH is still a great platform for visibility since it gets tons of traffic.
Clean Architecture in Go
> HN allows resubmission of links if they haven't had any discussion. Source: https://news.ycombinator.com/item?id=9864254
But it seems like it was just a comment/speculation, and it has nothing to do with the guidelines that you added. Thanks for pointing it out!
Show HN: DepsHub – Dependency updates made easy
Hi HN! I'm Andriy, a software engineer and the founder of DepsHub. Every single team that I worked with always used tens (if not hundreds) of dependencies. There are usually two popular options: either you ignore the dependencies problem until it's too late and hard to migrate everything to newer versions (say hi to vulnerability issues), or you're constantly trying to find the balance between...
Show HN: DepsHub – Dependency updates made easy
Hi HN! I'm Andriy, a software engineer and the founder of DepsHub.Every single team that I worked with always used tens (if not hundreds) of dependencies. There are usually two popular options: either you ignore the dependencies problem until it's too late and hard to migrate everything to newer versions (say hi to vulnerability issues), or you're constantly trying to find the balance between...
Show HN: DepsHub – Update dependencies using AI
Hi everyone! I'm Andriy, a software engineer and the founder of DepsHub.Every single team that I worked with always used tens (if not hundreds) of dependencies. There are usually two popular options: either you ignore the dependencies problem until it's too late and hard to migrate everything to newer versions (say hi to vulnerability issues), or you're constantly trying to find the balance...
This is exactly what I've added for depshub.com, and people seem to like it a lot. It just gives you better visibility across all of your connected repositories about what the current status of each dependency is and how the major vs. minor vs. patch ratio changes over time. While it's still a naive metric, it's the easiest to understand and visualize - and as a result, the one that is used the most.
> Any ideas on how we can measure improvements?
- Quantitative: Spend as little amount of time as possible on trying to keep everything relatively up to date (hours/month) - Qualitative: not having any CVE issues, not having major updates for core libraries and tools.
What happens if the library that you're using is completely fine on its own (think React 18) but it's a core cross-dependency for tons of other libraries in your project. No libraries or frameworks should be considered in isolation. Otherwise, it can lead to a situation where you can't use some of the other tools/libraries, etc., because of the other dependency that is quite out of date.
This is usually a popular counterargument when people are talking about keeping everything up to date. What people should consider though is to try to keep everything *relatively* up to date, without always being on the latest version but still not very far away from the latest release.
GitHub, Stack Overflow, etc., are full of data about potential issues when updating to library X to version Y, and usually, you're able to find this when it's too late - either you've got an error in production or you're in the middle of an update and you discover that there are some issues with the version that you want to use.
Exploring these data points is still a pretty much untapped area, and this is something that I'm trying to explore with my product that updates dependencies automatically in a more "smarter" and autonomous way at depshub.com.
I would be happy to see more people working in this area since it's clear that there is a problem that needs to be solved and unfortunately the current status quo is "while everyone needs to manage dependencies, there's no one right way to do it, so everyone does it their own way."
All the major tools (dependabot, renovate) to keep dependencies up to date treat all the dependencies equally when in reality there are always core libraries (e.g., react) and everything else. While trying to keep *everything* up to date is extremely challenging, what I'm trying to do is to find a balance between what and when needs to be updated (using code static analysis, different data sources, AI etc) and automate it in a simple manner.
Instead of solely focusing on reducing the libyear for your projects, a better approach is to minimize the steps needed to keep your project reasonably up to date. For instance, think about managing 20 PRs weekly to update various package.json packages versus 1 PR for critical dependencies when necessary.
It's important to note that updating dependencies is not a consistent task that can be done at the same pace all the time. Expect varying update volumes and complexities that may need attention at different times. Setting a fixed configuration for, let's say, 10 updates per week may not be effective, as it could lead to dealing with unnecessary updates regularly (e.g., aws-cli, which has almost daily releases).
Finding the right balance between keeping your project up to date and spending too much time on dealing with dependencies is the hardest part here that doesn't have a 100% right answer yet.
What are some other metrics that you are using? I am working on a product that is helping to keep dependencies up to date and would love to integrate some of these things in the product.