-
Notifications
You must be signed in to change notification settings - Fork 26
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
[r] Enumeration of Pros and Cons and different options to provide builds of the R tiledbsoma package #1427
Comments
@eddelbuettel @mojaveazure @aaronwolen It would be helpful to toss out a couple possible solutions, BUT: if you think we will be best served (and most consistent with R community practices) to just keep using the head of main, then please say so! This past week was frustrating because a new breaking change would already have been merged by the time I updated cellxgene.census to handle the last one, but, I also recognize this is just a phase we are getting through right now. cc @pablo-gar @ebezzi @atolopko-czi @bkmartinjr |
Revised this ticket with a simpler scope per realtime discussion with @eddelbuettel and @johnkerl. Original, outdated description follows here. Currently we publish tiledbsoma through r-universe which builds constantly from our In the long term, tiledbsoma should become stable enough to publish on CRAN or Bioconductor with infrequent updates. But while the package is still maturing in the short & medium term, we'd like to find a "goldilocks" way for dependent packages like cellxgene.census to pin a specific tiledbsoma version they've been tested against -- meaning there would exist some package repository archiving historical tiledbsoma versions, that we can push to more frequently as needed. It would be ideal (but not essential) for the repository to serve binaries for common platforms. |
Also related to open PRs / branches
These issue are, at least as I understand them, tied and would benefit from getting 1.0 out. There is no API change involved, it is about how we produce the packages most easily / consistently. So might this be a question better addressed post 1.0 so that we should remove the '1.0rc-r' tag here? |
@eddelbuettel I would think that a natural part of releasing 1.0 would be deciding how and where to actually release it. Imagine we've tagged 1.0rc-r; how would we tell somebody to install that version rather than whatever is the current tip of main? The r-universe build is great, it seems to me like we just need a more-controlled process to update it. |
My feeling is that this will be a lot simpler once we are at 1.0 and beyond (as we will likely release C++ and Py and R concurrently under one release version number) and maybe we should not worry too much about anything else before then are we all think we are reasonably close. Concrete proposals welcome, otherwise I do not have too much of an idea of what you consider a more controlled process. Always happy to chat, now or tomorrow or next week. |
OK, I'd propose the following:
|
That would work, but I am not sure I would recommend that. It takes the ability of using r-universe to test interim releases away, and "hacks" r-universe into something it is not. That said, this is a joint project and if this is what you and/or CZI think is best I will not stand in the way. As an alternative, it is very straightforward to host a repository with binary and release artifacts. I can expand on that. It is the same "mechanics" of what underpins access to r-universe. But my recommendation is straightforward based on both twenty+ years of uploading there as a developer and now also several years with the |
@eddelbuettel We're agreed that tiledbsoma should be published on CRAN, but:
Subject to learning more about those constraints, I think the suggested r-universe approach would be beneficial in the short term at least, while we'll still be iterating on the releases at a steady tempo (but not so frequent as every merge to |
Well -- If it were just me I would have uploaded it months ago. The code is in a public repo, it is visible, it tests and builds fine and we have been very, very clear about "it is not 1.0 yet and we may break an API". Yet none of that prohibits a CRAN upload. Thousands of packages are at CRAN that "are not 1.0 yet". (There is precious little material out there that formally defines anything, the CRAN Repository Policy is one.) But _there simply is no "build/compatibility changes request" by them. If you upload a package to CRAN and either it changes or its dependents change you are asked to keep up. No more, no less. So it all depends on what we as a team think is best, and how I can possibly help you accomodate changes from the census side of consuming the package. As discussed and shown, one approach may be an intermediate repo to host source packages -- and binary builds if you think that is what you want to do. Or if you think you need to point r-universe at different branches, you can certainly do so. It is our code repo and we can do whatever we want. |
Summary of discussion from Fri meeting:
I can think of minor pros and cons to those last two options, so I don't have a strong preference between them. |
Regarding
|
I changed the title to stress that this evolved into the sub-aspect of how and where we would provide release tarballs and builds. The process of making releases remains somewhat unaffected by this and is under fine control. |
@eddelbuettel Are we agreed on pursuing the short-term r-universe plan? (unless/until we hit some big problem with it, of course) To be clear, this is not merely a discussion/enumeration ticket. Our above-the-fold installation instructions should lead users to a version we decided to release, instead of the tip of the main branch. |
@mlin Yes as discussed in Friday's meeting. But as I stated in #1427 (comment) I am waiting to learn from @jeroen on what the simpler approach (of tagging a release tag rather than a branch is) which we assume to be feasible as |
You can set the |
You may also be interested in this post (which links to the one above) about managing versioned universes: https://ropensci.org/blog/2023/05/31/runiverse-snapshots/ |
Perfect, and thanks! Kudos also to @mojaveazure who must have read that post as he had suggested just that value (which I hadn't seen so I had to bug you for confirmation / docs). And will peruse 'managed version universes' which could be what we desired. (We had been setting branch as well as sub-dir (needed in that repo) but for "various reasons" we will now flip from |
@eddelbuettel Though we did discuss that initially, to once more repeat:
So as far as I understand, to conclude this ticket we just need to add one line to your packages.json, create a suitable branch (if using the branch approach), and update the README.md. |
Please see chanzuckerberg/chanzuckerberg.r-universe.dev#6 which adds a line in the universe file for the CZI org pointing at the CZI r-universe. So I concur that this ticket could be closed. |
@eddelbuettel Yes, thank you for that PR; as we discussed on Friday, if for some reason we cannot get on the same page in the collaborative project, then on the CZI side we will set up our r-universe to control the released tiledbsoma version in just the way we desire. But I do not understand the apparent reluctance to completing the following steps:
|
There is no functional difference between two r-universes: the feed equivalent We can surely alter other r-universe settings as well. So maybe a PR is the next step. |
@eddelbuettel Indeed, a key difference between the two r-universes is that https://github.com/single-cell-data/TileDB-SOMA/blob/main/apis/r/README.md directs users to one and not the other. So, if you anticipate you'd approve future PR by me to change that readme to point users to the chanzuckerberg r-universe (which I'll reconfigure) instead of TileDB-Inc's, then I think at last -- we have a plan. |
Yes. Changing a README once seems easier than frequently changing a branch or other plans we have moved on from. Moreover doing so would move all moving parts into your corner which should also allow you to just take care of it as you see fit. Sounds like a plan? |
I agree with @mlin that:
I think we should just update the tiledb-inc r-universe to track tiledbsoma releases. It's already setup and we've already shared the install snippet pointing to https://tiledb-inc.r-universe.dev with interested users. |
FYI this was now merged in the PR at the other r-universe chanzuckerberg/chanzuckerberg.r-universe.dev#6 If I read the page correctly it also just built per the page https://chanzuckerberg.r-universe.dev/builds |
That's fine. We should still update our r-universe to for the benefit of existing users already in the habit of installing from there. |
Currently our readme has above-the-fold instructions to install R tiledbsoma from r-universe, which rebuilds for every update to our
main
branch.As the package stabilizes, we want the default version end users (and dependent packages like
cellxgene.census
) install to be a more controlled release version, perhaps that's been vetted more thoroughly than every single merge tomain
necessarily is. Basically, the version end users get by following our above-the-fold instructions, should only change once we've decided it's suitable to release.In the long term releasing on CRAN would naturally accomplish this, but we'd like a short/medium-term solution too since it might be some months before we feel ready to publish on CRAN.
A couple possibilities:
main
branch likerelease
orr-release
, which we would only push to at appropriate times. Keep current instructions to install from r-universe and suggest some other way likeinstall_github
to get the bleeding edge.In either case, also define and document the release process.
The text was updated successfully, but these errors were encountered: