On Thursday, April 30, 2020 at 3:59:49 PM UTC+8, Laurent wrote:
>
> Alex, that looks like an interesting workflow. Maybe worth a blog post? ;)
>


Well, it took longer than I anticipated, but here it is: 
https://alex-hhh.github.io/2020/05/dependency-management-in-racket-applications.html

I understand that everyone has a different workflow and my workflow will 
not be directly applicable to them, but hopefully a few ideas can be 
re-used.  I also tried to explain what I would like from a "dependency 
management" solution.

Alex.
 

>
> On Thu, Apr 30, 2020 at 12:11 AM Alex Harsanyi <[email protected] 
> <javascript:>> wrote:
>
>>
>> You could both send packages to the package catalog and instruct your 
>> users to use a different package source if they wish to use old versions.  
>> I don't see these two options in conflict with each other.
>>
>> As an application writer, I am on the other side of this problem, by 
>> depending on other packages. Having limited time to work on my project I 
>> want to upgrade package dependencies at my own pace.   The solution I found 
>> is to use git submodules and add each package as a submodule to my 
>> application.  I  construct a catalog of these packages, at an exact git 
>> commit, and simply run a raco pkg install, knowing that the exact version 
>> that I want will be there.  From time to time, I update these submodules 
>> and allow some time for fixing any problems that might result from these 
>> updates.  This has worked reasonably well so far, and I can reliably 
>> reconstruct older versions of the application knowing that all dependencies 
>> will be correct for that old version.
>>
>> For my part, for any packages that my application depends on, their 
>> authors can make any breaking changes they want, as this will not 
>> immediately break my application.  At a later date I can review these 
>> changes, update my application and move to the new version.
>>
>> The only downside is that installed packages are at "user scope" rather 
>> than "application scope" so once installed from the git submodules, that 
>> package becomes available to all applications on my computer.   So far this 
>> has not been a real issue, although I had to uninstall, switch catalogs and 
>> re-install a few times.
>>
>> I personally regard pkgs.racket-lang.org as the source for the latest 
>> package versions, for users which just started using the package. Users who 
>> need precise versioning, can always setup their own package catalogs (i 
>> discovered that it is a really simple process)
>>
>> Alex.
>>
>>
>> On Thursday, April 30, 2020 at 12:47:25 AM UTC+8, Sage Gerard wrote:
>>>
>>> April 9th in the #general Slack channel taught me that there was no 
>>> clean way to
>>> release a breaking change in a package. I'm open to working on version 
>>> pinning
>>> support in raco pkg provided that a maintainer can walk me through some 
>>> code.
>>>
>>> In the meantime, as much as I appreciate the efforts made in the current 
>>> system,
>>> I'm considering stopping my contributions to the package catalog until 
>>> further notice.
>>> I'm open to submitting packages if I am confident in their longevity, 
>>> but I don't want
>>> to end up in the position I've been in for the last few weeks when 
>>> planning a release.
>>> That position being an inability to release an edition that is not in 
>>> some way "aware"
>>> of a prior edition. In my view, changing the package/collection name is 
>>> an
>>> example of that problem, not a solution to it.
>>>
>>> I'm considering asking my users to specify different package sources in 
>>> their info.rkt
>>> files when dealing with my work. Before I commit to that decision, I 
>>> wanted to tap into
>>> those of you who have already been here. How have you handled breaking 
>>> changes
>>> for your projects? How have you communicated with your users to make 
>>> sure they
>>> were adequately prepared? Am I being too black-and-white about this?
>>>
>>> *~slg*
>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/racket-users/b3b54ccf-b4f1-425e-802a-110d5ac26591%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/racket-users/b3b54ccf-b4f1-425e-802a-110d5ac26591%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/ddfa63d5-974b-43af-969c-df147470920f%40googlegroups.com.

Reply via email to