110 lines
8.3 KiB
Markdown
110 lines
8.3 KiB
Markdown
# PDA Project Update
|
|
|
|
## Introduction
|
|
|
|
Hello PDA community members,
|
|
|
|
I know it has been quite awhile since the last formal announcement like this. Things have been quite busy and difficult
|
|
for me both professional and personally. While I try hard to never make my problems someone else's problems, I do
|
|
believe it's important to be transparent with the community. I'm not going to go into details, but I will say that I
|
|
have been dealing with some mental health issues that have been quite challenging. I'm not one to give up though,
|
|
so I'm pushing through and trying to get back on track.
|
|
|
|
With that being said, let's jump into the announcements.
|
|
|
|
### Project Maintenance
|
|
|
|
Granted I haven't been nearly as active on the project as I would like to be, I have been keeping an eye on things and
|
|
trying to keep up with the maintenance. I know there are a lot of issues and feature requests that have been piling up,
|
|
and I'm sorry for that. Even if I had been more active in recent months, it would have not changed the true root cause
|
|
of the issue.
|
|
|
|
This project was started out of a need for an individual's own use-case. I don't believe it was never intended to be a
|
|
commercial quality product nor a community project. It did however gain traction quickly and the community grew. This
|
|
is a great thing, but it also comes with some challenges. The biggest challenge is that the project was never designed
|
|
to be a community project. This means that the project lacks many of the things that are required to effectively manage
|
|
a community project. This is not to say that the project is doomed, but many of the fast-paced changes combined with
|
|
the lack of standards has lead to a difficult situation that makes implementing certain changes incredibly unproductive
|
|
and quite often, entirely counter-productive.
|
|
|
|
After many years of accepting contributions from those who are not professional developers, the project has become quite
|
|
difficult to maintain. This is not to say that I don't appreciate the contributions, but it's important to understand
|
|
that the state of the code-base for the project is not in a good place. This is not uncommon with projects born how PDA
|
|
was born, so it's unfortunate but not unexpected.
|
|
|
|
As of today, there are so many dependencies and a large amount of very poorly implemented features that it's difficult
|
|
to make any changes without breaking many other pieces. This is further complicated by the fact that the current code
|
|
base is harder to follow naturally since it largely lacks uniformity and standards. This lack of uniformity has lead to
|
|
a situation where automated regression testing is not possible. This is a very important aspect of any project that
|
|
expects to be able to make changes without breaking things. This is also a very important aspect of any project that
|
|
expects to be able to accept contributions from the community with minimum management resources.
|
|
|
|
The hard reality is that the majority of stakeholders in the project are not professional developers. This naturally
|
|
means the amount of people that can offer quality contributions is very limited. This problem is further aggravated by
|
|
the poor quality feature implementation which is very hard to follow, even for seasoned developers like myself. So many
|
|
seemingly small issues that have been reported, have lead to finding that the resolution is not as simple as it seems.
|
|
|
|
### New Direction
|
|
|
|
As I previously stated in my last formal announcement, we would be working towards a total replacement of the project.
|
|
Unfortunately, this is not a simple task, and it's not something that can be done quickly. Furthermore, with
|
|
increasingly limited capacity in our own lives to work on this, we are essentially drowning in a sea of technical debt
|
|
created by the past decisions of the project to accept all contributions. We have essentially reached a point where
|
|
far too much time and resources are being wasted just to attempt to meet the current demand of requests on the current
|
|
edition of PDA. This is a tragedy because the efforts that are invested into the current edition, really aren't
|
|
creating true progress for the project, but instead merely delaying the inevitable.
|
|
|
|
As I have stated before to many community members, one aspect of taking over management of this project to ultimately
|
|
save it and keep it alive, would involve making hard decisions that many will not agree with. It's unfortunate that
|
|
many of those who are less than supportive of these decisions, often lack the appropriate experience to understand the
|
|
importance of these decisions. I'm not saying that I'm always right, but I am saying that it's not hard to see where
|
|
this is headed without some drastic changes.
|
|
|
|
With all of that being said, it's time for me to make some hard decisions. I have decided that the best course of
|
|
action is to stop accepting contributions to the current edition of PDA. At this point, due to the aforementioned
|
|
issues that lead to breaking the application with seemingly simple changes, it's just not worth the effort to try to
|
|
keep up with the current edition. This is not to say that I'm giving up on the project, but instead I'm going to
|
|
re-focus my efforts on the new edition of PDA. This is the only way to ensure that the project will survive and
|
|
hopefully thrive in the future.
|
|
|
|
I will not abandon the current set of updates that were planned for the next release of `0.4.2` however. I have
|
|
re-scheduled that release to be out by the end of the year. This will be the last release of the current edition of
|
|
PDA. The consensus from some users is that the current edition is stable enough to be used in production environments.
|
|
I don't necessarily agree with that, but I do believe that it's stable enough to be used in production
|
|
environments with the understanding that it's not a commercial quality product.
|
|
|
|
### Future Contributions
|
|
|
|
For those of you wondering about contributions to the new edition of PDA, the answer for now is simple. I won't be
|
|
accepting any contributions to the new edition until I can achieve a stable release that delivers the core features of
|
|
the current edition. This is not to say that I won't be accepting any contributions at all, but instead that I will be
|
|
very selective about what contributions I accept. I believe this is the only way to ensure that a solid foundation not
|
|
only takes shape, but remains solid.
|
|
|
|
It is well understood that many developers have their own ways of doing things, but it's important to understand
|
|
that this project is not a personal project. This project is a community project and therefore must be treated as such.
|
|
This means that the project must be engineered in a way that allows for the community to participate in the development
|
|
process. This is not possible if the project is not engineered in a way that is easy to follow and understand.
|
|
|
|
### Project Enhancements
|
|
|
|
It should be understood that one of the greatest benefits of this pivot is that it will allow for a more structured
|
|
development process. As a result of that, the project could potentially see a future where it adopts a whole new set of
|
|
features that weren't previously imagined. One prime example of this could be integration with registrar APIs. This
|
|
could make easy work of tasks such as DNSSEC key rotation, which is currently a very manual process.
|
|
|
|
I am still working on final project requirements for additional phases of the new PDA edition, but these additions
|
|
won't receive any attention until the core features are implemented. I will be sure to make announcements as these
|
|
requirements are finalized. It is my intention to follow a request for proposal (RFP) process for these additional
|
|
features. This will allow the community to participate in the decision-making process for future expansion of the
|
|
project.
|
|
|
|
### Closing
|
|
|
|
I hope that by the time you have reached this point in the announcement, that I have elicited new hope for the
|
|
long-term future of the project. I know that many of you have been waiting for a long time for some of the features that have been
|
|
requested. I know that many of you have been waiting for a long time for some of the issues to be resolved, for
|
|
requested features to be implemented, and for the project to be more stable. It's unfortunate that it has taken this
|
|
long to get to this point, but this is the nature of life itself. I hope that you can understand that this is the only
|
|
reasonable gamble that the project survives and thrives in the future.
|