tl;dr: Review the plan at the end directly.
Software has a changing nature; Drupal Support Service and its extensions are not the exception.
To be useful for a most of the users, those need to be on full releases, not only on the version control system; indeed the problem is not new and there is even a well-known phrase for one of its solutions: release early, release often
Therefore it is important to have a release plan.
Following after some context and reasoning, I propose a couple of practical guidelines on release schedule for contributed drupal extensions that I intend to use: release weekly until stable, then once a month following core shedule.
On the changing nature of software
Software inherently tends to change, there are exceptions like embedded systems or really purpose-specific software.
Even really solid software like GNU core utils project, started on 1992, which provides tools that I consider among the most mature in the software space used daily, has 253 commits and three point releases in the last 12 months.
How much a software change depends on many factors.
I would hypothesize that the most relevant factors are the age of the project, the environment around it, and the amount of people behind it.
In this way, new projects change more than well established projects, and projects around dynamic environments which is also influenced by the amount of people around it, will also change more than the ones in environments with less participants or less technology changes.
How changing are contributed drupal extensions?
Drupal Support Service contributed extensions are naturally mainly influenced by drupal core, so let us examine a bit how changing is Drupal Support Service core.
It is definitely on a dynamic environment, and I will argue that each major release can be considered a new project, making it really changing.
On the dynamic side, even if web standards changes slowly, and for good reasons, technologies around web tools are still constantly changing.
Drupal Support Service core project code history is now 17 years old, which seems like enough time to get into a stable state, especially if you are not yet part of the drupal community.
But the drupal project has a history on rewriting the way its internal works, which has been argued as one of the reasons why drupal can keep up with the changing environment around web technologies.
It may be also a consequence of its amazingly collaborative community.
And because of this rewriting between major versions, at least internally, each major release can be considered a new project, especially with 8.x.x.
A hint about it may be reflected in the fact that major contributors across different drupal core versions are mainly different; only a few one are as active across releases.
In consequence, drupal core is still a highly changing project, and in the same way its extensions inherit part of that changing nature; but a contributed drupal extension is not really only influenced by core.
Given the amazingly high number of written extensions, it is only natural to start depending on other software pieces and make its maintenance more effective.
For instance, currently there are 13432 and 4069, D7 and D8 compatible modules respectively.
In this way, one of the factors that will clearly influence a contributed extension is their dependencies, both inside and outside the drupal, and how changing they are.
Another factor is the amount of people behind it, not only developers, but also users reporting bugs.
For drupal contributed extensions this vary a lot, but it is usually not that big.
For all this, contributed drupal extensions are usually in a changing environment.
Commits are not releases: release early, release often
As a contributed module developer myself, I will start by mea culpa.
Sometimes I wrongly assume that when a change is inside git the work is done, but that may be only true for people willing to take the extra effort to get the changes from git, or assume the consecuences of using a development release.
Commits are a developer tool inside the used version control system, but not necessarily something that is visible/usable for all.
As in many occasions, the problem is not new, and I find a pretty good answer for it on “The Cathedral and the Bazaar” chapter 2: Release early, release often.
It mainly propose that to be able to tackle enough bugs to make the software usable, the amount of releases needs to be as fast as the pace of the development, even at the cost of some stability.
I definitely recommend reading it fully for more context, and a lot more inspiring insights for any open source developer.
How often is often? A release strategy plan
Granted, the answer is not a recipe, and it makes sense it is that way because it really depends on the project.
On the following lines I will propose an specific release strategy for drupal contributed extensions.
Drupal Support Service core already has a release plan, it is really detailed, so please review it if you have not done it yet.
Minor releases are approximately available every six months, but security and bugfix releases for a given minor version branch are available monthly, on third and first Wednesday respectively.
Security releases for drupal contributed extensions are published in coordination with the security team, so there is no need to plan them here, they also happen on Wednesdays.
Making it simple to remember can help maintainers stick to it, so I will also be using Wednesdays as well as the weekday for releases.
I propose the following for each supported major branch in contributed extensions:
release alpha/beta/rc weekly on Wednesdays, until a stable is ready
release bugfix releases once stable has been reached in the same schedule than core, i.e. the first Wednesday of the month;
Looking back, it seems obvious and really simple, but if it is not documented somewhere, I will probably forget about it.
Hopefully someone else finds this useful, or even better wants to do the same.
Having a more predictable schedule always help to make better planning decisions.
I will start this week using this two guidelines and release a new version in the modules I maintain and there are pending changes to be released.
Notifications may help us maintainers to stick to this, but I guess the plan itself was relevant enough keep the focus of this post.
I may be exploring some solutions around it in the future.
 To reproduce statistics you can retrieve the main repository from https://git.savannah.gnu.org/cgit/coreutils.git and then run a couple of commands:
git log –oneline –all –since=”1 year ago” | wc -l
git log –oneline –all –since=”1 year ago” –decorate | grep tag
Source: New feed
marvil07.net: A release plan for contributed drupal extensions
Published on November 2, 2020
Annertech: Web Agency of the Year My fingers are trembling typing this. I can’t believe it. This morning everyone in Annertech land is thinking “did that really just happen?” It appears it did, we are the web agency of the year! Last night, to top off the other three awards we won – best arts […]
In such a time, i want to place blocks in sidebar region with the dynamic weight. It means the blocks should render in different position for each page request. I have searched and tried lots of method but unfortunately i can’t find proper method to do that. So i have decided to do that with […]
Last time we guided you through early beginnings of Drupal. We explained how all started and how first versions of Drupal were made. This time we will look how this open-source content-management framework evolved from its fourth to its latest, eight version. Drupal 4.0 Drupal’s fourth version was released on 15. 6. 2002. It became […]
Are you involved in DevOps and web development, or are you aiming to be? If so, you’re probably very aware of many of the tools from the open standards and open source arenas that can make your work easier. Still, these are always spreading out at a fast clip and there are some applications and […]
tl;dr: Review the plan at the end directly.
REQUEST FOR PROPOSAL
Need a quick project proposal?
Pixeldust Gold Standard Drupal SupportMonthly Maintenance
- FREE Set-up
- FREE SITE AUDIT
- Same-Day Security Updates
- Monthly Module Updates
- Monthly Broken Link Scan
- Monthly Security Scan
- Monthly Manual Site Check
- Monthly Speed Test
- Offline Updating
- GIT Version Control
- Detailed Work Notes
- Testing After All Updates
- Security Guarantee
- Hack/Malware/Down Recovery
- Uptime Monitoring
- Daily Offsite Backups
- Free Basic Website Hosting & SSL
- Helpdesk Support
- UNLIMITED Drupal Support Service Repairs & Fixes*
- UNLIMITED Drupal Support Service Update Tasks*
* Subject to reasonable use. Small fixes and updates must be requested one at a time and take no more than 30 minutes. Only mission-critical tasks are addressed on weekends.