JuliaDiff / JuliaDiff/ChainRulesCore.jl

Factor out backing and construct into a separate lightweight package?

Open
#668 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
267
Forks
66
PR merge metrics
No merged PRs in 30d

Description

We have duplicate implementations of what backing and construct do scattered all over the ecosystem, explicitly (e.g. ConstructionBase, Functors, ...) and implicitly in the internals of many packages.

The approach and implementation in ChainRulesCore is, to my knowledge, very solid and obviously extensively field-tested. Should we factor this out into a seperate package to make it more directly accessible? ChainRulesCore itself isn't that lightweight a dependency anymore, but a package with just backing and construct could be, I think.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing backing and construct implementations in ChainRulesCore and comparing them with ConstructionBase and Functors. Determine the smallest package boundary and dependency set that would make these operations independently accessible; done means the extraction approach is agreed and the separate lightweight package scope is defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
developer-experience
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.