Comments (5)
Thanks for the thoughts, @wimleers. Let's save them for later. Those issues were explicitly deferred to follow-ups "if our testing shows we need it". Per the issue title and proposal, this is scoped at getting some initial performance data and automating ongoing scans.
from composer-stager.
Cache filesystem scan results for reuse between preconditions within the same PHP process.
Is this necessary? That'd cause significant increase in memory consumption, and it'd increase linearly with the complexity of the site (i.e. more packages = more files) 😅
Isn't the fact that stat()
(and lstat()
) is cached already enough? See the clearstatcache()
docs for details.
I think a single clearstatcache()
prior to evaluating the children of NoUnsupportedLinksExist
would be sufficient to guarantee up-to-date results at all times?
Cache whole precondition check results beyond single PHP processes, with cache expiration/invalidation.
Not only would this be a huge amount of complexity to manage … but how could this possibly handle cache invalidation? You'd have to rely on inotify
on Linux, FSEvents
on macOS etc. (I know because I once built something on top of these: https://github.com/wimleers/fileconveyor.)
Run precondition checks concurrently, i.e., multithreaded.
Did PHP add multithreading support I do not know about? 😅
from composer-stager.
Adding this as a prerequisite for https://github.com/php-tuf/composer-stager/milestone/1 per @effulgentsia
from composer-stager.
Why was this removed from the v2.0.0
milestone on March 21? (I'd like to understand the rationale.)
from composer-stager.
The thinking was that even if some refactoring of the preconditions ends up being needed that it can be done without breaking APIs, so could be done in 2.1 or 2.2.
from composer-stager.
Related Issues (20)
- Get code review from Core maintainers.
- Evaluate the rector/rector dev dependency
- Evaluate the infection/infection dev dependency
- Create an issue template for security reports
- Create a governance policy
- Idea: create another repo/package with OS-specific syncers HOT 1
- Support having the active and staging directories on different drives on Windows
- Fix confusion of responsibilities between `Internal\Path\Value\Path` and `Internal\Helper\PathHelper`
- Write tests for custom test assertions in `Tests\TestUtils\AssertTrait`
- Prohibit using root directories on Windows
- Add tests that the file syncer preserves file permissions
- Support having the active and staging directories nested on Windows
- Allow symlinks on Windows
- Add precondition that active and staging directories have a common root
- Use the Composer process runner internally when running Composer commands HOT 2
- Ensure PHP 8.3 compatibility HOT 1
- Make compatible with Symfony 7 to support Drupal core 11.x HOT 2
- Add support for PHAR executables HOT 1
- Add incremental output getters to `API\Process\Service\OutputCallbackInterface`?
- Pass `--checksum` to rsync HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from composer-stager.