tBuLi / symfit

Symbolic Fitting; fitting as it should be.
http://symfit.readthedocs.org
MIT License
235 stars 18 forks source link

Overview of code structure needed for aspiring contributors #246

Open antonykamp opened 5 years ago

antonykamp commented 5 years ago

Hello,

It's more a question than an issue. So if somebody wants to contribute to symfit, it's quite difficult to get an overview of the code structure.

I know it's a big task, but is it possible to create a manual, which help to get into the code architecture?

pckroon commented 5 years ago

https://symfit.readthedocs.io/en/stable/api_structure.html Beyond that we probably need to improve the general structure (fit.py is too large). But if you have specific questions feel free to ask.

tBuLi commented 5 years ago

I agree with you that the documentation is currently a bit lacking in outlining these things for people who want to contribute, so it's not unfair to ask. The link @pckroon provided is indeed the best we currently have, and even it seems a bit outdated and in need of review. So in fact, I will reopen this as an issue that needs to be addressed.

As to what we can do about this immediately, @pckroon and I are usually quite quick to respond to specific problems, so if you have something you would like to work on just let us know.

Do you have something specific you would like symfit to be able to do and would like to discuss? Perhaps you can open an issue for that and then we can discuss it there. Let me know what it is you would like to contribute :).

And if you would like me to recommend some valued issues which might be relatively simple to address, you can have a look at #160 (Not very easy but for sure highly valued by some users), or #106.

antonykamp commented 5 years ago

Thanks for your quick response. I already read the API structure from the docs yesterday...That's why I opened this issue :) I want to help on this project, because I think that it has a great perspective.

I'll have an eye on the pull request #247. (After some lines in the docs (#204 & #143)) I would try to help at the issue #160 .

antonykamp commented 5 years ago

As I am currently engaged in unittesting in my free time, I would suggest that I develop more test cases for symfit. In this case, it will be possible for me to deal with the code structure further.

Edit: Unless there is an issue that you would recommend to me :D

tBuLi commented 5 years ago

That would in fact be very much appreciated, adding and organizing tests is something that needs to be done, and it's a good way to get to know a project!

You can have a look here to see the areas which need attention: https://coveralls.io/github/tBuLi/symfit

You can ignore the worst 2 files though, keywordonly.py and leastsqbounds.py. The first will be fixed by discontinuing py27 support, and the latter by removing that file altogether and using scipy's equivalent.

pckroon commented 5 years ago

More tests would be great indeed! We intend to move to (parametrized) pytest tests and fixtures [1] rather than the jumble it is at the moment. You are more than welcome to either add tests in this new style, convert old/existing tests or just add new test cases in the current style. Go nuts :D

[1] https://docs.pytest.org/en/latest/parametrize.html

antonykamp commented 5 years ago

So I have a task now :D first I'm going to convert the existing test to pytests...test by test. After this I'll create new Tests. If I have questions, I'll open an issue ;)