Django Contributing
Paveł Tyślacki
@tbicr
DataRobot
I want to show that popular projects contributing is easy and skills you will get are useful for professional grow
Agenda
- what new in django 2.2
- how I came to django contributing
- why contributing is useful for you
What new in django 2.2
class MienskPythonMeetupModel(models.Model):
class Meta:
constraints = (
models.CheckConstraint(
name='age_gte_18',
check=models.Q(age__gte=18)),
models.UniqueConstraint(
name='draft_for_user_uniq',
fields=['user'],
condition=models.Q(status='DRAFT')),
)
indexes = (
models.Index(
name='non_migrated_idx',
fields=['migrated'],
condition=models.Q(migrated=False)),
)
How I came to django
promotion of my lib for django: https://github.com/tbicr/django-pg-zero-downtime-migrations
Other changes
Highlight form django contributor:
Refactoring:
Add unique
conditional constraint
UniqueConstraint was already exist
Index already had conditional parameter
unique_together documentation
Same message as index_together has
Fix tests cleanup
./tests/runtests.py migrations --parallel=1 --reverse
Fix same field usage for unique constraint
UniqueConstraint was already exist
Index already had conditional parameter
class MienskPythonMeetupModel(models.Model):
field = models.CharField(unique=True)
class Meta:
unique_together = [['field']]
constraints = (
models.UniqueConstraint(fields=['field']),
)
Improve SQLite introspection
Introspection are used in migrations
SQL parsing
A few changes
Django conclusion
small changes - easy to merge
huge changes - hard to merge
monkey job to start with new project with huge codebase
you will get review from good engineers
it's stressful but stress can be catalyst for growth
don't hate django if it doesn't have some feature
just create issue and propose PR
Start links
Why it's useful for you
Business want to get value, go fast and minimize risks
be sure that other engineers keep performance with you
be sure that other engineers will be happy to work with you
be sure that you can handle issues
be sure that you can handled issues in reasonable time
be sure that you can avoid similar issue in future
will be happy if you will bring good or best solution
will be happy if you are supper productive
will be happy if you will bring new opportunity or value
will be happy if you have positive impact to other engineers
One skill
f(t) = time spent to one skill (python, django or other)
Wide skills
\( f(t) = \Huge\sum\normalsize\begin{aligned}&~~\mathrm{python, framework, programming, algorithms, logic, math} \\&~~\mathrm{knowledge, OS, network, git} \\&~~\mathrm{english, soft skills, interview skills}\end{aligned} \)
Back to django
skills grow
you can show something
decrease risks for business
increase interest for business
Thank you!
I want to show that popular projects contributing is easy and skills you will get are useful for professional grow
Paveł Tyślacki
@tbicr
DataRobot
Bonus
For best django contributing until next meetup announce
Prize:
The Pragmatic Programmer eBook
Rules:
- create, go throw review and merge PR
- do mention @minskpython in PR
- say that you got prize and describe
what you did in PR on next meetup - winner will be chosen by voting
in https://t.me/minsk_python
Django Contributing
By Pavel Tyslacki
Django Contributing
- 621