NY, US
Account created on 17 July 2003, almost 22 years ago
#

Merge Requests

More

Recent comments

🇺🇸United States drumm NY, US

Maybe instead of porting, we could just add the Event content type and functionality to d.o. main, then ?

That was done: https://www.drupal.org/community/events/ and as of today, access to create new events on groups.drupal.org is no longer available.

We have also replaced Solr-powered search with Drupal core’s default search. We are migrating and upgrading Solr servers and can no longer support indexing groups since the compatibility issues are not worth trying to solve.

🇺🇸United States drumm NY, US

GitLab is a product and not customizable like Drupal is. This sort of UI change/layer isn’t something we could reasonably implement and maintain. This would be feature requests for https://gitlab.com/gitlab-org/gitlab/-/issues

Hover over a line of code inverts the line for easier readibility (also could be a preference)

This one might be more doable standalone issue for GitLab. There are already preferences around syntax highlighting and diff colors at https://git.drupalcode.org/-/profile/preferences. And there are already some hover effects on the line numbers for merge request diffs. I briefly searched for related issues and found https://gitlab.com/gitlab-org/gitlab/-/issues/300469

Somewhere on the top right corner you have a button to reveal comment threads: one button to show and unfurl the first and one button to unfurl all.

I briefly looked for an existing issue for this one too, I did not find one. There is a “Hide all comments” option in one of the three-dot menus, so it might be doable for GitLab to add “Show all comments” next to that.

As the Drupal community, there isn’t a lot more we can do to influence GitLab’s development other than opening good issues for their product. They do have good contributor onboarding, so its doable to contribute code to them, with the huge caveats that its a huge project and changes take care, and its mostly Ruby code.

🇺🇸United States drumm NY, US

There have been significant memory usage improvements which need review linked from https://github.com/php-tuf/composer-integration/issues/127. Those could help the runtime as well.

🇺🇸United States drumm NY, US

Most often I think I see the tag not being “on the branch.” The Git history can be completely arbitrary. Actually detecting this would require some walking through the commit graph since there is a valid edge case for some security releases:

  • Development on the branch has moved on, there are many commits since the last tagged release. A security release is needed and the maintainer wants to make a release with minimal changes from the last tagged release.
  • This effectively will be a branch made from the last tagged release or even a few commits after. (There doesn’t need to be a branch, tags don’t require branches.)
  • So in this case we’d be looking at the history of the branch and tag, looking for a common ancestor that is “reasonable.” That will require some careful logic, every Git commit pair in a repository has a common ancestor, usually.
🇺🇸United States drumm NY, US

You can see the project is migrated at https://www.drupal.org/jsonapi/node/project_module?filter[field_project_...

How project browser is setting up filters for querying might be filtering out the project for some reason.

🇺🇸United States drumm NY, US

drumm created an issue.

🇺🇸United States drumm NY, US

drumm created an issue.

🇺🇸United States drumm NY, US

I’ve started work on the next phase here - configuration updates to get general projects indexed.

🇺🇸United States drumm NY, US

The orphaned pages are now at https://www.drupal.org/node/3522465

I took a first pass through deleting placeholders, obvious D6 & earlier, and a couple terrible security ideas. 101 pages remain

🇺🇸United States drumm NY, US
  - Downloading drupal/core-project-message (11.x-dev 656efa0)
    Failed to download drupal/core-project-message from dist: Maximum allowed download size reached. Content-length header indicates 10666 bytes. Allowed 10658 bytes

This is now fixed. I had put in logic that only signed each zip file once. The dev version zip archives have the Git commit ID in their name and change when a new commit is added. However, the target name drupal/core-project-message/11.9999999.9999999.9999999-dev isn’t changing and what is actually checked. The fix was https://gitlab.com/drupal-infrastructure/package-signing/packagist-signe... and https://gitlab.com/drupal-infrastructure/package-signing/packagist-signe...

🇺🇸United States drumm NY, US

We do not delete and recreate in this case. It can be changed to a theme.

🇺🇸United States drumm NY, US
  - Downloading drupal/core-project-message (11.x-dev 656efa0)
    Failed to download drupal/core-project-message from dist: Maximum allowed download size reached. Content-length header indicates 10666 bytes. Allowed 10658 bytes

This is a server-side issue. https://packagist-signed.drupalcode.org/metadata/bin_094-097.json says

   "drupal/core-project-message/11.9999999.9999999.9999999-dev": {
    "hashes": {
     "sha256": "78163df67a5207b9b0ba0ede7ff2652396f5c66ee9d6ce5f137db24d4242bd6e"
    },
    "length": 10657
   },

But https://packagist-signed.drupalcode.org/dist/drupal/core-project-message... is a different file. It was last updated Feb 3, which is around when I was shoring things up, so it's hard to say if it was a systematic issue or debris from something that was fixed. I'll look at getting that re-signed.

TUF is signing a target named drupal/core-project-message/11.9999999.9999999.9999999-dev and presumably it has a previous version of that file. For packagist-signed, dev zipballs do change location with every commit, the commit hash is in the filename. I wonder if there’s some way to use this for better error messaging or working around issues.

🇺🇸United States drumm NY, US

Now that all books have been triaged in child issues, we are left with 123 orphaned book pages. There’s some gems like https://www.drupal.org/teapot that should have a place to land, and others that can be deleted.

🇺🇸United States drumm NY, US

The comparison of modules is now at https://www.drupal.org/docs/7/extend/comparison-of-contributed-modules

The remaining module documentation is now at https://www.drupal.org/docs/extending-drupal/contributed-modules/contrib... where it can continue to be pruned, improved, moved, or left until the next major reorganization

Thanks everyone!

🇺🇸United States drumm NY, US

Update title

🇺🇸United States drumm NY, US

Adding more detail

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Automated message: Contrib modules for building the site functionality guide deleted. Moving its content one level up in the documentation hierarchy.

🇺🇸United States drumm NY, US

Update post-migration 📌 Review and migrate "Site Building Guide" book Active

🇺🇸United States drumm NY, US

The pending deletions in the issue summary are now all done

🇺🇸United States drumm NY, US

The pages mentioned have already been deleted, and work is continuing in the parent issue, 📌 Review and migrate "Site Building Guide" book Active

🇺🇸United States drumm NY, US

Yes, I’ve merged as well and everything looks good

🇺🇸United States drumm NY, US

This should be fixed now, but not closing until a couple merges go through without problems.

🇺🇸United States drumm NY, US

drumm made their first commit to this issue’s fork.

🇺🇸United States drumm NY, US

This is everything I have for this.

🇺🇸United States drumm NY, US

Unless I’m misremembering, this is not something we’ve ever done in the past for 5.x or 6.x. Moving forward with semantic versioning, it's not something that will come up again.

The bulk update process has no undo and requires a bit of attention to ensure it completes. It was never run frequently enough to justify spending the time to make it more self-sufficient. There are over 25 times more contrib 7.x issues than there were for core. So this would require at least a couple days of watching the process run.

Some contrib issues never were assigned to D8 releases and only existed in D7 branches. After EOL I went through my modules issue by issue and migrating several still relevant into the active release branch.

That is indeed the best practice. Every project’s maintainers are free to triage issues as they’d like, and we can’t generalize that closing all 7.x issues might be good for most projects.

🇺🇸United States drumm NY, US

I now have a script to migrate sections of book hierarchy. My process will be:

  • Complete deletions and anything else pending in the issue summary.
  • Starting from deeper in the book hierarchy, like https://www.drupal.org/node/779080 , do any final cleanups and migrate. An example final cleanup for a small section would be flattening child page content into a single parent page, which I have also automated.
🇺🇸United States drumm NY, US

I got together a quick script to migrate book hierarchies and have migrated:

$page = node_load(33887);
$destination_guide = node_load(28580);
$test_mode = TRUE;
//$test_mode = FALSE;

if ($destination_guide->type !== 'guide') {
  print 'Not a guide!';
  return;
}

$queue = book_menu_subtree_data($page->book);
$nids = [];
$mlid_nid = [];
while ($item = array_shift($queue)) {
  if (empty($mlid_nid)) {
    $mlid_nid[$item['link']['plid']] = $destination_guide->nid;
  }
  $mlid_nid[$item['link']['mlid']] = $item['link']['nid'];
  $queue += $item['below'];
  $nids[$item['link']['nid']] = [
    'parent' => $mlid_nid[$item['link']['plid']],
    'type' => empty($item['below']) ? 'documentation' : 'guide',
  ];
}

foreach (node_load_multiple(array_keys($nids)) as $node) {
  print $node->title . ' (' . $node->nid . ') → ' . $nids[$node->nid]['parent'] . PHP_EOL;
  if ($node->type !== 'book') {
    print 'SKIPPING ' . $node->type . PHP_EOL;
    // TODO if this was to be a guide, bad things will happen!
    continue;
  }

  $node->type = $nids[$node->nid]['type'];
  $node->language = 'en';

  // Remove the page from book schema.
  if (!$test_mode) {
    book_node_delete($node);
  }
  $node->book = [];

  $node->menu = [
    'link_title' => $node->title,
    'menu_name' => 'menu-og-' . $nids[$node->nid]['parent'],
    'parent' => 'menu-og-' . $nids[$node->nid]['parent'] . ':0',
    'plid' => 0,
    'enabled' => 1,
  ];

  // Do not create alias during intermediate save.
  $node->path = ['pathauto' => FALSE];

  // Create a revision for the migration.
  $node->revision = TRUE;
  $node->log = t('Migrating to new documentation system.');

  $node_wrapper = entity_metadata_wrapper('node', $node);

  // Summary is a new field for documentation. Lets auto-fill it
  $node_wrapper->field_summary->set(truncate_utf8(strip_tags($node->body[LANGUAGE_NONE][0]['value']), 140, TRUE, FALSE));
  if (!$test_mode) {
    $node_wrapper->save();
  }

  // Use normal path aliasing.
  $node->path = ['pathauto' => TRUE];

  // Do not create a revision for the second save.
  $node->revision = FALSE;

  // Empty out summary attached to body field.
  $node->body[LANGUAGE_NONE][0]['summary'] = '';
  // Open comments.
  $node->comment = COMMENT_NODE_OPEN;

  // Set the group reference for the node. After the initial save so field
  // changes have kicked in.
  $node_wrapper->og_group_ref_documentation->set(intval($nids[$node->nid]['parent']));
  if ($node->type === 'guide') {
    $node_wrapper->{OG_GROUP_FIELD}->set(TRUE);
    $node->og_menu = TRUE;
    $node_wrapper->field_new_page_and_guide_review->set(1);
  }
  if (!$test_mode) {
    $node_wrapper->save();
  }
}
🇺🇸United States drumm NY, US

I don’t think I’ve seen the Views UI do permissions for fields, and “is maintainer of the project” would be a few hoops to jump through. Certainly would be doable with enough custom code, but I’d like to avoid that here. And hopefully non-maintainers might help here too.

https://www.drupal.org/list-changes/drupal/drafts could get a filter for published and draft, and be renamed to something like “manage”

🇺🇸United States drumm NY, US

Thanks, this update is starting to run

🇺🇸United States drumm NY, US

Add something like we have on s.d.o, which clearly mention not to commit anything and to read the policy. I think this is beneficial and the link is also very important. So I suggest to add:

Added in https://git.drupalcode.org/project/drupalorg/-/commit/00580c709adb36c0c7..., I made the language a little more direct.

On release creation, we could offer to link the release to drafted advisories, updating that advisory’s “Fixed in” field. That’s probably the way to go. If the advisory exists, that does have a link to the specific security issue.

Done in https://git.drupalcode.org/project/drupalorg/-/commit/0b2ff674daf7908716... & https://git.drupalcode.org/project/drupalorg/-/commit/47f37bb9d44f61f67f.... This also posts to the advisory’s issue when a Fixed in release is added to the advisory.

Remaining work here is now potentially adjusting the “Release window open” message and/or timing. Details are in comment #2 & #5.

🇺🇸United States drumm NY, US

This will update 4,681 issues, which lines up with https://www.drupal.org/project/issues/drupal?text=&status=Open&prioritie... . The over-count is unpublished issues, which will also be updated.

The test issue for review is #6463: Add static caching for user_roles() . I’ve confirmed it did have draft credit assigned, which was cleared.

This needs core maintainer approval before I start the bulk update.

🇺🇸United States drumm NY, US

Can we update the new message to include also the starting time (so to inform they, that they can start commiting from 16.00 UTC on Tuesdays)? If this message will be added on 8:30 UTC on Tuesdays, there is still a gap until the commit window for maintainers opens.

Adjusting what time of day the daily messages are posted is an option too. The current time is somewhat arbitrary. My thinking so far has been that its better to be a bit early, and its better to have a maintainer make the release a few hours early than them running late.

🇺🇸United States drumm NY, US

On release creation, we could offer to link the release to drafted advisories, updating that advisory’s “Fixed in” field. That’s probably the way to go. If the advisory exists, that does have a link to the specific security issue.

🇺🇸United States drumm NY, US

automate this somehow and add a comment to the gitlab issue, when a private release is created

That’s doable, but there isn’t anything linking the release to a specific security issue. So we’d have to comment on every open security issue for the project. That’s probably not a problem, although might be annoying if there are many open security issues for the project. In any case, implementation would have to be in packaging, so the many API requests to find and comment on the issues wouldn’t delay a web request.

We might want to go ahead and post a comment for every release, including non-security, so that we can spot active maintainers who might have missed the security issue, and other unexpected workflows.

🇺🇸United States drumm NY, US

With Add details about project & branches to security issues Active , along with posting the initial comment, the issue summary is updated to include a link to the project on Drupal.org, and a link to search for the string it inserts. I’ve updated the issue summaries for all open issues to match, so we have a good idea of how this works, for example: https://git.drupalcode.org/search?group_id=183118&scope=issues&search=%2...

If we want to add or change anything, this is implemented at https://git.drupalcode.org/project/drupalorg/-/blob/863c5fa0aedff993b59a...

I think we can call this fixed, leaving open at least for a couple days for any feedback on the wording. We’ll be mostly locked into what we choose now.

A couple of implementation details:

  • The advanced search this links to has a lot more capability than https://git.drupalcode.org/groups/security/-/issues. The main issue search does not support quotes for exact matches
  • All issue searches do not index the comments. Only the issue title & description are searched. (There is advanced search for comments, but that returns a listing of comments, without full context about the issue.)
🇺🇸United States drumm NY, US

This would be implemented as something very Drupal.org-specific, there isn’t a great way to make this sort of thing generic.

There are also other dependencies which a project might have. Instead of making a wall of dependencies which are tedious to think through, I think its best to just use composer, it will always have the most accurate view of the dependencies and your site.

🇺🇸United States drumm NY, US

7.x-3.x is good for now, but this might not be implemented until we're on 1.x, unless this is particularly urgent.

Since issues are moving to GitLab, we don’t have a local DB of issues, and whether they are open or closed. So we can’t make a simple View for this.

For draft change records, we have https://www.drupal.org/list-changes/drupal/drafts which pulls in the issue status in the front-end, so closed issues can be spotted by scanning through the list. We could add the same column to https://www.drupal.org/list-changes/drupal

🇺🇸United States drumm NY, US

Looks good to me, I'm thinking this can be merged any time and tag along with other deployments?

🇺🇸United States drumm NY, US

📌 Replace “Recommended by the project’s maintainer” with stability indicator on project pages Active has some discussion:

I didn’t want the non-stable color to be too much of a warning. While we do hope production sites can run as many stable releases as possible, we also want maintainers to have some visibility for testing pre-releases.

🇺🇸United States drumm NY, US

📌 Manually test TUF-enabled Composer projects Active is where we’ve been getting some real-world testing

I think the memory usage looks a blocker: https://github.com/php-tuf/composer-integration/issues/127

Otherwise, we haven’t seen production issues in the last few weeks. When we do see them, they are hard to debug: https://github.com/php-tuf/composer-integration/issues/128

packages.drupal.org is TUF-enabled. For core, the drupal/* & php-tuf/* namespaces, there is packagist-signed.drupalcode.org to be added as another Composer repository. I’m guessing we might want a separate issue for adding the repository before packages.drupal.org

🇺🇸United States drumm NY, US

I’m not sure if this should be a requirement or not, but I have heard of contributing websites that are intranets or otherwise not accessible from the public internet. That would make any localize.drupal.org → contributing site communication impossible.

🇺🇸United States drumm NY, US

In addition to a core improvement, we can definitely get the URL redirecting to an updated documentation page, since it is linked to in the Drupal admin UI

🇺🇸United States drumm NY, US

The project has been deleted.

🇺🇸United States drumm NY, US

Projects are generally not deleted from Drupal.org. This ensures that any code people are using remains available, and is no releases are replaced with a different codebase.

Since https://www.drupal.org/project/forumpaytest was created in the last couple of days, and has no code, it can be deleted in this case.

🇺🇸United States drumm NY, US

We’ll handle any browsing requirements at 📌 [Meta] Plan for recipe Active . For now, we just need the data as soon as practically can be done.

(Off-topic - I took a quick survey of Drupal.org’s modern sites, the only reason we install ctools is pathauto, https://www.drupal.org/project/pathauto/releases/8.x-1.11 it’s general popularity should decrease, but that will take years.)

🇺🇸United States drumm NY, US

Packagist.org only ships what’s in the repository for a project, see https://github.com/composer/packagist/issues/903

To get more in line with “standard” PHP overall, I expect we’ll want to do less packaging, not more. Even the current minimal packaging can cause annoyances 📌 Packaging info from .info.yml often creates conflicts when patching (ddo) Active

🇺🇸United States drumm NY, US

I did a quick query to see what the last 1,000 published forum posts use:

   1 Drupal 10.x,Drupal 9.x,Drupal 7.x
   1 Drupal 4.5.x or older
   1 Drupal 4.6.x
   1 Drupal 6.x
   1 Drupal 7.x,Drupal 8.x,Drupal 10.x
   2 Drupal 10.x,Drupal 9.x,Drupal 8.x
   2 Drupal 7.x,Drupal 9.x
   3 Drupal 10.x,Drupal 7.x
   3 Drupal 11.x,Drupal 10.x,Drupal 9.x
   3 Drupal 11.x,Drupal 10.x,Drupal 9.x,Drupal 8.x
   3 Drupal 8.x,Drupal 9.x,Drupal 10.x
   3 Drupal 9.x,Drupal 10.x
   4 Drupal 10.x,Drupal 9.x
  11 Drupal 11.x,Drupal 10.x
  18 Drupal 8.x
  45 Drupal 7.x
  74 Drupal 9.x
  84 NULL
 133 Drupal 11.x
 607 Drupal 10.x

All but 84 (8.4%) actually do select Drupal versions. So it is used more than I expected.

With Drupal’s semantic versioning, the Drupal version is indeed a lot less significant today.

🇺🇸United States drumm NY, US

The same taxonomy vocabulary is also used on case studies, so we’ll want to consider the impact there as well.

We can order the options in any way, so Drupal CMS could be at the top.

Merging older versions would require a bulk update of old forum posts & case studies to the updated term. This would effectively lose the original data. Not necessarily a bad thing, just noting that this would take some work.

Thinking about this another way - is the Drupal version field still useful on forum posts? Removing the field is an option. This would also effectively be data loss.

🇺🇸United States drumm NY, US

Going to leave this open for building the browsing UI on new.drupal.org. That will need to be backed by search API for full text search, so there might be additional steps to getting all the requirements ready.

🇺🇸United States drumm NY, US

The work in D7 is done, maintainers with a release that is a recipe can select categories when they edit their project. (We are getting away from “project types” whenever we can, projects change types between releases.)

We are building the recipe listing in new.drupal.org, so that part does not have to be built twice. The next step is Migrate new project_general fields for recipe browsing Active

🇺🇸United States drumm NY, US

Those changes are now deployed. Please follow up to let me know if there was any change, or not.

🇺🇸United States drumm NY, US

I haven’t been able to reproduce this, but I did spot some problematic text wrapping which generally upset the layout here. Fixing that may help here.

🇺🇸United States drumm NY, US

Yep, they are release nodes, I was on autopilot with copy/paste. Runs okay with the changes applied locally for me.

🇺🇸United States drumm NY, US

I think the only remaining work here and in child issues is for me to automate bulk moving the remaining 5,806 book pages.

Of course, if there is any remaining that is outdated or duplicitous, and can be deleted, please call that out and that can be done.

🇺🇸United States drumm NY, US

Thanks, that actually has deleted everything except the archive of past events. There’s some discussion of that at 📌 Migrate documentation into the new system Active , it would be good to keep that for posterity. I’ll handle that as an automated migration before closing out that issue. There is too much structure and too many pages to make manually migrating worth the time and effort, when it can be automated.

🇺🇸United States drumm NY, US

Thanks for the work here! I’ve started going through the deletions, triple-checking and completing them.

🇺🇸United States drumm NY, US

I’ve deleted the remaining pages. Thanks!

🇺🇸United States drumm NY, US

I agree everything in this book can be deleted, and that’s now done.

Production build 0.71.5 2024