Friends, today I want to tell you about how
Allmychanges.com was born . It was back in 2013. On a sunny autumn day, I was thinking about ideas for implementation within the two-day hackathon Django Dash. I wanted to do some kind of service for developers, but not just a continuum-integration-in-the-cloud, but something more interesting and useful.
Problem number one
And so, as a result, such an idea arose - what if you make a service to which you give a URL, and he himself finds and shows the project's ChangeLog? After all, what a problem with the majority, and that there with the majority - with all software projects - is difficult to find what has changed from version to version. And in release notes, at times, you can find interesting and useful things. The developers of
Django , for example, write not only about what has changed, but also about all deprikesheny and how to migrate from one major version to another.
In general, it is incredibly valuable to have such a place where you can see and assess the possible scale of the disaster after the upgrade of all dependencies. When there is no such place, after updating it often happens:
')

However, even for a project whose Maintainers carry ChangeLog with care, finding it can be problematic. Why? Yes, because the frameworks and libraries are written by people, and people are all different. Someone writes release notes in the
NEWS
file, someone in
ChangeLog
, and some scatter them in separate files like
docs/src/releases/1.7.rst
. Worst of all, those who do not generally release human laptops and make you crawl on the git-log and collect bits of knowledge on commit-messages.
Problem number two
The second problem that logically flows from the first one is the inability to regularly receive updates for each of the projects that interest you. Well, you can not subscribe to changes in one file
CHANGES
lying on the githaba! Some library maintainers solve this problem by starting to write about releases to the blog or, better, using
GitHub Releases , but in this case you also have different places and ways to subscribe to updates. It is like building a cairn of stones - sooner or later, something will fall apart somewhere:

Anyway, but within the framework of Django Dash 2013, we didn’t take up the solution of all the problems listed above, and set out to make the minimum MVP capable of showing release notes of any project on the githabe. And for this we had 48 hours. We, it’s me and my two colleagues:
Gena Chibisov and
Gena Kandaurov .
The first version of
AllMyChanges.com was a one-page application on
angular.js and a backend on
Django . The frontend drew everything beautifully (after all, the front-ends usually do this), and the backend did all the hard work - cloned the repository, searched for the changelog using complex heuristics, and if not found, then grouped the messaging notes to form a release note , thereby saving users time and effort.
And it all worked. It worked fine.
It is a pity that the only judge Django Dash did not appreciate our service. Perhaps he did not even try it. But bad is the founder of a startup who will stop after a mediocre assessment on the hackathon. In short, I decided to develop the service, and probably now it is the only project made at Django Dash 2013, which is still alive.
Quickly the fairy tale affects yes not a startup is done quickly
Especially when it is done for fun and in his free time.
After about 9 months, a new version of
AllMyChanges appeared , which solved the second problem and made it possible to subscribe to any release notes and receive notifications about the release of new releases.
Unlike services that simply track the release of new versions (VersionEye, Gemnasium, Libraries.io, etc.),
Allmychanges not only sends a notifying message, hey, friend, see Angular 1.2.3 released. In addition to this, we send a full description of what has changed in version 1.2.3, especially highlighting places in the text that relate to the correction of errors, vulnerabilities or lead to backward incompatibility.
The principle of working with libraries is also different. Almost all services that track the release of new versions are tied to a specific language or several languages, and data is taken from repositories such as PyPi or Ruby Gems. At the same time, they, as a rule, work with the concept of "project" and there is no possibility to subscribe to a separate framework or library.
AllMyChanges is more flexible in this area. It not only gives you complete release notes, but also allows you to subscribe to absolutely everything for which it is possible to extract version numbers and a text description. For example, you can start keeping the changelog of traffic rules directly on github in a plain text file.
Then throw the link to the file in AllMyChanges and everything - anyone can subscribe to the publication of new traffic regulations! And do not forget about semantic versioning.
We need you. Yes you you and you
This project has much to develop and no doubt it will improve much faster if you are all right now, put off reading Habr and begin to use it intensively. We need your ideas and advice in order to move in the right direction, so be sure to write to
support@allmychanges.com or
chat in Gitter .