Hi Daniel, Nice work putting that document together. Is the meta document you put together the current API or is it the API you are proposing? If the latter, a few suggestions (and if others disagree, please point that out):
- Remove all mention of caching. That should be an implementation detail only, and not a requirement for other implementations. - the *_with_model methods really rub me up the wrong way. I would prefer always returning the _with_model variant, and letting the caller discard the model if they don't need it. - I'm not a fan of virtual and concrete fields, though I have to admit I'm not sure how they're different, especially in the context of different implementations. - Not sure that m2m should be differentiated from related. - init_name_map should be an implementation detail. - normalize_together should be an implementation detail. Regards, Josh On Saturday, 24 May 2014 05:05:02 UTC+10, Daniel Pyrathon wrote: > > Hi all, > > In the last days I have built a documentation of the current state of > Options. Based on feedback and prototyping I have thought of a potential > interface for _meta that can solve the issues currently present, such as > redundancy (in code and in caching systems). The interface has also been > thought to be maintainable and is a base that can be used to create custom > meta stores. > Obviously this is far from perfect, It will need many iterations and maybe > it is too complex. I would really love to gain as much feedback as possible > so it can be discussed with Russell and the community on Monday. > > The documentation of _meta can be found here: > https://github.com/PirosB3/django/blob/meta_documentation/docs/ref/models/meta.txt > I will be refining the document in the next days, I will also be > publishing the docs on a webserver and will be linking a URL soon. > > My proposal has been published here: > https://gist.github.com/PirosB3/371704ed40ed093d5a82 > In the next days I will be iterating over the feedback gained, and based > on one very interesting suggestion on IRC, I will try to see how my API > syntax looks in modelforms.py. > > As said previously, and feedback is greatly appreciated. > > Hi from Pycon IT! > > Daniel Pyrathon > > On Tuesday, May 20, 2014 3:25:45 PM UTC+2, Josh Smeaton wrote: >> >> Best of luck! >> >> On Tuesday, 20 May 2014 03:56:06 UTC+10, Daniel Pyrathon wrote: >>> >>> Hi All, >>> >>> Today I will be starting my weekly updates on my SoC project: >>> refactoring Meta to a stable API. For anyone who missed out, you will be >>> able to view it here: >>> https://docs.google.com/document/d/1yp2_skqkxyrc0egdRv6ofnRGCI9nmvxDFBkCXgy0Jwo/edit >>> >>> This week is the first official week of SoC. Me and my mentor (Russell) >>> are initially approaching the work in the following way: >>> >>> - *Document the existing Meta API* >>> For each endpoint, document the following: >>> - Input parameters and return type >>> - Caching pattern used >>> - Where it's called from (internally and externally to Meta) >>> - Why is it being called >>> - When is it being called >>> >>> - *Propose an initial refactor plan* >>> Once the documentation has been done, I should have a better idea of >>> the current implementation. This will allow me to mock a proposed >>> implementation that will be reviewed at my next update call, on Monday. >>> >>> My next update will be posted on Friday, just to make sure the community >>> is informed of my progress. For any major updates that require community >>> approval, I will be creating separate threads. >>> My name on the internet is pirosb3, so if you want to have a chat about >>> my progress feel free to contact me! The branch I am currently working on >>> is https://github.com/PirosB3/django/tree/meta_documentation >>> >>> Regards, >>> Daniel Pyrathon >>> >> > On Tuesday, May 20, 2014 3:25:45 PM UTC+2, Josh Smeaton wrote: >> >> Best of luck! >> >> On Tuesday, 20 May 2014 03:56:06 UTC+10, Daniel Pyrathon wrote: >>> >>> Hi All, >>> >>> Today I will be starting my weekly updates on my SoC project: >>> refactoring Meta to a stable API. For anyone who missed out, you will be >>> able to view it here: >>> https://docs.google.com/document/d/1yp2_skqkxyrc0egdRv6ofnRGCI9nmvxDFBkCXgy0Jwo/edit >>> >>> This week is the first official week of SoC. Me and my mentor (Russell) >>> are initially approaching the work in the following way: >>> >>> - *Document the existing Meta API* >>> For each endpoint, document the following: >>> - Input parameters and return type >>> - Caching pattern used >>> - Where it's called from (internally and externally to Meta) >>> - Why is it being called >>> - When is it being called >>> >>> - *Propose an initial refactor plan* >>> Once the documentation has been done, I should have a better idea of >>> the current implementation. This will allow me to mock a proposed >>> implementation that will be reviewed at my next update call, on Monday. >>> >>> My next update will be posted on Friday, just to make sure the community >>> is informed of my progress. For any major updates that require community >>> approval, I will be creating separate threads. >>> My name on the internet is pirosb3, so if you want to have a chat about >>> my progress feel free to contact me! The branch I am currently working on >>> is https://github.com/PirosB3/django/tree/meta_documentation >>> >>> Regards, >>> Daniel Pyrathon >>> >> -- You received this message because you are subscribed to the Google Groups "Django developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/eedc4745-1578-454b-a5ca-82ebc27abc9b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
