Introduction

160 views
Skip to first unread message

Ruchit Vithani

unread,
May 8, 2019, 7:59:36 AM5/8/19
to Django developers (Contributions to Django itself)
Hello developers! My name is Ruchit Vithani and I am a student at DA-IICT, Gandhinagar in India. I'm familiar with open source and I've also contributed to some projects.  I'd love to be a part of this awesome community and would like to contribute. I've read the contributing guide. Can someone guide me on what to do next? Also, please inform me if there are any other community platforms to chat and where should I pick my first ticket to work on. Thanks!

Carlton Gibson

unread,
May 8, 2019, 8:16:33 AM5/8/19
to Django developers (Contributions to Django itself)
Hi Ruchit, 

Welcome aboard! 🙂

There's a whole section on finding a ticket in the talk I gave at DjangoCon Europe recently. Check it out: 


In the Trac you can filter by component which helps: 


If you get into specific issues getting started email django-core-mentorship and we'll see if we can get you going. 

Good luck. Have fun! 

Carlton

Ruchit Vithani

unread,
May 8, 2019, 3:52:25 PM5/8/19
to Django developers (Contributions to Django itself)
Thanks! Carlton. Will surely check out those links. 

Ruchit Vithani

unread,
May 11, 2019, 8:35:12 AM5/11/19
to Django developers (Contributions to Django itself)
I have following queries regarding tickets on Trac. In many of the tickets, some people comment `Regression in` and `Reproduced at`, and both of them link to some commit on GitHub. I could not understand what these links specify. I read this documentation on Triage workflow, there is not anything mentioned about this yet on this page. It would be great if someone could tell me what those links specify, and if there is any link to documentation, which could be helpful, please mention. Thanks!

Tobias Kunze

unread,
May 11, 2019, 9:28:04 AM5/11/19
to django-d...@googlegroups.com
Hi Ruchit,

On 19-05-10 23:19:16, Ruchit Vithani wrote:
>I have following queries regarding tickets on Trac. In many of the tickets,
>some people comment `Regression in` and `Reproduced at`, and both of them
>link to some commit on GitHub. I could not understand what these links
>specify.

The "regression in" comments point to commits that have either
introduced or re-introduced the issue in the ticket. Regressions are
explained in the contributing documentation, including a guide on how to
figure out which commit caused the regression:
<https://docs.djangoproject.com/en/2.2/internals/contributing/triaging-tickets/#bisecting-a-regression>

This is helpful because it gives you a start when trying to fix the
issue. You can look at the causing commit, and figure out if this
behaviour was intentional, if it was discussed in the ticket referenced
in the commit, if it was accidental, etc. It also helps you to develop a
fix that doesn't break anything else unintentionally. So even if you
don't have the time or experience to find a fix, finding and noting
which commit caused a regression can be very helpful.

The 'reproduced at' comments are indeed not mentioned in the triage
documentation – maybe you could add them? Sometimes people add comments
like that when they accept a ticket, for better documentation of why
they decided to accept a ticket. There is a note about this workflow
here: https://docs.djangoproject.com/en/2.2/internals/contributing/new-contributors/

They can also be useful with old tickets: With more than a thousand
open tickets, and most of them older than the last one or two releases,
it's not always obvious that an issue still persists. (For instance, I
recently came across a ticket that called for the introduction of
template-based form rendering, which has been part of Django for some
time now.) Adding a comment that the issue still persists currently (and
linking to the tested commit for reference) can be helpful to show that
an 8 year old bug is still relevant.

I hope this helps,
Tobias
signature.asc

Carlton Gibson

unread,
May 11, 2019, 9:51:42 AM5/11/19
to django-d...@googlegroups.com
Thank you Tobias. Good explanation. 

An additional point I picked up from Tim is that if you have a Reproduced at... but the bug is fixed on master then you have a starting point to git bisect where the issue was fixed. 

--
You received this message because you are subscribed to the Google Groups "Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to django-d...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/20190511132755.gmpmcetv33npqlji%40cordelia.localdomain.
For more options, visit https://groups.google.com/d/optout.

Ruchit Vithani

unread,
May 11, 2019, 10:34:46 AM5/11/19
to Django developers (Contributions to Django itself)
Thanks, Tobias, for a wonderful explanation. I sure will try to add documentation about 'Reproduced at:' in triaging workflow. But currently, I've claimed one easy picking ticket, so once I finish work on that, I'll come on to this documentation :)

Ruchit Vithani

unread,
May 13, 2019, 4:17:53 AM5/13/19
to Django developers (Contributions to Django itself)
I'm working now on ticket #30463, and I've figured out what the problem is. Here, when self._meta_ordering is called, it returns instances of OrderBy type and, when .join is called on that list, it throws an error saying: expected str instance but OrderBy found. One easy solution is already mentioned in the ticket, which suggests using "', '".join([str(f) for f in self._meta_ordering]).  But this causes a problem since we don't want quotes around OrderBy, and we do want quotes around anything inside F(), (i.e we want F('anything')). Moreover, we can not use ", ".join instead of "', '".join  since we also want quotes around items if query expression is not used. 

So, the simple solution which came to my mind after thinking for some time was, to call one more string method on "', '".join([str(f) for f in self._meta_ordering]),  to replace `OrderBy with OrderBy and )' with ). I'm not sure this is a cleaner solution to this problem, but any other solution did not come to my mind. Also, there will be a problem in replacement of F( ) with F(' '). I think we'll need to use regular expressions in this replacement. 

Any thoughts or comments on my solution? Or is there any better solution anyone can think of about this ticket?

Ruchit Vithani

unread,
May 14, 2019, 8:39:34 AM5/14/19
to Django developers (Contributions to Django itself)
I've already installed requirements for tests. Before this, there was a module `tests` which wasn't present, and I installed it using `pip3 install tests`. This is the second module, which is not found. Am I missing something? This is a link to traceback: https://dpaste.de/XYTB 

Ruchit Vithani

unread,
May 14, 2019, 8:43:25 AM5/14/19
to Django developers (Contributions to Django itself)
I'm taking about this requirements, which are described in the documentation. 

Adam Johnson

unread,
May 14, 2019, 9:09:03 AM5/14/19
to django-d...@googlegroups.com
Hi Ruchit

You should not be trying to 'pip install' the tests module. There is no tests module in Django's tree, there is a test directory that contains many individual test modules: https://github.com/django/django/tree/master/tests . You can see there's an i18n module in there.

From your traceback, I think you may not be running the tests correctly with runtests.py. It looks like you are invoking unittest directly. Are you running as per https://docs.djangoproject.com/en/dev/intro/contributing/#running-django-s-test-suite-for-the-first-time ?

Thanks,

Adam

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to django-d...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.

For more options, visit https://groups.google.com/d/optout.


--
Adam

Ruchit Vithani

unread,
May 14, 2019, 9:25:51 AM5/14/19
to Django developers (Contributions to Django itself)
Hey Adam! I'm running tests same way as in that documentation. In tests directory, I used `python -m pip install -r requirements/py3.txt` and then `./runtests.py`. I tried this again, but output is same.  

Adam Johnson

unread,
May 14, 2019, 9:38:13 AM5/14/19
to django-d...@googlegroups.com
Try checking out an older commit and running the tests there. It may be that this doesn't work in all situations on the current latest commit on the master branch.

On Tue, 14 May 2019 at 14:25, Ruchit Vithani <Vithan...@gmail.com> wrote:
Hey Adam! I'm running tests same way as in that documentation. In tests directory, I used `python -m pip install -r requirements/py3.txt` and then `./runtests.py`. I tried this again, but output is same.  

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to django-d...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.

For more options, visit https://groups.google.com/d/optout.


--
Adam
Reply all
Reply to author
Forward
0 new messages