-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add vtjnash/Pidfile.jl as a new external stdlib #42571
Add vtjnash/Pidfile.jl as a new external stdlib #42571
Conversation
We should get the Did you make this PR manually? I think there's a script ( |
All it did was create the |
I still don't think this should be an external stdlib since we want to use it in Base. Regarding #42471 (comment) TOML is not an external stdlib. It has a separate repo so people can use it before it was an stdlib but it is completely in repo. Also, only the extra parts of logging (the ones not used in Base) are in the stdlib. This looks like it should just go into file system, and if filsystem gets moved out, this can go with it. |
Triage for what the best way is to incorporate this into julia. |
From triage:
|
JuliaLang/Pkg.jl#2793 appears successful, bar some unrelated windows io issues that the intensive testing uncovered
It was also suggested in the above PR to rename it to PidFiles.jl? @vtjnash what do you think? Once that's done I can update this PR |
Bump @vtjnash |
Also: can we call it PidFiles instead of Pidfile? |
Renaming packages sounds quite hard |
juliahub stats for reference https://juliahub.com/ui/Packages/Pidfile/wlmRx/1.2.0?page=2 Perhaps instead of moving the repo to JuliaLang, a new repo is created there called PidFiles and Pidfile could be deprecated? |
bump. (I thought there was support for this idea, but it feels a bit like I'm dragging it along..) |
Echoing Ian, friendly bump :). IIUC JuliaLang/Pkg.jl#2793 depends upon this work, and #42405 depends upon that, which is biting builds on master. |
Agree that making a new PidFiles stdlib and deprecating the Pidfile package seems good. Let's just do that. Mixing stdlib and non-stdlib versions is ok but probably better to avoid since we'd like a name change anyway. |
Maybe I missed something, but why not just include the functions in e.g. |
Yeah, that's actually also a good approach. |
Just for the record, that was the original proposal, albeit FileWatching rather than Filesystem #42471 The point was raised in triage about the julia repo issue/PR overload, so adding it as an external stdlib would be more aligned with helping that. See #42571 (comment) |
Okay, but how many issues/PRs can an extra ~150 LOC generate? |
I guess this needs another discussion in triage? |
Does it depend on stuff in FileWatching? |
Summary for triage: The plan from the previous triage call was #42571 (comment)
But that plan stalled at moving the repo, then the idea to rename The suggestion to deprecate Then objection was made to adding a new stdlib for ~150 LOC, and the original PR was brought up #42471 It seems to me the options boil down to:
|
triage says |
Why is the name so important? I think renaming will just be confusing. In any case, if this is added as a stdlib it can't be used for e.g. code loading anyway(?), so then it would only be Pkg that will make use of it? In that case, why not just vendor the 150 LOC into an internal Pkg module and let other users be unaffected. Stdlibs are the worst, IMO we should make everything we can to avoid making more packages into stdlibs. |
That's not true apparently. It was pointed out in triage that things like this are already done.
Triage concluded that adding a new stdlib that breaks the PackageNamingConvention would be odd. There was a lot of discussion in both triage calls. I can summarize further if needed, but I think the triage process is generally to move forward once triage has concluded? Sorry if that suggestion is frustrating @fredrikekre, I suggested re-triage and wrote the summary up hoping that interested parties would be able to join the second triage call. The course of action I see is:
|
Let me ask like this then: What will become better with this as a stdlib compared to vendored in Pkg? (I just really dislike stdlibs, thats where packages go to die.) |
Things that have been discussed
There may be more? |
Right, there are a number of cases in Pkg were this would be useful, but that would have been fixed by vendoring it too.
How? For e.g. If this is added as a stdlib people that wan't to support LTS can't use it unless it is also released as a new package in General. Then we have three versions of the package: the existing |
Putting it in Pkg doesn't seem right to me given at least @vtjnash has expressed interest in using it elsewhere in Base/other stdlibs. Perhaps more that I don't understand. Into FileWatching makes more sense I think? It's a smaller stdlib that makes sense to be used in other stdlibs & Base? The point about adding more PRs/Issues to the base repo could be abated if in the same move FileWatching is converted to an external stdlib? Although, I think there was objection to growing existing stdlibs? |
Sure, but if the plan is to use this for this to be used for such important things as precompilation and code loading it seems like it should be properly integrated into Base instead of using some hack to load it from an external stdlib? An additional benefit of that is that the API doesn't have to be stable. Putting this in a stdlib will essentially cement the package until Julia 2.0. This could be very annoying if there are necessary changes needed for Pidfile in order to make it work with all the usecases envisioned above? |
The package is dependent on FileWatching, so putting it in Base would still introduce using a stdlib in Base |
I think someone needs to make a decision here. I don't feel qualified to do so and I'm hesitant to suggest putting it to triage again. |
A last hope bump before the 1.8 cutoff. Does anyone see a clear strategy here that everyone can live with? |
Since the only current usecase is Pkg I think it should be vendored there for now and this can be revisited once there are other usecases. |
Ok. That sounds reasonable and is prepared here JuliaLang/Pkg.jl#2793 |
We also need this for |
Options:
|
After discussion in triage, we concluded that it fits best into FileWatching, being small and heavily dependent on it already anyways |
Replaced by #44367 |
Pidfile.jl will be helpful for improving multiprocess file IO concurrency across code loading precompilation, Distributed and Pkg operations to name a few
This replaces #42471
This PR started as the output of the
contrib/new-stdlib.sh
wizard.I tried to add the checksums but hit:
So I just added the MacOS ones for now.
Before merging this I guess it would be appropriate to move Pidfile to the JuliaLang org?