metric-learn icon indicating copy to clipboard operation
metric-learn copied to clipboard

[DOC] [WIP] Developers documentation page

Open mvargas33 opened this issue 3 years ago • 1 comments

@bellet @perimosocordiae @terrytangyuan @wdevazelhes

Motivated by #259 , I made this docs for new developers like a guide in How to contribute to the package. I followed the scikit-learn guideline here, but talking with @bellet it's better to keep things simple in terms of governance, for instance.

I also considered comments at #205 and in #13 .

I also propose that for API or major changes, a MLEP (Metric Learning Enhancement Proposal) document is needed, being Github Discussions the palce to put it and review it, because sometimes, huge API changes are linked to more than one PR. Take the OASIS discussion at #336 as a very simple and informal MLEP. (In general I took this idea from sklearn).

The main sections are:

  • Contributing: Introduction, values, general guideline, how to contribute code (PR process), how to test, how to compile the docs.
  • Metric learn governance: Roles, decision-making process, in general. How to proceed with API changes (MLEP)
  • Implement a new algorithm: Criteria of selection, and how to proceed.
  • API Structure: A quick review of the API for devs to know what classes to inherit from, and wich methods to implement, and where.
  • MLEP Template: The template to be used in Github discussion for major changes.

What is left:

  • How to make a release
  • How to publish the docs (the gh-page branch thing)
  • How to update at Pypi and Conda.

And because this has not been discussed in the past, take this draft as what it is: a draft. Moreover the governance part, and the MLEP part. Maybe something much simpler is enough, like the Github discussion #336 that I did, but with a general template.

Best! 😁

Ps: I'm testing CSS usage in some parts, ignore it

mvargas33 avatar Oct 21 '21 15:10 mvargas33

Great to see the formal process documented. Let me know when this is ready for review.

Hello! The branch is ready for a review. I added a last section called "Publishing Releases" that has all the information explained at #250 and #259.

I emphasize that this documentation should be treated as a draft, as many parts of the contributing process is not yet defined. This PR is an opportunity to clarify it and reach consensus in How to collaborate.

It would be great if @perimosocordiae, @wdevazelhes and @bellet could also review this to have a broad opinion about it.

Best! 🧙‍♂️ Max

Ps: I suggest to merge #338 first to remove all warnings when building this PR.

mvargas33 avatar Nov 02 '21 17:11 mvargas33