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

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:

  1. create, go throw review and merge PR
  2. do mention @minskpython in PR
  3. say that you got prize and describe
    what you did in PR on next meetup
  4. winner will be chosen by voting
    in https://t.me/minsk_python

Django Contributing

By Pavel Tyslacki

Django Contributing

  • 553