Motivation

This is a followup to #1271060: Allow tests to declare 'requirements', skip tests where requirements are not met. There is still a need for tests to be able to define requirements. However, as discussed on irc, it is still necessary to show failed tests (and allow them to run and show a failed status).

Currently, TestDiscovery::getTestClasses() checks the annotations of all test classes and rejects tests which have @requires module or @dependencies for modules which do not exist on the filesystem.

This behavior has tests in the existing codebase, so it is supported and should be maintained.

This behavior should not be the responsibility of TestDiscovery. It should be the behavior of the test class itself, which can mark the test as skipped. This way, the user can better understand why a test did not run.

This behavior is being moved to the test classes for PHPUnit-based tests in #2728579: Explicitly skip @requires module in PHPUnit Kernel and Browser tests

We should move the behavior for Simpletest-based tests to \Drupal\simpletest\TestBase in this issue.

TestBase already has a checkRequirements() method. This allows test classes to do whatever they want WRT requirements. However, this does not allow for annotations.

Proposed Resolution

Create a patch that does the following on a given test class:

  • Check the annotated requirements
  • If there are any missing requirements, list them and mark the test as skipped. Otherwise, continue on and run the tests.

Annotation requirements checks should follow the same API as TestBase::checkRequirements(), returning an array with messages about missing requirements.

Also, this check can not occur in TestBase::checkRequirements() because subclasses can override and might not call the parent method.

So a new method should be created which can determine the requirements based on annotation. In order to avoid adding features to Simpletest (which is essentially in maintenance-only mode), this method will be final and private, so that it's the only code which defines how Simpletest interacts with annotations, and is not an API addition. See PHPUnit initiative: #2807237: PHPUnit initiative

API Additions

None.

Remaining Tasks

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

BTMash’s picture

FileSize
3.41 KB

Attaching patch.

BTMash’s picture

Assigned: Unassigned » BTMash
Category: task » feature

Changing to feature request as well. Not sure why the test is not running.

Alan Evans’s picture

Status: Needs review » Needs work

Hi there ... Thanks for the patch, I rather like this feature. Here's what I've tested so far:

  • Tested on D8 environment pre-patch testing book tests
  • Apply patch and rerun book tests: all OK
  • Test with a basic checkRequirements() implementation on book tests that returns FALSE. As expected - tests are allowed to proceed, as the return value is not an array with "errors" set
  • Tested book tests with a checkRequirements implementation that returns array('errors' => 'test message')

On the whole, it's looking good, but I'm not hugely keen on this line:

if ($access !== TRUE && isset($access['errors']) && count($access['errors']) > 0) {

As what it's checking ultimately is just the same as:

if (!empty($access['errors'])) {

Why not just go with the shorter version? (It won't emit notices)

Also this line:

        'function' => 'n/a',

Is actually covered by the default in DrupalTestCase::insertAssert (default is 'Unknown', likewise default line number is 0, so we shouldn't need to set either of these - I'd recommend removing both the function and line number here. I've just tried doing that, and the result is the same, except that the assert shows the default function name of "Unknown" instead of "n/a")

  • Checked arguments of insertAssert() - all sane
  • Checked diff of contents of the else {} block, from "foreach ($class_methods" - all the same as the original
matason’s picture

Status: Needs work » Needs review

Hey @btmash, just reviewed your patch, my only suggestion would be simplify the return value of checkRequirements - perhaps have it return an array only, an empty array by default indicating no problems and alternatively an array of errors if any requirements are not met. It'll make your logic on line 47 of the patch simpler and reduce a possible element of confusion. Perhaps needs a little more on the usage in method comment block too.

matason’s picture

Status: Needs review » Needs work

Ah, missed your post @Alan Evans, setting to needs work.

Alan Evans’s picture

Yep, I'd tend to agree - making that return value always an array would be a good way to simplify things

BTMash’s picture

Status: Needs work » Needs review
FileSize
3.27 KB

Thanks for the thorough review :) I've made the changes put forward by Alan and I've made the return value be an array as recommended by matason.

Alan Evans’s picture

Status: Needs review » Reviewed & tested by the community

Thanks for the update! Checks done:

  • Re-read the patch - looks good
  • Run book tests with no changes - OK
  • Run book tests with checkRequirements() implementation returning empty array - OK
  • Run book tests with checkRequirements() returning test message - OK
  • Run multiple tests including book tests with checkRequirements() returning test message - OK (fails correctly)

Was going to do a full test run with and without checkRequirements, but I realise this is going to take hours on my laptop, so I think we'll just trust the bot.

One slight annoyance is that the batch test run reports fails 0, passes 0, exceptions 0 when failing on requirements, but the end test result report is correct. I don't think that's anything to do with your patch though - the other DrupalTestCase::insertAssert in prior code would do exactly the same thing (the one that checks for completion of individual tests). It looks to me like that's just how insertAssert is implemented that means that the batch runner doesn't know about the fail until the end.

Going to mark this RTBC for now, can always go back if there are objections.

sun’s picture

Status: Reviewed & tested by the community » Needs review
Issue tags: +Needs issue summary update

Sorry, I need 1) a better issue summary here, and 2) a better explanation of what is being changed and why (which circles back into 1)). Right now, I can't make any sense of this patch.

BTMash’s picture

@sun, let me know if this works as an issue summary.

With the introduction of #1182290: Add boilerplate upgrade path tests (the test requires the zlib extension), tests which may have requirements outside of module dependencies are being introduced. @matason introduced #1271060: Allow tests to declare 'requirements', skip tests where requirements are not met which would mean that tests could have requirements. However, the issue was closed since @webchick, @davereid, and a few others felt that tests with requirements should not get skipped from being displayed to the user and it would be better to fail instead (the user has the option of not enabling a test to run).

The aim of this issue is to focus on allowing tests to have requirements and allow them to fail if someone tries to run them. This has been separated from the prior issue after discussion with @webchick. What the patch currently does:

  • Implements a base class function called checkRequirements(). By default, this returns an empty array (an empty array implies no errors). For any other test classes that implement the function, they can return an array of errors for any unmet requirements.
  • At time of test (prior to setUp()), checkRequirements is called to see if the class has any unmet requirements. If the array is *not* empty, the list of unmet requirement errors are added to the test summary and the tests are not run. Otherwise, it will run the tests and output any success/errors from the tests as necessary.
BTMash’s picture

Issue summary: View changes

Updated code for check requirements.

BTMash’s picture

Issue summary: View changes

Add an issue summary.

BTMash’s picture

Issue tags: +Needs backport to D7

Updated first post in issue summary format.

sun’s picture

Thanks for the improved summary.

Looks like this patch

1) needs more in-depth reviews from simpletest/testing-framework maintainers but also OO-masters, and

2) could use an example implementation (I'm quite sure we already have tests in core that contain an early-return based on an environment condition)

sun’s picture

Issue summary: View changes

Wrong post.

BTMash’s picture

FileSize
4.77 KB

I am attaching a patch that tackles (2) since I am no OO-master :) The ImageToolkitGdTestCase requires GD to be enabled. Right now all the tests skip (yet show a passing grade). The requirements would now make the test fail and skip all the tests within the test case.

Dave Reid’s picture

Yes, the test should fail if GD is not installed rather than skip especially since core only ships with gd support.

BTMash’s picture

Ok, great! As per sun's requests, are there any thoughts for the checkRequirements() implementation?

BTMash’s picture

FileSize
6.89 KB

I'm updating this patch to now have 2 examples.

1) The image GD testing requirement.
2) The D7->D8 upgrade tests zlib requirement. In this case, we already have an early fail occurring to stop the tests from running. However, with the missing checkRequirements(), we currently have a variable being tracked through the testing process (and thus run the parent class setup/teardowns since the upgrade test class implements its own setup/teardown). This greatly simplifies the code for that portion.

Lars Toomre’s picture

I like this patch and thinks it makes great sense. However, I am neither a simpletest/testing-framework maintainer nor a OO-master.

The only issue I noticed was an incorrect indenting of the word Array below @return line.

While awaiting review from others, it make sense to identify the other cases in existing tests where this new function could be used. I would not code them up yet in the patch, but the information will be helpful for when the final patch is rolled and hopefully applied.

BTMash’s picture

FileSize
6.89 KB

Ok, I've updated the patch with the minor change to the comment. And agreed - no more examples until someone can say if the code is any good (I wanted to show one example where this clearly makes sense).

BTMash’s picture

Issue summary: View changes

New patch with updated examples.

xjm’s picture

Looks like the summary's been added; untagging.

Alan Evans’s picture

I've taken another look over the latest patch and here are the results:

  • Still no actual practical difference in the main foreach loop which runs the tests (diffed the loops to check), same as previous patch. Good.
  • There is nothing hugely complicated from an OO perspective, so I disagree that it needs more than a glance from the OO gods. That said, I wonder whether checkRequirements really needs to be protected rather than public. I never see this called from outside the class or subclasses, so I don't see a need for public. General rule of thumb is allow the lowest possible level of access - private if possible, then see if you can use protected, public functions should be part of the external-facing interface, which this doesn't really qualify for
  • I've retested the patch using protected - all runs ok
  • The patch currently only applies with minimum of -F3 ... needs rerolling
  • Ran patched image manipulation and upgrade tests to verify: all passed
  • Re-ran both with a faked fail-requirements case: all failed nicely
  • Your removal of similar requirements-checking code from within the tests themselves looks good
  • Checked example GD checkRequirements implementation - looks good
  • Checked if upgrade requirements are reasonable: in general this looks good, but extension_loaded('zlib') is the more direct way of checking this. I like the use of image_gd_check_settings in requirements, as it uses a function of the toolkit itself within the requirements check, but this is not really the case with function_exists('gzopen'): it checks for the existence of a function that is not used within the test, the test itself depends on another feature of zlib (the stream wrapper).
  • Ran another random unaffected test to check it doesn't affect other tests: OK

Remaining TODO:

  • consider using extension_loaded() for the zlib check, or argue the case for function_exists('gzopen')
  • consider changing checkRequirements method access to protected, or argue the case for public
  • Get it looked at by boombatower or chx
  • Reroll patch for latest d8 (problem I think was 1 hunk in the upgrade test - just needs a little extra fuzz to get the patch applied)
  • Let d.o do a full test run to validate the final patch
Alan Evans’s picture

FileSize
6.9 KB

Turns out the patching issue was a spelling correction in a comment in upstream which happened to coincide with one of the context lines of the patch.

Here's a rerolled version of the patch. The only changes are:

  • Applies to latest D8
  • Uses protected instead of public access for checkRequirements(), but I'm happy to revert to public if there's a case for it.
BTMash’s picture

I just took a look through the patch; the protected change sounds good to me. I like the idea of using extension_loaded (did not know about it; makes more sense to me) instead of checking for a particular function. So +1 (^_~) from me.

BTMash’s picture

Assigned: BTMash » Unassigned

I'm unassigning this from myself so someone else knows to step in to do some sort of review or whatever else is necessary.

xjm’s picture

Status: Needs review » Needs work
Issue tags: +Novice

Thanks for working on this patch. This will need to be rerolled on account of #22336: Move all core Drupal files under a /core folder to improve usability and upgrades. Also, here are a few minor points about the patch's code style.

+++ b/modules/simpletest/drupal_web_test_case.phpundefined
@@ -84,6 +84,16 @@ abstract class DrupalTestCase {
   /**
+   * Check for matching requirements for DrupalTestCase.
+   *
+   * @return
+   * Array of errors containing a list of unmet requirements.
+   */

+++ b/modules/simpletest/tests/image.testundefined
@@ -217,6 +217,19 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase {
   /**
+   * Check that the GD toolkit is enabled in order for the tests to run.
+   */

+++ b/modules/simpletest/tests/upgrade/upgrade.testundefined
@@ -28,19 +28,23 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase {
   /**
+   * Check that zlib is enabled in order to run the upgrade tests.
+   */

The docblock summaries should use a third-person present indicative verb (in this case, "Checks" instead of "Check.) We're currently cleaning this up as a part of #1310084: [meta] API documentation cleanup sprint, so we should make sure new dockblocks agree with the standard as well.

Also, there should be two spaces of indentation after @return, like so:

@return
  Array of stuff...

Tagging as novice for the task of rerolling the Drupal 8.x patch and making the code style corrections above.

If you need help rerolling this patch, you can come to core office hours or ask in #drupal-gitsupport on IRC.

kathyh’s picture

Status: Needs work » Needs review
FileSize
6.98 KB

Applied d8 /core patch change. In some of the files, D8 path updates in the code affected patch apply. Modified patch to include those references to /core/includes/update.inc' and /core/update.php'
Added updates per #24

xjm’s picture

Issue tags: +Needs tests

Patch looks good to me. Do we also need to add a test to simpletest's self-tests that tests whether missing dependencies properly cause failed tests? :)

BTMash’s picture

FileSize
9.14 KB

Here is an updated patch with a test.

BTMash’s picture

FileSize
9.14 KB

Get rid of whitespace.

BTMash’s picture

FileSize
8.89 KB

Cleaned up the test a little.

xjm’s picture

Thanks @BTMash. Can you also upload the test separately to expose its failure? (If you put the test-only patch first and the combined patch second in the same comment, testbot won't set it to NW for the intended failure.)

xjm’s picture

Right, so this is new functionality and therefore exposing test failure with a separate patch doesn't really make sense. Sorry. :)

BTMash’s picture

Category: feature » task

On recommendation from @xjm, changing the category to task.

boombatower’s picture

Category: task » feature
Status: Needs review » Reviewed & tested by the community

Seems like a solid plan. We had a brief conversation in IRC and all seems well.

boombatower’s picture

Category: feature » task
catch’s picture

#29: 1273478_29.patch queued for re-testing.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 1273478_29.patch, failed testing.

BTMash’s picture

Status: Needs work » Needs review

#29: 1273478_29.patch queued for re-testing.

Status: Needs review » Needs work
Issue tags: +Needs tests, +Novice, +Needs backport to D7

The last submitted patch, 1273478_29.patch, failed testing.

xjm’s picture

BTMash’s picture

Status: Needs work » Needs review
FileSize
9.02 KB

I've rerolled the patch. Hopefully, it works out :)

chx’s picture

Status: Needs review » Needs work

Please change $access to $missing_requirements and the $error accordingly to $missing_requirement and then feel free to RTBC, it's just a variable rename, I am fine (and so was Jimmy above) with the patch.

BTMash’s picture

Status: Needs work » Needs review
Issue tags: -Needs tests
FileSize
9.12 KB
1.17 KB

I've made the necessary changes. Hopefully ready for review. Adding interdiff as well.

xjm’s picture

Status: Needs review » Reviewed & tested by the community

Thanks; this variable naming makes the code clearer and more self-documenting.

catch’s picture

Version: 8.x-dev » 7.x-dev
Status: Reviewed & tested by the community » Patch (to be ported)

Committed/pushed to 8x, thanks!

Will need a re-roll for 7.x (but might want to wait for table deletion issue first to save double re-rolling)_.

xjm’s picture

Status: Patch (to be ported) » Needs review
FileSize
8.93 KB

Here's a D7 backport. Not a clean reroll so NR. (It does at least have the same number of fingers and toes.)

catch’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: -Novice

Looks good to me.

sun’s picture

Issue tags: +Testing system

Hm. I really wonder why we didn't make checkRequirements() a static method.

Right now it's not, which means you need to instantiate the test first, in order to figure out whether it can be run in the first place. Whereas we can discover tests and get their info without instantiating. That slightly contradicts the meaning of "requirements."

I'd actually prefer to bump this back to D8 and make that method static. Potentially also consider to auto-invoke it directly from __construct() and throw an exception, so code that doesn't check the requirements correctly blows up.

BTMash’s picture

I'm ok with this going either way though I'll need to get a better understanding of the static method calls and if we can override them on a per-class basis.

sun’s picture

Version: 7.x-dev » 8.x-dev
Status: Reviewed & tested by the community » Needs review
Issue tags: +API addition
FileSize
4.78 KB

Looked at this again, and it seems like the intention is to make tests with unmet requirements explicitly fail.

This still means that such test classes are (successfully) instantiated and attempted to run. Whereas I'm pretty sure that we're able to check and return requirements either even before instantiating, or right within the class instantiation (i.e., __construct()). Architecturally, that would make more sense to me.

Aside from that, I don't really get why we're re-inventing Exceptions with a custom array of error strings, which are manually inserted as errors into the test log afterwards?

However, I don't want to hold off progress for Testing system improvements... the only reason for raising the concerns here and not in a new issue is that we're about to backport this API addition to D7, and so, while we can possibly adjust D8 afterwards, that's not going to be possible for D7 anymore.

---

To merely outline the direction I mean, see attached patch. It's just a start to show the approach using exceptions, and doesn't involve __construct(); it's not a final patch in any way. Left indentation and whatnot alone, so it's easier to see the functional changes.

Status: Needs review » Needs work

The last submitted patch, drupal8.test-requirements.49.patch, failed testing.

BTMash’s picture

Hmm, I like the idea of throwing exceptions instead of doing the thing I did. I'll try out what can be done during the instantiation and if it will behave nicely but if not, then atleast work with what you have in your approach.

tim.plunkett’s picture

Category: task » feature

Recategorizing.

sun’s picture

Category: feature » task

The current implementation throws a test failure when requirements are not met, but that is bogus and also insufficient. A test that lacks requirements neither means success nor a failure. #843114: DatabaseConnection::__construct() and DatabaseConnection_mysql::__construct() leaks $this (Too many connections) requires a way to skip a test when not running on MySQL.

Took me some time to find the docs for the corresponding functionality in PHPUnit:
http://www.phpunit.de/manual/current/en/incomplete-and-skipped-tests.html

So scratch the exceptions approach I mentioned earlier; what we need is:

Table 9.2. API for Skipping Tests

Method Meaning
void markTestSkipped() Marks the current test as skipped.
void markTestSkipped(string $message) Marks the current test as skipped using $message as an explanatory message.
tim.plunkett’s picture

Version: 8.x-dev » 9.x-dev
tim.plunkett’s picture

Issue summary: View changes

updating summary.

sun’s picture

Title: Allow tests to declare 'requirements'; fail tests where requirements are not met. » Fully implement @requires and mark tests with unmet requirements as 'skipped'
Version: 9.x-dev » 8.x-dev
Assigned: Unassigned » sun
Issue summary: View changes
Status: Needs work » Postponed
Issue tags: -Needs backport to D7
Parent issue: » #697760: Replace getInfo() in tests with native phpDoc + annotations (following PHPUnit)

Minimally revising this issue to account for the latest and greatest efforts.

One of my topmost/primary concerns is that the current test runner code simply skips classes with unmet dependencies during the test discovery already, so you do not even see that additional tests may exist but might have been skipped; i.e., they're not even listed as available tests - the test runner simply presumes they wouldn't exist at all.

My plan is to introduce full parity for Simpletest tests with PHPUnit tests in D8. That not only means that you'll be able to specify "@requires PHP 5.5" or "@requires extension curl", it also means that Drupal module dependencies will be handled in the same way; i.e., "@requires module libraries".

If an environment requirement is not met when a test is attempted to be run, the test will be marked as "skipped".

Next to custom Drupal extension type requirements, the goal is to fully adopt/resemble PHPUnit's @requires annotation for skipping tests.

All of that happens at test execution/runtime, so it doesn't affect PIFR - aside from new assertion result categories. I briefly talked to @jthorson about necessary changes on that front already.

In concrete terms, this means that the list of assertion categories in TestBase::$results will be extended by "skipped", "incomplete", and "risky" — fully adopting all of PHPUnit's possible assertion result categories.

The meta data will be delivered by TestDiscovery::getTestInfo(), by courtesy of #697760: Replace getInfo() in tests with native phpDoc + annotations (following PHPUnit)

We may also consider to add explicit corresponding methods to TestBase (cf. #53), but that may also happen later and is not a priority for now.

Postponing on the parent issue.

moshe weitzman’s picture

tim.plunkett’s picture

Status: Postponed » Active
mgifford’s picture

Assigned: sun » Unassigned

Just unassigning issues that haven't been developed for a bit in the D8 queue.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • catch committed 15ddbd8 on 8.3.x
    Issue #1273478 by BTMash, Alan Evans, kathyh: Allow tests to declare '...

  • catch committed 15ddbd8 on 8.3.x
    Issue #1273478 by BTMash, Alan Evans, kathyh: Allow tests to declare '...

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • catch committed 15ddbd8 on 8.4.x
    Issue #1273478 by BTMash, Alan Evans, kathyh: Allow tests to declare '...

  • catch committed 15ddbd8 on 8.4.x
    Issue #1273478 by BTMash, Alan Evans, kathyh: Allow tests to declare '...

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Mile23’s picture

Mile23’s picture

Mile23’s picture

Title: Fully implement @requires and mark tests with unmet requirements as 'skipped' » Fully implement @requires for Simpletest and mark tests with unmet requirements as 'skipped'
Mile23’s picture

Title: Fully implement @requires for Simpletest and mark tests with unmet requirements as 'skipped' » Implement @requires and @dependencies within TestBase, mark tests as skipped
Version: 8.3.x-dev » 8.4.x-dev
Issue summary: View changes
Status: Active » Needs review
Issue tags: -API addition
Related issues: +#1273478: Implement @requires and @dependencies within TestBase, mark tests as skipped
FileSize
6.44 KB

Rescoping a bit because the IS was way behind the times. Moving to 8.4.x because, even though it's a testing improvement, it's disruptive.

This patch does not mark tests as skipped, because Simpletest doesn't know what 'skipped' means (yet). Scope for adding a skipped status to Simpletest can be figured out here. Should it be in the patch? Should it be another issue that blocks this one?

This patch is a WIP. Please comment. :-)

Mile23’s picture

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Mile23’s picture

Mile23’s picture

#2905007: Allow run-tests.sh to report skipped/risky/incomplete PHPUnit-based tests adds some infrastructure to run-tests.sh to support skipped tests. That will make it easier to support them here eventually.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

  • catch committed 15ddbd8 on 9.1.x
    Issue #1273478 by BTMash, Alan Evans, kathyh: Allow tests to declare '...

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

needs-review-queue-bot’s picture

Status: Needs review » Needs work
FileSize
132 bytes

The Needs Review Queue Bot tested this issue. It either no longer applies to Drupal core, or fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".

Apart from a re-roll or rebase, this issue may need more work to address feedback in the issue or MR comments. To progress an issue, incorporate this feedback as part of the process of updating the issue. This helps other contributors to know what is outstanding.

Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

mondrake’s picture

Component: simpletest.module » phpunit
Status: Needs work » Closed (outdated)

With PHPUnit 10 getting extremely strict about the use of annotations to only those they support, this is pretty much outdated now.