Introducing the Gadgetbridge Contributors Policy¶
As Gadgetbridge continues to grow, so does the community of people contributing to it, and the range of tools they use. Recent advances in AI-assisted software development and reverse engineering have created new opportunities for contributors, but they have also raised important questions about code ownership, legality, licensing, quality, and long-term maintenance.
This post introduces our new contribution policy and the expectations we have for everyone who contributes to the project.
The Gadgetbridge project is managed by a small group of people who form the "core team". This group has come together over time, comprising individuals who share certain fundamental values and a passion for freedom. The freedom to use devices on our own terms and not be restricted by any changes in the policies of those who sold them to us (these are devices we have purchased, not rented); the freedom to understand them, study them (given that they, in turn, know a great deal about us) and even enhance their functionality; the freedom to share the software we write that enables us to do all these things; and to collaborate with others whilst doing so. These freedoms are essential for Gadgetbridge as a FOSS (free and open source software) project.
Outside of the core team, there is a much wider community of gadget enthusiasts and developers who have decided to contribute to the project in various ways: some by writing (often excellent!) code, some by translating Gadgebridge into their own language, and some by contributing documentation or observations on how the devices behave when using the vendor's official apps.
Until some time ago, it could be assumed that anyone with the skills to write code for a project as complex as Gadgebridge would be familiar with the explicit and implicit expectations of participating in an open-source project. With the advent of various forms of AI tools, there are now far more people capable of customizing a local copy of the project by adding features to devices already supported, or even adding support for entirely new devices. This new reality is exciting because of the growing audience of potential tech enthusiasts who can also put their ideas and intentions into practice. But on the other hand, it is also fraught with unknowns and potential problems, which have not yet even been fully identified or thoroughly examined, let alone resolved.
The unresolved issues range from the impossibility of these systems being considered "authors" of the code they write, to the possibility of introducing content into the source code that does not comply with the project's license.
These new tools are both accelerators and amplifiers: if used with control and discipline and within well-defined limits, they can prove far more useful than their cost (leaving aside considerations of externalities), but they can also create an unsustainable workload for the people responsible for ensuring that Gadgetbridge remains true to the values described above.
Another but equally important reason to introduce a contribution policy, is the matter of legality. In order to stay clear of legal issues, it is essential that Gadgetbridge is developed using "clean room" techniques. This means having no access to source code or other confidential information regarding the vendor's apps. Building an interoperability tool like Gadgetbridge can only be done legally by observing the behavior of the gadget in question, which includes capturing and analyzing its bluetooth traffic. We cannot accept contributions based on the decompilation of vendor apps or leaked source code.
In an attempt to provide clear guidance to the community, the core team has decided to establish a policy for the project that sets out the expectations that must be met by those wishing to contribute.
The main points of the policy are:
- In the case of adding new devices, we have made it clear that we expect anyone adding a new device to also become its maintainer, to ensure that end users with that device receive ongoing support.
- For anyone proposing a change, we expect it to have been tested on an actual device to ensure it works without introducing any obvious regressions.
- We have made it clear that we do not tolerate any infringement of intellectual property rights or copyright.
- Finally, everything stated above applies regardless of the tools chosen by the person deciding to contribute. For us, the authors of the changes are people, and it is these people who must have control over and take ownership of what they submit to the project. We do not intend to interfere with the choice of tools that each person decides to use, but we set out clear guidelines to enable us to decide whether to accept or reject contributions.
We will continue to monitor the situation with AI assisted contributions. We will update the policy when we feel it needs adjustment, and we will also do our best to document our thoughts and any changes here on the blog.
The most recently published version of the policy can always be found in our repository: CONTRIBUTING.md
Thank you and happy hacking!