All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
With the year winding down the month was a little quiet, but we still got some good contributions going.Client sponsored
Thanks to our awesome clients for giving us a chance to help make open source software better for everyone.
- Bayo Fodeke rerolled a patch for Multiple Selects module to fix an error that can show.
- Chris Runo came up with a workaround to allow the Permissions by Term module to limit it per vocabulary.
- Dan Polant suggested an alternative solution for making sorts work in config entity queries and uploaded a patch to improve the UI on the Lingotek Translation module.
- Mark Casias uploaded a fix for using Devel with Admin Toolbar.
- Melissa Bent created a fix for a bug in the Tamper module and worked out a fix that allowed the CodeCoverage library to properly load its dependency files.
- I created a patch for Baidu Push to indicate that the Language module is actually required, a patch for Guardr to add back in the project prefixes, and created a new Drupal.org Links module.
Mediacurrent provides some extra time during the week for folks to scratch their own itches, and sometimes people triage issue queues instead of watching football on TV :-)
- Melissa provided us some examples for using nested menu items on the YAML Content module.
- Stephen Lucero continued working on improvements for his Switches module.
- I helped reroll and tidy up some patches for the Context module, triaged the Metatag module and Date module’s issue queues a bit, and released Search & Replace Scanner v7.x-1.1 and Panels Everywhere 8.x-4.0-beta1
A little light this month, but there are still two good blog posts from our team.
- Tara Arnold introduced the many sessions that Mediacurrent staff will be presenting at DrupalCon Seattle 2019.
- Becky Cierpich took a step beyond simple localization into the greater design considerations that are necessary for a multilingual site.
We squeezed in four Contrib Half Hour meetings into the month, despite the company being closed for Turkey Day.
November 1st - Issues lab
November 8th - run-tests.sh
November 15th - Q&A
November 29th - Testing lab
Lots of folks were working on their presentation proposals for DrupalCon Seattle 2019. see Tara’s blog post for details. There are also several events coming up soon that we’ll be attending, including DrupalCamp NJ and Florida DrupalCamp in February and then NERDSummit in March.Stay warm!
That’s it for this month. Hope everyone in the Northern Hemisphere stays warm, everyone in the Southern Hemisphere enjoys their summer, and the folks in the middle don’t brag too much!
Anyone familiar with the Drupal core development lifecycle will know that presently the Drupal community supports two major versions at any one time: the current major release and its immediate predecessor. This means that at ComputerMinds we are currently helping our clients support and develop both Drupal 7 and Drupal 8 sites. So the obvious question that we get asked is ‘when is it time to upgrade’?
We can’t properly answer this question without bringing the next major release, Drupal 9, into the mix. So let’s look at the development timeline for these three versions. According to a blog post by Dries both Drupal 7 and 8 will have an end of life of no later than November 2021 with Drupal 9 being released roughly a year earlier in June 2020 to give site owners enough time to move over to Drupal 9. It is worth noting that from November 2021 only Drupal 9 will be supported. Dries outlines these dates with a whole bunch of details in this blog post.
Historically, migrating between major versions has been a considerable chunk of work as major versions aren’t backwards compatible; however, the good news is that migrating from Drupal 8 to Drupal 9 should be a very straightforward process - so long as you’ve kept your Drupal 8 site up-to-date! This is good news for anyone that’s already taken the plunge into the world of Drupal 8 as the migration process shouldn’t really be any more involved than a minor upgrade. This is because the only real changes will be to remove deprecated code and update dependencies, such as Symfony (Symfony 3 has an end of life of November 2021, hence this date being cut off for support for Drupal 8).
For site owners still using Drupal 7 the question of when to upgrade is slightly more complicated. Do you wait for Drupal 9 and skip Drupal 8, or should you upgrade now? As previously mentioned we can be reasonably confident that upgrading from Drupal 8 to Drupal 9 will be a straightforward process, so we don’t need to worry about having to redo lots of work a couple of years down the line if we do migrate to Drupal 8 now. So the question of when to migrate really varies depending on your current circumstance and preference.
Some site owners will want to benefit from new functionality added in Drupal 8 so will want to upgrade their Drupal 7 sites as soon as possible, whilst obviously factoring in how difficult and expensive the migration will be. Others will be perfectly happy sticking with Drupal 7 until support has ended, at which point they will have to port over in order to keep their site secure. Another piece of good news for anyone weighing up their options with Drupal 7 is that support for Drupal 7 will also be extended to November 2021 (previously support would have ended for Drupal 7 as soon as Drupal 9 was released) so this gives you another year to implement your migration to Drupal 9.
So the short answer of when to migrate your Drupal 7 site is really whenever is good for you. There’s no immediate rush and if you do opt to migrate to Drupal 8, as long as you keep your site up-to-date, upgrading to Drupal 9 when the time comes should be a cinch!
The Unused Files menu module displays every unused files from your website, that can be filtered by file type and status.
The unused files list is can be seen through the administration menu by navigating in Content > Files > Unused Files, or by the link to /admin/content/file/unused
In this list you can see every file that is not used by one of the fields from the content of your website, like your nodes or taxonomies. It lists the file main informations like the name, type, author, date and status.
It’s time for me to amble into my garage and offer up an assortment of the strange things that I find there. It’s a bit of a post-Christmas tradition here at the stew. I have to make room for all the coal Santa keeps bringing me for some reason… Each has an adventure seed baked in so feel free to pick them up for your players. After all, one gnome’s trash is another’s treasure.
As is tradition, I’m offering up more than one version of some of these items: a mundane one, and additional details of a more fantastic nature — suitable for use in your supernatural horror, fantasy, or sci-fi campaigns.
Paper and ink: This could be a simple sheaf of paper and an inkwell, or a calligraphy set, or in a modern game could simply be printer paper and ink. In any case it’s eye catching, high quality and a steal at the price being asked.
Mundane: Upon use it is discovered that the ink is invisible when it dries and some of the paper has already been used. The notes uncovered lead on some sort of scavenger hunt. Who set it up, and what is the end result likely to be? Is it worth tracking down all the clues?
Fantastic: This appears to be normal ink and paper, but writing or printing using the paper and ink appear normal then slowly transform into different documents over time.
A set of gardening tools: A bundle of tools for tending plants — a set of snips, a small hand rake, and a trowel — wrapped in a canvas satchel featuring a map.
Mundane: secreted in the handle of the trowel is another piece of fabric with some cryptic lines and holes that overlay the map on the satchel. Leading to buried treasure perhaps?
Fantastic: In addition to the map and the riddles, the trowel itself acts as a lodestone at various locations.
An old filing cabinet: A cabinet for keeping papers and files of common construction. A little worn out but still functional.
Mundane: A false bottom conceals a weapon, a stash of cash and a diary that may lead to more. Who did this belong to and how did it get sold at a yard sale?
Fantastic: The cabinet is haunted of sorts. Strange sounds come from it and there are flashes of movement in the corner of your eye when it is nearby. Can solving the mystery of the diary put these spirits to rest?
An animal leash: A leather leash with several sets of numbers etched on its sides, and a metal handle. The sets of numbers are coordinates. The first leads to a site off some wilderness walking trails with a grave marker and a vault door that requires more than one key to open. Maybe the other coordinates have the other keys.
A grave site: The deed to a grave site. Supposedly never used, but being sold for just a little cash. Seems worth the gamble.
Mundane: According to the cemetery, the plot is indeed unused, yet it appears to be occupied. Unearthing the site reveals only a large metal box containing a vampire slaying kit, a diary with names and locations, and a note addressed to the PCs directly. Where did this come from? How did they address it to you and is there a madman out there slaying “vampires”?
Fantastic: With a little more fantasy, those vampires are probably real and likely aren’t happy someone has all their addresses.
A vintage tool: A complex mechanical tool. Old but in good condition. It would be useful for a PC’s crafting. The tool works but It’s missing an optional part that’s complicated enough that jury-rigging one is unlikely. Local crafters can’t provide one, because they don’t know what it’s supposed to accomplish. However, they can interpret the machine’s maker’s mark, so the original craftsman can be tracked down.
At ComputerMinds we like to think that we’re all pretty good at what we do; however, nobody is perfect and this is why we always ensure that our code is properly peer reviewed as part of our quality assurance process.
Peer review is literally just what the name implies; we work together to review each other’s code to make sure that it all makes sense. This approach means that we’re able to spot obvious mistakes before they become a problem. It also has the huge advantage of allowing us to transfer knowledge between our team on a day-to-day basis.Pull Requests
The primary way we peer our code is to make use of GitHub’s pull requests (PR) feature. This means that whenever we need to do some work on a Git repo we start by creating a new feature branch which will contain the chunk of work that we’re doing. Then once we are happy with the code we’ve written in this branch we’ll go over to GitHub and create a PR to merge our branch in with another branch which we know is stable, for example the master branch. Before this merge happens GitHub’s PR tool will show all the changes between the the two branches so that they can be reviewed by another developer.
At ComputerMinds we use pull requests a lot. We don’t like to work directly on a stable branch as this way there is much more chance the bugs might slip through the net. By using pull requests we can be sure that our code is properly sanity checked before it makes its way over to a stable environment, be that a client facing testing branch or the live branch. GitHub also makes it easy to add comments directly to the pull request so any issues are full documented and feedback is clearly displayed.Face to face
When dealing with a more in-depth code change, it's particularly helpful to talk face-to-face, as it allows the original developer to talk you through their changes and the thinking behind them. This allows the reviewer to have a much better understanding of what the original developer was aiming to achieve and to sanity-check their thinking. A 'meatspace' chat can be more difficult to achieve than just getting some comments on a pull request, but it's often worth the effort.Finding the right fit
Both of these methods have their strengths and weaknesses. Pull requests are quick and easy to use; however, when dealing with larger sets of changes things may get overlooked, or may not be properly understood without knowledge of the bigger picture. Face to face reviews obviously take up more resources to conduct the review but do allow for a more in-depth review where the bigger picture can be clearly explained by the original developer.
Obviously it goes without saying that these two approaches to peer review aren’t mutually exclusive - there are plenty of meatspace chats going on around the office about various PRs.
At ComputerMinds we're still working on how we do code review. There's always room for growth and for change, and we're actively promoting discussion amongst our team to see how we can do better.
How do you do quality assurance and review on your code? Share your thoughts and tips with us below!
"Create Module On One Click"
A module which create a Simple Module with all default files like .info,.routing,.install,.module and readme files.This is very easy and fast to create a module with basic code and it is also useful for new developers to create a module.
This module also create: