- Issue created by @phenaproxima
- Assigned to phenaproxima
- Status changed to Postponed: needs info
almost 2 years ago 12:42pm 20 February 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
π Mark FailureMarker @internal and document ComposerUtility, PathLocator and ValidationResult Fixed just marked
FailureMarker
internal. Why shouldn't it be@internal
?Generally speaking, it requires @phenaproxima and @tedbow to do this I think, I don't think we can ask Yash, Omkar or Kunal to take this on. I could do it perhaps, but not knowing the full history/intent, I think it'd be better for me to be the reviewer?
- πΊπΈUnited States tedbow Ithaca, NY, USA
I think this can be
core-post-mvp
based our recent discussion what is truly alpha blockers for core. I have stressed when talking to committers that if we can't break BC in Alpha in core, as is the policy, we shouldn't be trying to get into core so quickly - Issue was unassigned.
- Status changed to Active
over 1 year ago 12:16pm 17 March 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
I think all of the API refactoring stuff is out of the way for
3.0.x
at this point, with the sole exception of π Rename Stage to StageBase to clarify its relationship to its subclasses, and add "Stage" suffix to the Updater classes Fixed . But that's just a rename. We can and should start doing this now! - πΊπΈUnited States phenaproxima Massachusetts
IMHO, the stuff that should not be internal and/or final:
- PathLocator
- ComposerInspector
- Stage(Manager)
- PackageManagerKernelTestBase
- Everything in Drupal\package_manager\Event
- PathExclusionsTrait
- InstalledPackagesList and InstalledPackage (final, but not internal)
- InstalledPackage
Everything else should be explicitly internal and, unless it needs to be subclassed for testing purposes, final.
- @wim-leers opened merge request.
- π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
#10 sounds like a great starting point. I agree mostly, but disagree about a few:
- I think we should keep
PackageManagerKernelTestBase
internal. You're free to use it, but you'll have to chase test changes. That's the only way we can keep evolving it. - I disagree everything in
Drupal\package_manager\Event
should not be internal. For example,RequireEventTrait
makes no sense to not be internal. Similarly, I believe we should removeEvent/ExcludedPathsTrait
and just move those few lines of code into the concrete event classes. π Did that ine8632194f03411dc1a34989803079cdd25728760
. - I disagree about
PathExclusionsTrait
β I think instead that logic should be moved intoCollectIgnoredPathsEvent
itself β because these convenience methods make sense for every subscriber of theCollectIgnoredPathsEvent
event, not just some. So requiring the use of a non-trivial-to-discover trait to make that functionality available does not make sense to me. π Did that in2311bcf4223ccb8011d2569fd67e6a4d141fcb5a
throughe2c02c4963a90d618b8606313585c3122709ffc8
.
Given that there's now an initial MR, marking as needing review π
- I think we should keep
- Status changed to Needs review
over 1 year ago 2:11pm 18 April 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Given that π Change 'ignore'/'ignored' to 'exclude'/'excluded' for consistent naming in public API: CollectIgnoredPathsEvent vs getExcludedPaths() Fixed has now also landed, I think we should be getting this done soon π
- Status changed to Needs work
over 1 year ago 2:12pm 18 April 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Needs rebase for the past month of changes π Any takers?
- last update
over 1 year ago 753 pass, 1 fail - Status changed to Needs review
over 1 year ago 10:40am 28 April 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
The tests are only failing due to the weird mockery going on in
\Drupal\Tests\package_manager\Kernel\PathExcluder\SqliteDatabaseExcluderTest::mockDatabase()
. We're simulating::getConnectionOptions()
to return something other than what the real one would, but that's somehow failing.Will need to investigate the root cause.
But the overall proposal is still solid. So marking as needing review.
- Assigned to wim leers
- Status changed to Needs work
over 1 year ago 1:12pm 28 April 2023 - last update
over 1 year ago 757 pass, 1 fail - last update
over 1 year ago 757 pass, 1 fail - last update
over 1 year ago 757 pass, 1 fail - Issue was unassigned.
- Status changed to Needs review
over 1 year ago 8:29am 2 May 2023 - Status changed to Needs work
over 1 year ago 7:34pm 2 May 2023 - Assigned to phenaproxima
- Status changed to Needs review
over 1 year ago 4:33pm 3 May 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Yes, tests are not passing. I've already spent 30 mins banging my head against the wall. Still want review on the overall approach.
Perhaps your different perspective spots the problem right away? π
- last update
over 1 year ago 760 pass, 1 fail - last update
over 1 year ago 765 pass - Issue was unassigned.
- π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Now tests should pass!
Updated issue summary per #10 and #12.
Now the amount of remaining work becomes more clear. Still, keeping as needing review, for:
CollectIgnoredPathsEvent
absorbing functionality owned byPathExclusionsTrait
in HEAD, which I believe is a bad API surface to support- the list of remaining work
π both of those need review.
- πΊπΈUnited States phenaproxima Massachusetts
I think removing PathExclusionsTrait makes sense. Crossing that off the remaining tasks list.
- Assigned to wim leers
- Status changed to Needs work
over 1 year ago 5:04pm 4 May 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Rebasing now that π str_starts_with($path, '/') does not correctly detect absolute paths on Windows Fixed landed.
- last update
over 1 year ago Custom Commands Failed - Issue was unassigned.
- Status changed to Needs review
over 1 year ago 5:27pm 4 May 2023 - last update
over 1 year ago 767 pass - last update
over 1 year ago Custom Commands Failed - Status changed to Needs work
over 1 year ago 4:48pm 5 May 2023 - last update
over 1 year ago 767 pass - Assigned to tedbow
- Status changed to Needs review
over 1 year ago 6:10pm 5 May 2023 - πΊπΈUnited States phenaproxima Massachusetts
I think
\Drupal\package_manager\FailureMarker
should be internal.I can't think of any situation where code that isn't ours should be interacting with it. It's only a service because that was a convenient and sensible architectural decision, but it's not intended to be used by external code. It's not documented in package_manager.api.php.
- Status changed to RTBC
over 1 year ago 4:57pm 8 May 2023 - π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Review of @phenaproxima's proposal/updated MR
whoever heard of abstract final
π€£π
Diffstat
+172, β260
π€©π§Ή
β π’ ?
- Assigned to phenaproxima
- Status changed to Needs work
over 1 year ago 2:57pm 9 May 2023 - πΊπΈUnited States tedbow Ithaca, NY, USA
Should
\Drupal\automatic_updates\UpdateStage
be internal?
\Drupal\automatic_updates\ReleaseChooser
\Drupal\automatic_updates\AutomaticUpdatesServiceProvider
RequestedUpdateValidator
These are mentioned in this issue but I think they should be internal
Otherwise I think it looks good
- πΊπΈUnited States phenaproxima Massachusetts
I agree those should all be internal and, where possible, final.
- π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
Excellent catches. Agreed they should all be
@internal
. The validators and provider class can befinal
. - last update
over 1 year ago 767 pass - Assigned to tedbow
- Status changed to Needs review
over 1 year ago 3:02pm 9 May 2023 - Status changed to Needs work
over 1 year ago 3:16pm 9 May 2023 - πΊπΈUnited States tedbow Ithaca, NY, USA
I think \Drupal\automatic_updates\Validator\StagedDatabaseUpdateValidator
\Drupal\package_manager\Exception\StageOwnershipException
\Drupal\package_manager\Validator\ComposerValidator
DuplicateInfoFileValidator
\Drupal\package_manager\Validator\StageNotInActiveValidator
\Drupal\package_manager\Validator\SymlinkValidator
can be final - last update
over 1 year ago 767 pass - Status changed to Needs review
over 1 year ago 3:33pm 9 May 2023 - Issue was unassigned.
- Status changed to RTBC
over 1 year ago 3:39pm 9 May 2023 - last update
over 1 year ago 767 pass - last update
over 1 year ago 767 pass -
phenaproxima β
committed 119836ad on 3.0.x authored by
Wim Leers β
Issue #3342817 by Wim Leers, phenaproxima, tedbow: Decide which classes...
-
phenaproxima β
committed 119836ad on 3.0.x authored by
Wim Leers β
- Status changed to Fixed
over 1 year ago 4:00pm 9 May 2023 - πΊπΈUnited States phenaproxima Massachusetts
Great to finally land this! I think making almost everything final and internal to begin with is wise, and we can open up the API gradually as needed.
Automatically closed - issue fixed for 2 weeks with no activity.