This is an automated email from the ASF dual-hosted git repository.

aizhamal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 18b03b8  Adding season of docs experience to the blog (#220)
18b03b8 is described below

commit 18b03b8227c7b84ade3c007f9f7d25d66e4ec214
Author: Kartik Khare <[email protected]>
AuthorDate: Sat Feb 8 05:17:09 2020 +0530

    Adding season of docs experience to the blog (#220)
    
    * adding season of docs blog
    
    * fixing tabs
    
    * removing tabs
---
 ...ogle-season-of-docs-2019-with-apache-airflow.md | 126 +++++++++++++++++++++
 1 file changed, 126 insertions(+)

diff --git 
a/landing-pages/site/content/en/blog/experience-in-google-season-of-docs-2019-with-apache-airflow.md
 
b/landing-pages/site/content/en/blog/experience-in-google-season-of-docs-2019-with-apache-airflow.md
new file mode 100644
index 0000000..f2cc732
--- /dev/null
+++ 
b/landing-pages/site/content/en/blog/experience-in-google-season-of-docs-2019-with-apache-airflow.md
@@ -0,0 +1,126 @@
+---
+title: "Experience in Google Season of Docs 2019 with Apache Airflow"
+linkTitle: "Experience in Google Season of Docs 2019 with Apache Airflow"
+author: "Kartik Khare"
+twitter: "khare_khote"
+github: "KKcorps"
+linkedin: "kharekartik"
+description: ""
+tags: ["Documentation"]
+date: 2019-12-20
+---
+
+I came across [Google Season of Docs][1] (GSoD) almost by accident, thanks to 
my extensive HackerNews and Twitter addiction.  I was familiar with the Google 
Summer of Code but not with this program.
+It turns out it was the inaugural phase. I read the details, and the process 
felt a lot like GSoC except that this was about documentation.
+
+## About Me
+I have been writing tech articles on medium as well as my blog for the past 
1.5 years.  Blogging helps me test my understanding of the concepts as 
untangling the toughest of ideas in simple sentences requires a considerable 
time investment.
+
+Also, I have been working as a Software Developer for the past three years, 
which involves writing documentation for my projects as well. I completed my 
B.Tech from  IIT Roorkee. During my stay in college, I applied for GSoC once 
but didn’t make it through in the final list of selected candidates.
+
+I saw GSoD as an excellent opportunity to improve my technical writing skills 
using feedback from the open-source community. I contributed some bug fixes and 
features to Apache Superset and Apache Druid, but this would be my first 
contribution as a technical writer.
+
+## Searching for the organization
+About 40+ organizations were participating in the GSoD. However, there were 
two which came as the right choice for me in the first instant. The first one 
was [Apache Airflow][2] because I had already used Airflow extensively and also 
contributed some custom operators inside the forked version of my previous 
company.
+
+The second one was [Apache Cassandra][3], on which I also had worked 
extensively but hadn’t done any code or doc changes.
+
+Considering the total experience, I decided to go with the Airflow.
+
+## Project selection
+After selecting the org, the next step was to choose the project. Again, my 
previous experience played a role here, and I ended up picking the **How to 
create a workflow** . The aim of the project was to write documentation which 
will help users in creating complex as well as custom DAGs.  
+The final deliverables were a bit different, though. More on that later.
+
+After submitting my application, I got involved in my job until one day, I saw 
a mail from google confirming my selection as a Technical Writer for the 
project.
+
+## Community Bonding
+Getting selected is just a beginning.  I got the invite to the Airflow slack 
channel where most of the discussions happened.
+My mentor was [Ash-Berlin Taylor][4] from Apache Airflow. I started talking to 
my mentor to get a general sense of what deliverables were expected. The 
deliverables were documented in [confluence][5].
+
+- A page for how to create a DAG that also includes:
+    - Revamping the page related to scheduling a DAG
+    - Adding tips for specific DAG conditions, such as rerunning a failed task
+- A page for developing custom operators that includes:
+    - Describing mechanisms that are important when creating an operator, such 
as template fields, UI color, hooks, connection, etc.
+    - Describing the responsibility between the operator and the hook
+    - Considerations for dealing with shared resources (such as connections 
and hooks)
+- A page that describes how to define the relationships between tasks. The 
page should include information about:
+    -  ** \>\> \<\< **
+    - set upstream / set downstream
+    - helpers method ex. chain
+- A page that describes the communication between tasks that also includes:
+    - Revamping the page related to macros and XCOM
+
+My mentor set the expectation early on that the deliverables were sort of like 
guidelines and not strict rules.
+If I wanted to, I could choose to work on something else related to the 
project also, which was not under deliverables.
+After connecting with the mentor, I started engaging with the overall Airflow 
community. The people in the community were helpful, especially [Kamil 
Bregula][6]. Kamil helped me in getting started with the guidelines to follow 
while writing the documentation for Airflow.
+
+## Doc Development
+I picked DAG run as my first deliverable. I chose this topic as some parts of 
it were already documented but needed some additional text.
+I splitter the existing Scheduling & Triggers page into two new pages.
+1. Schedulers
+2. DAG Runs
+
+Most of the details unrelated to schedulers were moved to DAG runs page, and 
then missing points such as how to re-run a task or DAG were added.
+Once I was satisfied with my version, I asked my mentor and Kamil to review 
it. For the first version, I shared the text in the Google docs file in which 
the reviewers added comments.
+However, the document started getting messy, and it became difficult to track 
the changes. The time had come now to raise a proper Pull Request.
+
+This was the time when I faced my first challenge. The documentation of Apache 
Airflow is written using RST(reStructuredText) syntax, with which I was 
entirely unfamiliar. I had mostly worked in Markdown.
+I spent the next couple of days understanding the syntax. Fortunately, it was 
quite easy to get acquainted.
+I raised the [Pull Request][7] and waited for the comments. Finally, after a 
few days when I saw the comments, they were mostly related to two things - 
grammar and formatting. There were also comments related to what I had missed 
or misinterpreted.
+
+### Using correct grammar
+After discussing with Kamil, I decided to follow [Google’s Developer 
Documentation Guidelines][8].  These guidelines contain almost everything 
you’ll need to consider while writing good documentation, such as always to use 
active voice.
+Secondly, I installed the Grammarly app. After writing a doc, I used to put it 
in Grammarly to check for errors. Then I corrected the errors, made some more 
changes, and then again pushed it to Grammarly. This was an iterative process 
until I arrived with a version of the doc, which was grammatically correct but 
not seemed to have been written by an AI.
+
+### Formatting
+Formatting involves writing notes and tips, marking the airflow components 
correctly in the text, and making sure a user who is skimming through the docs 
doesn’t miss the critical text.
+This required a bit of trial and error. I studied the current pattern in 
Airflow docs and made changes, pushed commits, incorporated new review 
comments, and then so on.
+
+In the end, all the reviewers approved the PR, but it was not merged until two 
months later. This was because we doubted if some more pages, such as 
**Concepts**, should also be split up, resulting in a better-structured 
document. In the end, we decided to delay it until we discussed it with the 
broader community.
+
+My [second PR][9] was a completely new document. It was related to How to 
create your custom operator. For this, since now I was familiar with most of 
the syntax, I directly raised the PR without going via Google docs. I received 
a lot of comments again, but this time they were more related to what I had 
written rather than how I had written it.
+e.g., Describing in detail how to use **template fields** and clean up my code 
examples. The fewer grammatical & formatting error comments showed I had made 
progress.
+The PR was accepted within two weeks and gave me a huge confidence boost.
+
+After my second PR, I was in a bit of a deadlock. My last remaining 
deliverable was related to **Macros**, but the scope wasn’t clear. I talked to 
my mentor, and he told me he didn’t mind if I can go off-track to work on 
something else while the community figured out what changes were needed.
+We discussed a lot of ideas. In the end, I decided to go with the Best 
Practices guide inspired by my mentors’ [talk on Apache Airflow ][10]in a 
meetup. Having faced challenges while running Airflow in production myself, I 
was highly motivated to write something like this so that other developers 
don’t suffer.
+The first draft was ready within two weeks. I called it **Running Airflow in 
Production**. However, after adding a few more pieces to the document, I 
realized it was better to call it **Best Practices** guide, which most of the 
open-source projects contained.
+
+People were enthusiastic about this [pull request][11] since a lot of them 
faced the challenges described in the doc. I had hit the nail on the head. 
After some deliberation over the next 1-2 weeks, my PR got accepted.
+
+I then returned to my first PR and started making some changes related to the 
new review comments.  After this, I discussed with my mentor about specific 
elements that were bugging him, such as getting people to understand how the 
schedule interval works in as few words as possible.
+After a lot of trial and error, we arrived at a version with which both of us 
could make peace.
+
+## Final Evaluation
+On 12th September, I received mail from Google about the successful completion 
of the project. This meant my mentor liked my work. The Airflow community also 
appreciated the contributions.
+
+My documents were finally published on Airflow website -
+
+- [DAG Runs][12]
+- [Scheduler][13]
+- [Creating a custom operator][14]
+- [Best Practices][15]
+
+I also started getting invited in the PR reviews of other developers. I am 
looking forward to more contributions to the project in the coming year.
+
+
+
+
+
+
+[1]:    https://developers.google.com/season-of-docs
+[2]:    https://airflow.apache.org/
+[3]:    http://cassandra.apache.org/
+[4]:    https://github.com/ashb
+[5]:    https://cwiki.apache.org/confluence/display/AIRFLOW/Season+of+Docs+2019
+[6]:    https://github.com/mik-laj
+[7]:    https://github.com/apache/airflow/pull/6295
+[8]:    https://developers.google.com/style/
+[9]:    https://github.com/apache/airflow/pull/6348
+[10]:   
https://drive.google.com/file/d/1E4zle8-fv5S1rrlcNUzjiEV19OMYvwoY/view?usp=sharing
+[11]:   https://github.com/apache/airflow/pull/6515
+[12]:   https://airflow.readthedocs.io/en/latest/dag-run.html
+[13]:   https://airflow.readthedocs.io/en/latest/scheduler.html
+[14]:   https://airflow.readthedocs.io/en/latest/howto/custom-operator.html
+[15]:   https://airflow.readthedocs.io/en/latest/best-practices.html

Reply via email to