# Build Tools Team Sync Notes ### Session 28: Build Tools Team Sync (March 13, 2025) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Schuyler Martin | SM | Anaconda | | Ken Odegard | KO | Anaconda | | | | | | | | | | | | | | | | | | | | | 5 people #### 📢 Announcements - [ ] ... #### Agenda Items - [ ] (WV) Define the `cache` key for v1 multi-output recipes https://github.com/conda/ceps/pull/102 - [ ] Is there a better name than `cache`? - `pre-process` - `prepare` - `staging` - [ ] (KO) Updates on `feedrattler`? - [ ] (SM) What is the future of recipe parser? - [ ] (SM) How do we improve this meeting structure? E.g. starting on time? Topics to discuss? Etc. #### To Do/Follow Up - [ ] ... ### Session 27: Build Tools Team Sync (January 13, 2025) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Ken Odegard | KO | Anaconda | | Wolf Vollprecht | WV | prefix.dev | | Schuyler Martin | SM | Anaconda | | Albert Defusco | AD | Anaconda | | Jean-Christophe Morin | JCM | Anaconda | 5 people #### 📢 Announcements - [ ] ... #### Agenda Items - [ ] Discussed circular dependency issues for Python 3.13 buildout - [ ] libconda - [ ] Using rattler-build to build conda and CLS simultaenously - [ ] Mentioned Travis' conda-rlock - [ ] Wolf presents on cache work - [ ] https://github.com/conda/ceps/pull/102 - [ ] Wolf reminds group on open CEPs - [ ] https://github.com/conda/ceps/pull/110 #### To Do/Follow Up - [ ] ... * * * ### Session 26: Build Tools Team Sync (January 9, 2025) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Ken Odegard | KO | Anaconda | | Dasha Gurova | DG | Anaconda | 2 people #### 📢 Announcements - [ ] n/a #### Agenda Items - [ ] Updating Zoom link - [ ] Catching up #### To Do/Follow Up - [ ] n/a * * * ### Session 25: Build Tools Team Sync (December 12, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Ken Odegard | KO | Anaconda | | Dasha Gurova | DG | Anaconda | | Wolf Vollprecht | WV | prefix.dev | 3 people #### 📢 Announcements - [x] (WV) New release of rattler-build #### Agenda Items - [x] (WV) Quick demo of pixi-build - [x] Checkout https://github.com/wolfv/pixi-build-examples - [ ] Checkout CEP for `cache` key https://github.com/conda/ceps/pull/102 #### To Do/Follow Up - [ ] (KO) Create issue regarding conda-build/rattler-build testing pre-unlinking scripts * * * ### Session 24: Build Tools Team Sync (November 14, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Bianca Henderson | BH | Anaconda | | Ken Odegard | KO | Anaconda | | Wolf Vollprecht | WV | prefix.dev | | Jaime Rodríguez-Guerra | JRG | Quansight | 7 people #### 📢 Announcements - [x] (BH) I am leaving Anaconda at the end of November 2024, thanks for all of the awesome build tools discussions! #### Agenda Items - [x] (BH) We might need to create a more well-defined team of folks who respond to issues for various build tools repositories, namely [conda-build](https://github.com/conda/conda-build) and potentially [rattler](https://github.com/conda/rattler); ideally this would be a subset of the [Build Tools team](https://github.com/orgs/conda-incubator/teams/builds-tools), but anyone is welcome to volunteer and participate - [ ] (WV) new features in rattler-build - [x] trusted publishing - No longer requires GitHub Actions - However, it currently only works on [prefix](https://prefix.dev/channels) - https://prefix-dev.github.io/rattler-build/dev/authentication_and_upload/#trusted-publishing-via-oidc - [x] sandbox - [x] new flags: - [x] `--noarch-build-platform` - [x] `--run-tests` / `--no-test-if-emulate` (opinions?! :) - [ ] JRG: Mimic options of https://conda-forge.org/docs/maintainer/conda_forge_yml/#test in an enum of choices? - [x] (WV) optional dependencies - [x] https://gist.github.com/wolfv/9a84b8881826851de6ff44e1e88fd4ad #### To Do/Follow Up - [ ] (initials) item * * * ### Session 23: Build Tools Team Sync (October 10, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Bianca Henderson | BH | Anaconda | | Schuyler Martin | SM | Anaconda | | Ryan Keith | RK | Anaconda | | Daniel Holth | DH | Anaconda | | Lilly Winfree | LW | Anaconda | 8 people #### 📢 Announcements - [x] (BH) Welcome back to the build tools team syncs! These will recurr every 2nd Tuesday of each month, with some intermittent cancelations due to holidays etc. - [x] (BH) [Conda-build 24.9.0 release](https://github.com/conda/conda-build/releases/tag/24.9.0) was completed recently - [x] (AD) [Hatch Conda-Build](https://github.com/costrouc/hatch-conda-build) is getting moved to the Conda Incubator org at some point - Python package recipe + package created in basically one step - Can use Rattler or Boa - Hatch might have plugins for other tools/languages #### Agenda Items - [x] (BH) Conda-forge has recently started to adopt the [V1 recipe format](https://github.com/search?q=org%3Aconda-forge%20path%3Arecipe%2Frecipe.yaml&type=code)! #### To Do/Follow Up - [ ] (initials) item * * * ### Session 22: Build Tools Team Sync (May 23, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Bianca Henderson | BH | Anaconda | | Marcel Bargull | MB | Bioconda/cf | | Jaime Rodríguez-Guerra | JRG | Quansight/cf | | Mark Anderson | MA | Anaconda | | Wolf V | WV | prefix.dev | 5 people #### 📢 Announcements - [x] (BH) [Conda-build 24.5.1 patch release](https://github.com/conda/conda-build/issues/5319) will be tagged soon. Will include: - [Fix excessive memory use in inspect_linkages_lief #5348](https://github.com/conda/conda-build/pull/5348) (merged) - [Fix frozendict usage #5345](https://github.com/conda/conda-build/pull/5345) (approved but not yet merged) - (JRG): Can we request additions? :D i.e. https://github.com/conda/conda-build/pull/5350 #### Agenda Items - [x] (JK) Automating deprecation cleanup across projects - https://github.com/conda/conda-build/issues/5343 - [x] (WV) Stabilizing the CEPs ... some more work on the line - [ ] [Recipe serialization](https://github.com/conda/ceps/pull/74) - [ ] [Jinja functions](https://github.com/conda/ceps/pull/71) - [ ] Looking for people to work on this together / pairing sessions. Ideally over the next couple of weeks - [x] (WV) Two more CEPs need to be written - [ ] Test serialization - Any thoughts re: putting tests in separate packages? - [ ] Variant configuration / rattler-build configuration - This has not gone through any sort of standardization effort and it would be good to tidy this up and figure out how to configure builds and variants - [x] (WV) Work on [reproducible builds](https://github.com/nichmor/reproducible-builds-rattler-build) has begun - [`diffoscope`](https://diffoscope.org/) - [Debian's reproducible builds graph](https://tests.reproducible-builds.org/debian/unstable/amd64/stats_pkg_state.png) #### To Do/Follow Up - [ ] (initials) item * * * ### Session 21: Build Tools Team Sync (April 18, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Schuyler Martin | SM | Anaconda | | Ken Odegard | KO | Anaconda | | Bianca Henderson | BH | Anaconda | | Ian Fitchet | IF | Anaconda | | Jaime Rodríguez-Guerra | JRG | Quansight/cf | | Wolf Vollprecht | WV | prefix.dev/cf | | Jean-Christophe Morin | JCM | Anaconda | | John Kirkham | JK | Nvidia/cf | 8 people #### 📢 Announcements - [x] (SM) [~85%](https://github.com/conda-incubator/conda-recipe-manager/pull/13) of Anaconda Recipes can be "successfully" converted to the new format - "Success" means no crashing, no errors detected. - Error detection not guaranteed to be perfect - Success does not mean the output conforms to the standard/is consumable by rattler-build - We have [integration tests running](https://github.com/conda-incubator/conda-recipe-manager/pull/29) against rattler-build. - Conversion phase: ~80% succeed (bioconda + conda-forge samples) without an error across all data sources - Dry-run build: ~10% of bioconda passes, ~64% of the conda-forge sample - [x] (BH) Next Build Tools sync (which is usually scheduled every 4 weeks) will be moved to happen one week later on May 23rd due to PyCon US '24 - [x] (BH) 24.5.0 (May) release of conda-build is under way earlier than usual due to PyCon and other timing-related events. - The `24.5.x` release branch will most likely be cut by April 26th or 29th, so please ensure any feature work you'd like to have in [24.5.0](https://github.com/conda/conda-build/milestone/40) is completed over the next week #### Agenda Items - [x] (KO) How do we (should we?) encourage members of the GitHub build-tools team to participate more on PR reviews? - Post requests for code reviews on Matrix build-tools channel (conda-forge maintainers are usually overwhelmed with GH notifications so need to be creative with bubbling up important PRs) - There's not much visibility on what's considered important in relation to PR reviews, this is an area for improvement - Add something to the conda-build README about the build tools team so other community members can join/participate? - Need to breakdown intimidation factor for community members contributing via reviews/merging - [x] (JRG) Speaking of PRs: thoughts on [`content_sha256` and friends](https://github.com/conda/conda-build/pull/5277)? - Please post questions/comments on the [related issue](https://github.com/conda/conda-build/issues/4762) - [x] (KO) FYI regarding [deprecating `noarch_python_build_age`](https://github.com/conda/conda-build/pull/5298) - [Related issue](https://github.com/conda/conda-build/issues/5297), for any questions/comments/concerns - [x] (WV) Review new CEPS - [add recipe extension cep #72](https://github.com/conda-incubator/ceps/pull/72/files?short_path=37ced16#diff-37ced165c21016c1ba7f959e139bf6ea2ce86f0a4e9e9371715cc062979f4c90) - [Recipe format: Rendered recipe YAML and serialization](https://github.com/wolfv/ceps/blob/cep-recipe-serialization/cep-recipe-serialization.md) * * * ### Session 20: Build Tools Team Sync (March 21, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Bianca Henderson | BH | Anaconda | | Ken Odegard | KO | Anaconda | | Schuyler Martin | SM | Anaconda | | Marcel Bargull | MB | Bioconda/cf | | Mark Anderson | MA | Anaconda | | Jaime Rodríguez-Guerra | JRG | Quansight/cf | 6 people #### 📢 Announcements - [x] (BH) [conda-build `24.3.0`](https://github.com/conda/conda-build/releases/tag/24.3.0) has been released and is available on the `defaults` channel (not yet available on conda-forge) - [Rebuilding for Python 3.12 support #219](https://github.com/conda-forge/conda-build-feedstock/pull/219) conda-forge PR is still pending - [x] (BH, KO) We're working on [deprecating `conda_build.conda_interface`](https://github.com/conda/conda-build/pull/5222) - [`conda_build.conda_interface` is getting deprecated #2117](https://github.com/conda-forge/conda-forge.github.io/issues/2117) (a related conda-forge meta issue) - [x] (BH, KO) We've [enabled CodSpeed](https://github.com/conda/conda-build/pull/5233) for benchmarking tests and improved communication around speed-ups - [Add benchmark for high `pin_subpackage` count recipe #5246](https://github.com/conda/conda-build/pull/5246) is an example PR that implements this - @jaimergp asked: Would the CodSpeed setup work with the conda-smithy rerenders? - [x] (SM) [conda-recipe-manager](https://github.com/anaconda/conda-recipe-manager) (formerly a part of `percy`) will be moving to `conda-incubator` soon! - `conda-incubator`: https://github.com/conda-incubator #### Agenda Items - [ ] (JRG) [NEW: Better package splitting for multi-output recipes with negative glob in outputs/files #5216](https://github.com/conda/conda-build/pull/5216) - Multi-output has not been fully implemented with the new recipe format - (MB) Modifying old format isn't something to approach in a non-nuanced way - (MA) We should keep in mind that the new recipe format isn't at feature-parity yet - Marcel asked: What is Anaconda's plan in relation to rattler-build and other implementations for new recipe format? Marcel tends to approach things in a conservative way with the understanding of things being guaranteed to work for X number of years, and prefix.dev is a new company so we don't know how long will they plan to support rattler-build - (KO) The main plan is to clean up conda-build and clean up tech debt, then make conda-build more modular and pluggable so that we can implement usage of rattler-build - [Support SHA224, SHA384 and SHA512 source hashes. #4793](https://github.com/conda/conda-build/pull/4793) - [ ] (WV) CEPs - [add recipe extension cep #72](https://github.com/conda-incubator/ceps/pull/72) - [add initial CEP for recipe serialization #74](https://github.com/conda-incubator/ceps/pull/74) #### To Do/Follow Up - [ ] (KO) Create blog post to announce a community decision on when and how to update the old recipe format (if at all) * * * ### Session 19: Build Tools Team Sync (February 22, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Schuyler Martin | SM | Anaconda | | Bianca Henderson | BH | Anaconda | | Marcel Bargull | MB | Bioconda/cf | | Daniel Holth | DH | Anaconda | | Justin Wood (Callek) | JW | Anaconda | | Ken Odegard | KO | Anaconda | 9 people #### Announcements - [x] 📢 Package builders (et al), please try out [rattler-build](https://prefix-dev.github.io/rattler-build/latest/) (is [`rattler-build action`](https://github.com/prefix-dev/rattler-build-action) a good way to do this?) - For some reference: [rattler-build-examples](https://github.com/wolfv/rattler-build-examples) - [x] (SM) Percy's Recipe Parser _might_ be moving, pending conversations next week. - Currently working on `test` -> `tests` - Would be nice to build an intergration testing pipeline with `rattler-build` at some point. #### Agenda Items - [x] (DH) It was hard to develop conda-libmamba-solver and all its dependencies using conda-build because it was necessary to freeze the exact versions / build numbers / ideally, exact files of several layers of dependencies to install the desired patched code; is there a way to make this easier (or more discoverable?) - [x] (KO) [Miro board workflow](https://miro.com/app/board/uXjVP0z1_BY=/) has been converted into a [mermaid chart/GH issue](https://github.com/conda/conda-build/issues/5194) - [x] (MB) Prepping Python 3.12 conda-build CI - Currently hacking on new LIEF build https://github.com/conda-forge/lief-feedstock/pull/42 - [x] (MB) Purging legacy code paths in conda-build; improving resource usage - No progress on https://github.com/conda/conda-build/issues/5154 Any takers? - Maybe Jaime? 😁 #### To Do/Follow Up - [ ] (JRD) Take a look at [Remove old full-index-in-memory loading and conda.plan-related solver handling #5154](https://github.com/conda/conda-build/issues/5154) conda-build issue linked above - [x] (BH/KO) Planning 24.3.x release of conda-build * * * ### Session 18: Build Tools Team Sync (January 25, 2024) #### Participants | Name | Initials | Team/Affiliation | |------------------------|----------|------------------| | Schuyler Martin | SM | Anaconda | | Marcel Bargull | MB | Bioconda/cf | | Bianca Henderson | BH | Anaconda | | Ken Odegard | KO | Anaconda | | Cheng H. Lee | CHL | Anaconda/cf | | Jaime Rodríguez-Guerra | JRG | Quansight/cf | 12 people #### Announcements - [x] 📢 Design/Architecture team call for members (we need folks from conda-forge, prefix and bioconda) #### Agenda Items - [x] (SM) Deeper dive/Q & A about the percy parser - [Slides from last week](https://docs.google.com/presentation/d/1G2BiX7Mjz2b5_RzAbIvVZs3G9dHJFZlRUXKTsT1kdFs/edit?usp=sharing) - [POC recipe conversion function PR](https://github.com/anaconda-distribution/percy/pull/106) - [x] (MB) `Dist` removal from `conda-build` marked as [ready for review](https://github.com/conda/conda-build/pull/5074) only just today. - Function/behavior should be the same as before. - Legacy index handling and solver invocation (formerly in `conda.plan` now in `conda_build.environ`) will be replaced in a subsequent PR just after `conda-build=24.1` is released. - Goal is to reduce CPU/memory usage by benefitting from https://github.com/conda/conda/pull/12050 . - Should also (hopefully) remove any `conda-build`-special-handling in `conda.core.solve`/`conda_libmamba_solver.solver`. - [x] (KO) conda-build workflow diagram - [Miro board](https://miro.com/app/board/uXjVP0z1_BY=/?share_link_id=509653890868) - Anaconda has edit access, non-Anaconda has comment access (if you desire edit access I believe I can add it if you share your email) - Happy to move to another service if that makes collaboration easier #### To Do/Follow Up - [x] Update/expand on conda-build workflow diagram on [Miro board](https://miro.com/app/board/uXjVP0z1_BY=/?share_link_id=509653890868) * * * ### Session 17: Build Tools Team Sync (November 30, 2023) #### Participants | Name | Initials | Team/Affiliation | |------------------|----------|------------------| | Marcel Bargull | MB | Bioconda/cf | | Ken Odegard | KO | Anaconda | | Bianca Henderson | BH | Anaconda | | Travis Hathaway | TH | Anaconda | | Mark Anderson | MAA | Anaconda | 12 persons #### Announcements - [x] [Tracking issue to enable rattler-build in conda-forge #2035](https://github.com/conda-forge/conda-forge.github.io/issues/2035); please take a look and comment on the linked CEPs with any thoughts/points of discussion: - [add cep for definition of new keys & values in build format #56](https://github.com/conda-incubator/ceps/pull/56) - [A new test for file existence inside a package (for the new recipe format) #57](https://github.com/conda-incubator/ceps/pull/57) #### Agenda Items - [x] (MB) Package cache handling in `conda-build` - Built packages copied to main package cache for tests/subpackage builds. - Apart from user-facing issues, this causes concurrency issues in `conda-builds`'s tests. - Daniel Holth has been looking into adding locks to pkg cache: - https://github.com/conda/conda/issues/11078 - https://github.com/conda/conda/issues/13037 - https://github.com/conda/conda/issues/13055 - We'll also need to rework the pkgs/ structure to account for multiple subdirs / channels (right now it assumes unique filenames only). OR change conda-build to include the subdir in the hash. - Another potential solution: use a pytest fixture that sets `CONDA_PKGS_DIRS` to `tmp_path` _on top_ of the general cache, and then carefully resyncs the temporary cache back to global. This would be more short-term; the real fix should happen at the conda level (see dholth comment above^). - CI flakiness issue https://github.com/conda/conda-build/issues/5078 - [x] (MB) \[WIP\] Removal of `Dist`-based index in `conda-build` - Tracking issue: https://github.com/conda/conda-build/issues/5069 - Version bump?! - Affects downstream uses of `conda_build` as a library. - CEP-9-like deprecation handling? - JRG: [Usage in conda-forge](https://github.com/search?q=org%3Aconda-forge+%2F%28from%7Cimport%29+conda_build%2F+language%3APython&type=code). A few instances, but should be ok to adjust if necessary. [`boa` is also a user](https://github.com/search?q=org%3Amamba-org+%2F%28from%7Cimport%29+conda_build%2F+language%3APython&type=code). We'll need to be careful to avoid dependency update deadlocks in conda-forge (new conda-build version available with nice features, but boa is incompatible, then we pin the upper bound, and we can't update to conda-build... yadda yadda). - Relatedly, also remove any `conda.plan` usage. - Should incidentally resolve issues like https://github.com/conda/conda-libmamba-solver/issues/393 . - [x] (KO) Do we need https://github.com/conda/conda/pull/13365 and https://github.com/conda/conda-build/pull/5083 for the November releases? - No. #### Actions - [ ] * * * ### Session 16 (November 16, 2023) #### Participants | Name | Initials | Team | |-------------|----------|------| | Ken Odegard | KO | Ursa | | Bianca Henderson | BH | Ursa | | Mark Anderson | MAA | Perseverance | | Ryan Keith | RK | Perseverance | XX persons #### Announcements - [ ] #### Agenda Items - [x] (KO) Review conda-build recipe CEPs - [x] [CEP-13](https://github.com/conda-incubator/ceps/blob/main/cep-13.md) New conda-build recipe format - [x] WIP Definition of new keys/values in recipe format [ceps#56](https://github.com/conda-incubator/ceps/pull/56) - [x] WIP A new test for file existence inside a package (for the new recipe format) [ceps#57](https://github.com/conda-incubator/ceps/pull/57) - [x] WIP Jinja selectors CEP - [x] (BH) Would like some help understanding this ["`stdlib` jinja function" discussion](https://github.com/conda/conda-build/issues/5053) - A useful doc on working in a consensus-based environment (shared by Daniel Petry): [On Consensus and Humming in the IETF](https://datatracker.ietf.org/doc/html/rfc7282) #### Actions - [ ] (everyone) Review and keep up with the CEPs listed above and add comments/thoughts if applicable * * * ## Session Notes ### Session 15: Build Tools Team Sync (November 2, 2023) #### Participants - [Jaime Rodríguez-Guerra](@jaimergp) (Quansight/conda-forge) - [Ken Odegard](@kenodegard) (Anaconda) - [Bianca Henderson](@BsAon4gZTomqn3GvHas-gg) (Anaconda) - [Wolf Vollprecht](@wolfv) (prefix.dev/conda-forge) 12 people total #### Announcements - [x] New attendee intros! * Where do you work? * What made you interested in the Build Tools team? - [x] (BH) Some background info on these meetings - [x] (BH) Sync meeting cadence: once every 4 weeks (if we regularly have too many topics to cover within an hour, we can increase cadence to once every 2 weeks), 12pm EST (following UTC, like the conda community sync/conda-forge core meetings) every other Thursday. #### Agenda Items - [x] (DP) can somebody please review my PR: https://github.com/conda/conda-build/pull/5039 - [x] (BH) [Build Tools Roadmap](https://hackmd.io/@BsAon4gZTomqn3GvHas-gg/HkzDphaWT) - Q1/Q2 2024 focus - [x] (JRG) Update on [CZI EOSS6 submission](https://conda-forge.org/docs/orga/funding/00_intro.html#submitted-but-not-yet-decided): LOI selected for full application. - Submission of application by December 5 - If accepted, work will most likely start June 2024 - Any feedback/comments please message on Matrix or on `#rocket-team-ursa` Slack channel (for internal Anaconda folks) - [x] (JRG) New CEP for conda-build format (https://github.com/conda-incubator/ceps/pull/56) - [x] (JRG) constructor and conda-pack: [potential unification](https://github.com/conda/conda-pack/issues/294)? #### Actions - [ ] (KO) Make these notes more public like conda-forge/community call notes * * * ## Session Notes ### Session 14 (October 5, 2023) #### Participants - Bianca Henderson (Ursa) - Dave Clements (Mystery Team, even to me) - Ryan Keith (Percy) - Ken Odegard (Ursa) - Carl Anderson (Platform) - Ian Fitchet (Perseverance) - Kyle Leaders - Daniel Komisar 13 people total #### Announcements - [x] New attendee intros! * What department do you work in? * What made you interested in the Build Guild? * Ian F, Daniel P, Kyle L, and Daniel K - [x] (BH) New community Build Tools Team has been officially implemented! If you're interested in being part of that team, please add a comment to the [related conda-build issue](https://github.com/conda/conda-build/issues/4698)! #### Agenda Items - [x] (BH) [Conda-Build + MSYS2 Weirdness](https://github.com/anaconda-distribution/distro-incubator/blob/main/ifitchet/MSYS2/conda-build-flaw.md) :popcorn: - Just bringing awareness to this work, a pod is assigned and working on it - The main issue is that conda-build uses the PATH it was launched from vs the PATH of the env in which it was building (?) - Running stuff off the target env PATH would fix this problem - Pod's goal is to implement a fix in Q4, but it's a bit complicated - [x] (DPC) [Quansight (Jaime) and Prefix (Wolf) proposal](https://hackmd.io/m_dJizu9TWGRI8RprLO-Yg) - They will be submitting this to [CZI EOSS 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) - They are looking for feedback. - [x] (DPC) Germany's Soveriegn Tech Fund has awarded a grant to Prefix to work on rattler-build conda-forge integration (and libsolv - Rust port; and conda-forge reproducibility evaluation too) - [x] (BH, KO, RK) Objectives/goals for the Build Tools Team - Conda-build roadmap? - Discussions about automation - Build system security - Points to focus on for improvement (e.g., noarch work) - Should these meetings be more like a "roundtable" style discussion/sync or could we actively map out "ideal conda-build architecture" etc. together? #### Action Items - [ ] (Everyone) Leave comments/give feedback (if any) on [Quansight (Jaime) and Prefix (Wolf) proposal](https://hackmd.io/m_dJizu9TWGRI8RprLO-Yg) - [ ] (BH, KO, RK) Create a draft conda-build roadmap/priorities Miro board * * * ### Session 13 (September 7, 2023) #### Participants - Dave Clements (lost in the reorg ether) 7 people total #### Announcements - [ ] New attendee intros! * What department do you work in? * What made you interested in the Build Guild? - [ ] (BH) If you're interested in joining the conda-build team under the conda governance policy and you don't see your name on the list in [this issue](https://github.com/conda/conda-build/issues/4698), please contact me and/or reach out to Jannis on the #build-guild Slack channel so you can be added #### Agenda Items - [ ] (KO) Do we need `bdist_conda.py` in conda-build anymore? - [related documentation page](https://docs.conda.io/projects/conda-build/en/stable/user-guide/recipes/build-without-recipe.html) - [conda-build#4985](https://github.com/conda/conda-build/issues/4985) - [ ] (KO? BH?) We have an issue to deprecate [`build/noarch_python`](https://github.com/conda/conda-build/issues/4990) - [ ] (Schuyler - Preliminary, don't get too excited) [`percy`](https://github.com/anaconda-distribution/percy) parse tree experiments. - [ ] (Schuyler - Preliminary, don't get too excited) `mypy` + `pylint` experiments on new projects. #### Action Items - [ ] Bring up [`bdist_conda` deprecation](https://github.com/conda/conda-build/issues/4985) in bi-weekly conda community call (and possibly put in a comment on the [`#ask-conda` Slack channel](https://anaconda.slack.com/archives/C0447BASB5E)) - [ ] Bring up [`build/noarch_python`](https://github.com/conda/conda-build/issues/4990) deprecation with conda community meeting * * * ### Session 12 (August 10, 2023) #### Participants - Bianca Henderson (Ursa) - Carl Anderson (devops) - Cheng Lee - Mark Anderson (Perseverance) - Schuyler Martin - Ryan Keith - JC Morin - Justin Wood 8 people total #### Announcements - [ ] New attendee intros! * What department do you work in? * What made you interested in the Build Guild? #### Agenda Items - [x] What types of discussions/questions do we want to have on `#build-guild` Slack channel? - For example, Jannis pointed out this question from `#ask-conda`: https://anaconda.slack.com/archives/C0447BASB5E/p1690915593427569 - [x] Is there a central queue of some sort where all requested packages are listed? (for Ursaverance work) - https://anaconda.atlassian.net/jira/software/c/projects/PKG/boards/222/backlog?issueLimit=100 - [x] ["Option to generate `run_exports.json` file"](https://github.com/conda/conda-index/issues/102) issue [brought up by Carl Anderson in Slack](https://anaconda.slack.com/archives/C05B9MPGR4Y/p1690821527162379) - [Related CEP](https://github.com/conda-incubator/ceps/pull/51) - [carl] will look into `channeldata.json` to see if it's reliable enough to propose using as source for a first version, served by the CF worker - the real source of truth should be found in the contents of the package `/info` files. - [x] ["conda build" is not found even if conda-build is installed. (miniconda update issue?) #12955](https://github.com/conda/conda/issues/12955) - This issue will be brought up during Ursa Refinement meeting (will ask if at minimum we'll make an edit to the 3.27.0 release notes OR if this warrants a hotfix) - [x] [Jean-Christophe asked](https://anaconda.slack.com/archives/C05B9MPGR4Y/p1691018831311489): "Is there a reason `skip_build_id` isn't documented and would there be any interest in possibly making it public and fixing this use case?" ([code for reference](https://github.com/conda/conda-build/blob/ff714fd8753ba48937ef3fd1401b55ca1e64d744/conda_build/jinja_context.py#L439)) - Specifically JC would like to: "pin to the exact version + build number of a subpackage, but not the hash. `pin_subpackage('package-name', exact=True)` pins to the full hash + build number" - Cheng asks: why isn't this documented? - If/when an issue is created, it can be brought up in conda-forge or conda community meeting where we can work with folks like Wolf V. in order to improve the recipe format - If/when an issue is created it will be brought up during Ursa Refinement meeting - [x] 3.27.0 release will be happening in September (not too far away!); there's currently one issue in the [milestone list](https://github.com/conda/conda-build/milestone/36), are there perhaps one or two more that should go on there? - [Backlog issues list](https://github.com/orgs/conda/projects/2/views/13) that is available to look through - [x] `@RyanKeith` Review of what is and is not deprecated in the conda-build repository - Possibly file an issue, this should be straightforward to find - [x] `@canderson` CEP to standardize `repodata.json` schema (@mmeyer and @canderson flirting with the idea - pile-ons welcome) - Probably make this a subtask of [conda/ceps#52](https://github.com/conda-incubator/ceps/issues/52) (schema revamp) - [x] `@canderson` reproducible builds - is this (im)possible in current `conda-build`? - [Reproducible Builds info](https://reproducible-builds.org/) - [Debian Strategy](https://salsa.debian.org/reproducible-builds/reprotest) - Comments in chat from `@chenghlee` - `-DBUILD_HOST=hostname` is a thing I've seen in more than one makefile - `ar` embeds timestamps in .a files, IIRC. You have to build a custom binutils - I think the question could be reframed as, "Assuming everything else supports reproducible builds, what would conda build need to provide?" - I'm not sure `.pyc` files can be reproducibly generated - Comments from `@jc`: - Nice stats from Debian: https://tests.reproducible-builds.org/debian/reproducible.html - Arch: https://tests.reproducible-builds.org/archlinux/archlinux.html * * * ### Session 11 (July 13, 2023) #### Participants - Bianca Henderson (Ursa) - Dave Clements (Ursa-ish) - Ryan Keith (Percy) - Carl Anderson (dev-ops/sirius) - Ken Odegard (Ursa) - Justin Wood (sirius) 7 people total #### Announcements - [x] New attendee intros! - What department do you work in? - What made you interested in the Build Guild? - [x] New version ([3.26.0](https://github.com/conda/conda-build/issues/4926)) is getting released soon (sometime in July, along with [conda 23.7.0](https://github.com/conda/conda/issues/12849)) - Slightly delayed, but in process #### Agenda Items - [x] Change release cycle numbers per [CEP 8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md)? (this topic needs to be discussed during Community Sync meeting as well) - Change conda-build versions to CalVer from SemVer. Will agree with conda and libmamba release numbers. - Currently no roadmap for conda-build to get to ver 4.0. - KO: Deprecation policy is what lets us move to CalVer. - [x] Skeleton deprecation: https://github.com/conda/conda-build/issues/4640 - RK: It would behoove us to have skeleton function that we own. We are losing something. - This is my bread and butter. - Beginning to give ourselves more permisison to do tool dev - KO: For python packages, Grayskull covers everything. For other languages, not as much. - Spinning Skeleton out into its own package is a viable option. - RK would support this. - [x] Who is interested in being added to the list of conda-build community project members/contributors? https://github.com/conda/conda-build/issues/4698 - BH: Think about joining this effort. Add comment in GitHub, or on build guild slack channel. - KO: Trying to get separate teams for different repos in conda GitHub org. Less monolithic. - [x] Carl: `cron`-run `conda` jobs are [painful](https://unix.stackexchange.com/questions/454957/cron-job-to-run-under-conda-virtual-environment) to set up. - [x] Carl: filed a `conda` FR: https://github.com/conda/conda/issues/12884 - [x] *This may be a general `conda` issue - not really relevant for the build guild. Where should this be raised?* - [x] Separate the `conda init` boilerplate into a sourceable file? - [x] Carl: Proposed new cache for `conda.anaconda.org` - [x] Miro [link](https://miro.com/app/board/uXjVM9e9O1E=/) - [ ] Would like ideas for testing the new endpoint. - [ ] See JIRA [here](https://anaconda.atlassian.net/browse/CORE-2040) - [ ] Comments are welcome! - [ ] May provide faster overall solving for smaller channels, or configurations that use many channels. - [x] Jannis: The build-guild should review how to report back to the community about https://github.com/conda/conda-build/issues/4698, since all (?) of the work happens behind closed doors at the moment - the goals of the guild are to facilitate knowledge sharing, expand the group of people knowing about conda-build etc - let's find a way to connect that to the people outside Anaconda that are heavy users and potential contributors - suggestion: create a "conda-build" team in conda org, add guild members who are interested, grow some more - [x] [Conda-Build UX Survey](https://forms.gle/Ge2oJrYZTS4otuqN8) for Perseverance/other Anaconda teams; let's discuss [results](https://docs.google.com/presentation/d/1UmU0YoR-0PTrvTqXvo3DmBljICt6rB3-NDPAC6bGl5g/edit#slide=id.g1e498684528_0_5) - Percy! Scripts/toolbox to fix common problems. Charles works on it. - Internal only. - We had 7 survey participants. Corresponds to about 1/4 of Perserverance. - [x] [Implement a plugin infrastructure like conda (CEP 4) and port an existing feature to a plugin #4932](https://github.com/conda/conda-build/issues/4932) (new conda-build issue) - [ ] **What are some quick wins/UX priorities that would help us as users of conda-build?** (continuation from last session) - Better/more detailed logging (explicitly pointing at which stage of the build you're on, etc.) + better visual landmarks of where you are in the build logs - Providing tools that enable diagnosing issues that surface per those logs (this should be very easy to use) - Interactive recipe editing? - [In-toto](https://in-toto.io/) attestations - SBOM tool (plugin candidate; possibly we could work with Euclid to incorporate this into conda-build) - [ ] What are the best ways to coordinate work on the above points? * * * ### Session 10 (June 29, 2023) #### Participants - Jean-Christophe M - Ryan K - Mark A - Cheng L - Ken O - Bianca H - Callek W - Schuyler M - Dave C - Carl A #### Agenda Items - [x] New attendee intros! - What department do you work in? - What made you interested in the Build Guild? - Mark A, staff engineer Perserverance! - Carl A, devops, intrigued - [x] [Conda-Build UX Survey](https://forms.gle/Ge2oJrYZTS4otuqN8) for Perseverance/other Anaconda teams (asking about pain points, etc.) is ready to go! - Some responses already - Reminder will go out next week. - [x] There is also a [Conda-Build Guidance Survey](https://docs.google.com/forms/d/1jJKBvc89AAEkoWKuXhRZDl2khUZibrbc93CWpWr0tjA/edit) that will always be available for folks to fill out if they have anything they want to tell us. - [x] Three (!) new CEPs that are related to conda-build (all by [Wolf Vollprecht](https://github.com/wolfv) of [prefix.dev](https://prefix.dev/)): - [A new YAML recipe format for conda-build – part 1](https://github.com/conda-incubator/ceps/pull/54) - Get rid of cruft that has built up over the years - [A new recipe format – part 2 - the allowed keys & values](https://github.com/conda-incubator/ceps/pull/56) - [A new recipe format – part 3 - file existence test section](https://github.com/conda-incubator/ceps/pull/57) - Parts 2 & 3 dive into the details. - If 1 pasess but 2 & 3 hit bumps then we will iterate. - Anyone can comment on these. Please be bold. - Cheng and Jannis are the voting members of the conda steering council. Let them know if you have concerns - Will probably call a vote on Part 1 in next 2-3 weeks. - [x] Let's talk about [contributing guidelines / instructions](https://github.com/conda/conda-build/blob/main/CONTRIBUTING.md) with some diagrams etc. (we should store all of these on the [dedicated Miro board](https://miro.com/app/board/uXjVP0z1_BY=/?share_link_id=760623899409)) that will make it easier for potential contributors to understand what affects what - [ ] Look over the [backlog](https://github.com/orgs/conda/projects/2/views/13) of [conda-build issues](https://github.com/conda/conda-build/issues) and look at feature requests to prioritize - Generating a .conda file (along with `.tarbz`) would be super helpful for Sirius https://github.com/conda/conda-build/issues/4824 * * * ### Session 9 (June 1, 2023) #### Attendees - Bianca Henderson (Ursa) - Ken Odegard (Ursa) - Ryan Keith (Perseverance) - Jean-Christophe Morin (Perseverance) - Justin Wood (Sirius) - Dave Clements (Community) #### Agenda Items - [x] New member intros! - What department do you work in? - What made you interested in the Build Guild? - [x] Frequency/duration of these meetings - 30 mins? Every two weeks vs every week? - [x] [Rattler-Build](https://prefix-dev.github.io/rattler-build/) ([GitHub repo](https://github.com/prefix-dev/rattler-build)); related to [Rattler](https://github.com/mamba-org/rattler) ([accompanying slide deck](https://docs.google.com/presentation/d/1E7LA-P2eUeffvLEGfrkE0uG4kQmqCCRRx0xJImz2qjE/edit#slide=id.g21b96d46505_0_60)) - How would we showcase the benefits of possibly replacing conda-build with `rattler-build` or `boa`? - We need to collect pain points from Perseverance and address them one by one - [x] New build format [CEP](https://github.com/conda-incubator/ceps/pull/53/files?short_path=fe763ff#diff-fe763ff143d8181e5f6ddc9af5427fee38f9450899160585c4b8072283298ab0) - [x] [Question about conda-build roadmap](https://anaconda.slack.com/archives/C0447BASB5E/p1684505947137859) (related to [boa](https://github.com/mamba-org/boa)) on #ask-conda Slack channel - New recipe formats (boa, etc.) - Combining build + run * * * ### Session 8 (April 6, 2023) - [x] Can/should I mention the Build Guild during the next Rocket Cantina meeting? - [x] Let's [clean up `config.py`](https://github.com/conda/conda-build/pull/4843) - [additional notes go here] * * * ### Session 7 (March 29, 2023) - [x] Let's work on a new PR that is simple enough to get merged semi-quickly (https://github.com/conda/conda-build/pull/4837) - Question: what does `ns_cfg()` stand for?? (N-vironment Selector?? 😆) * * * ### Session 6 (March 23, 2023) - [x] This is our last session; should we schedule more? (Bianca would like to, for sure) YES we will continue, maybe let's try every week since we'll do lots of development work ideally - [x] Travis H from Ursa pointed out [this issue](https://github.com/conda/conda-build/issues/4787) and about how we [shouldn't include depencies in this manner](https://github.com/conda/conda-build/blob/main/conda_build/os_utils/liefldd.py#L26-L30) in a Python project; wanted to bring it to y'all's attention as well - [x] Let's mob program some more! (from now on our sessions will focus on screensharing and ideally getting at least one PR created) - [x] Work on opening up this group and become an official guild! (Update: [The new guild page](https://anaconda.atlassian.net/wiki/spaces/AD/pages/3045883942/Build+Guild) has been published as of 3/29/23!) * * * ### Session 5 (March 2, 2023) - [x] Let's mob program to add more docstrings, comments, and type hinting in the codebase! (or whatever is in the [Code Cleanup section](https://hackmd.io/hmhRDy_qSp21oNQhR9n6kg#Code-Cleanup) of this document) * * * ### Session 4 (February 23, 2023) - [x] Let's discuss what we learned about conda-build during the past week! - [x] Kai Tietz reached out (per Jannis's request), he says he's happy to help us with our learning stuff, though timezone differences might pose a challenge - [x] Making some more progress re: conda-build docs! https://github.com/conda/conda-build/pull/4734 - [x] Related to the above, check out this community-sourced issue: https://github.com/conda/conda-build/issues/4164 * * * ### Session 3 (February 2, 2023) - [x] Let's discuss what we learned about conda-build during the past week! - [x] Ryan, is it OK to add you to [this ticket](https://github.com/conda/conda-build/issues/4698)? - (Ryan needs to be added to the org!) - [x] Are there any docs/process-related info [like this one](https://github.com/anaconda-distribution/perseverance-skills/blob/main/sections/Reference/Recipe_standards.md#the-build-section) that Perseverance refers to that we can see? - [x] Ryan might have an update re: an issue that is causing a buzz - Issue with package dependencices/constraints not getting pinned - Root cauese was conda-build/render issue where run-exports/ignore runexports would remove constraints/dependeicies - Here is the discussion: https://anaconda.atlassian.net/wiki/spaces/AD/pages/2728198251/Perseverance+videos#2/1/2023:-Package-Workstream-Team-Talk - Go to 2023/02/01 Workstream Timestamp 47:00 for discussion - [x] When should we make this [guild](https://anaconda.atlassian.net/wiki/spaces/TEC/pages/2590179351/APE+013+-+Guilds) official? Confluence page, etc. (we already have a Slack channel!) * * * ### Session 2 (January 19, 2023) - [x] Let's discuss what we learned about conda-build during the past week - [x] Bianca: Lots o' questions popped up during homework! - [x] **Question:** Can conda packages get tagged so that they're easier to search for? (that specific info *could* be in the `repodata.json` file??) (asking specifically for plugin purposes, where those packages could be more easily discoverable/listed on a particular page, for example) Indexes could be altered to include tags specifically (e.g. "visualization", "plugins", etc.) - Learning intention for next session - Ryan -> categorize the different tools in the conda-build repo for their intended purpose (packaging, channel mangagement/creation, dev-tools) #### Things that were discussed [`conda-develop`](https://docs.conda.io/projects/conda-build/en/latest/resources/commands/conda-develop.html) should be deprecated and most likely replaced as a plugin (different plugins for each language like Lua, R, etc.) * * * ### Session 1 (January 12, 2023) **Agenda:** - [x] What's our general learning plan? How should we approach this? - Let's keep it general in the beginning with fewer people, and as we learn more specific things/get into more deep dives, we specialize and expand to more people - Eventually we should go through individual files in the codebase (either as a group or assign files to each learning group member) and figure out what it does and how - After we get more familiar with the code we can talk about specific parts in the codebase linking to specific recipes! - [x] Any thoughts on making this [an official guild](https://anaconda.atlassian.net/wiki/spaces/TEC/pages/2590179351/APE+013+-+Guilds)? Here's a [list of currently operational Anaconda guilds](https://anaconda.atlassian.net/wiki/spaces/AG/overview). - Yes. Do it. - [x] Cheng is willing to do a Q&A / conda-build history lesson session with us! 🎉 When would be good timing for this? - [x] Also, Crystal Soja says that she can coordinate with Michael Sarahan with questions we might have (he is a major contributor to conda-build code) - [x] Some conda-build issues of interest that are related to our Build Guild: - [Simplify Maintenance and Contribution Process](https://github.com/conda/conda-build/issues/4697) - [Move conda-build to an own community project under the conda governance policy](https://github.com/conda/conda-build/issues/4698) - [Have one person from the conda maintainers being mentored by packaging practitioners](https://github.com/conda/conda-build/issues/4707) - [x] Would it be good for Ursa folks who want to learn more about package building to study [this Perseverance Skills repo](https://github.com/anaconda-b n distribution/perseverance-skills)? - Yes but it's not set up in a coherent story-like manner that can help beginners walk through it. - Should overlinking/overdepending stuff be defined only in the skills repo or should it be in the conda-build docs? - [x] Srivas Venkatesh (Ursa's QA engineer) would like to do a couple of sessions with us; one where he points out things that don't seem to make sense in the codebase, and another where we discuss outdated code that needs to be updated or deleted. - [x] Started a new "Codebase notes" section where we can go through specific files and point out: 1. What the code does in that file 2. What parts are outdated 3. What should get fixed/updated (and ideally, *how*) (Srivas V. can help point out a lot of cruft) - [x] Let's discuss what we learned about conda-build during the past week - Ryan: - [thing that was learned] - Ken: - overlinking & overdepending - Bianca: - PyPI is seen as more reliable source of package info vs something on GH (as an example) but GH could be seen as more reliable source of metadata (dependencies etc.) 📚 *Homework!* 📚 **Bianca:** Learn what [these things](https://github.com/conda/conda-build/tree/main/conda_build/cli) do + continue to read through the docs more * * * # Misc Reference ## [Miro Board](https://miro.com/app/board/uXjVP0z1_BY=/?share_link_id=760623899409) ## [Guild Page on Confluence](https://anaconda.atlassian.net/wiki/spaces/AD/pages/3045883942/Build+Guild) (internal to Anaconda)