Just an update to this. The feature has been added to the master branch using the BoringCyborg. Hopefully, we can say goodbye to multiple migration heads from now on.
Thanks @kaxil @jarek for the help during the process! Bin On Tue, Jan 14, 2020 at 12:29 PM Jarek Potiuk <jarek.pot...@polidea.com> wrote: > Few more hints: > > - example how to see if any file in "airflow/migrations" folder has > been modified - you can see how Kaxil implemented labeler.js. > - I believe in order to check if the PR needs rebase you need to check > if the first (or last?) commit in the PR has parent = current master of the > repo. It might be a bit tricky I noticed that recently in Github they > apparently create different commit from your original one when you create > PR from a fork, so best to test it will be to make a fork of your fork > (inception!) and make PR to your repo from the 2nd fork :). > > > On Tue, Jan 14, 2020 at 9:19 PM Jarek Potiuk <jarek.pot...@polidea.com> > wrote: > >> Cool! >> >> >> - Fork Kaxil's boring-cyborg: https://github.com/kaxil/boring-cyborg - >> you will create PRs from there >> - Setup environment. It's easy and fairly self-detected if you use >> IntelliJ or VSCode. Even if not, it boils down to running `npm install`. >> - run 'npm run dev'. It will run the app and it will automatically >> setup tunnel to your application with smee.io and you will get a >> unique URL that you can use when you create your application. Similar to : >> >> [image: Screenshot 2020-01-14 at 20.59.11.png] >> >> - You can also run it in IntelliJ/VScode using the standard way >> applications are run (this has the advantage that it works with the >> built-in debugger). For example in IntelliJ you need to create this >> configuration: >> >> [image: Screenshot 2020-01-14 at 21.03.22.png] >> >> - If you run it with "Run configuration" IntelliJ or similar in >> VSCode you should be able to use "Run" or "Debug" - in the latter case you >> will be able to set breakpoints and debug with debugger (super useful). >> - Create (if you do not have it) your own Fork of Airflow (you will >> need it to test the probot) >> - Install boring-cyborg in your own Airflow fork following >> https://probot.github.io/docs/development/#configuring-a-github-app >> - At this stage the application should be ready - whenever you open >> new PRs in your fork (internal PRs - to your own repo not to Apache >> Airflow), update them etc, you should start receiving calls to your >> application and you should be able to debug the app etc. >> - Look at the examples implemented by Kaxil and me - they should be >> fairly clear to start from and do similar implementation. The probot >> functionalities are in "lib" folder. You need to add your new file to >> index.js to get it working >> - Whenever you add a new configuration - you need to modify it and >> push to master of your Airflow's fork. >> - For interaction with github (read PRs/commits/etc) you use octokit >> js rest library (documentation here: >> https://octokit.github.io/rest.js/) I found it easiest to do some >> live-debugging and looking at the responses I get to understand how I can >> use the data) >> - Enjoy coding! >> - Follow step-by-step instructions here on how to make PR when you >> are ready :) : >> https://github.com/kaxil/boring-cyborg/blob/master/CONTRIBUTING.md >> >> I hope it's helpful :) >> >> J. >> >> On Tue, Jan 14, 2020 at 7:40 PM Xinbin Huang <bin.huan...@gmail.com> >> wrote: >> >>> Hi Jarek, >>> >>> I would like to take a try into this. Where should I get started? >>> >>> Thanks >>> Bin >>> >>> On Tue, Jan 14, 2020 at 1:28 AM Jarek Potiuk <jarek.pot...@polidea.com> >>> wrote: >>> >>> > Absolutely - it's great that we have the checks in master :). >>> > >>> > But I am thinking about some solutions already. We actually can do >>> > something using Kaxil's probot. While preventing merges for all PRs >>> that >>> > have not been rebased to latest master is quite an overkill, but I >>> think we >>> > can prevent merging PRs that have not been rebased AND have some >>> > modifications in "airflow/migrations". >>> > >>> > It's rather easy to add such features to probot I'd say. Maybe someone >>> > would like to learn how to write probots and would like to add such >>> check? >>> > I am happy to provide mentoring and guidance on how to build/test it >>> (it's >>> > rather easy once you have it setup). >>> > >>> > J. >>> > >>> > On Tue, Jan 14, 2020 at 9:51 AM Driesprong, Fokko <fo...@driesprong.frl >>> > >>> > wrote: >>> > >>> > > Hi Jarek, >>> > > >>> > > Hopefully, this doesn't happen too often since the tables should be >>> > slowly >>> > > changing. The solution here is to ask the contributors to rebase >>> their PR >>> > > more often. >>> > > >>> > > I'm happy that this is being caught now, and we don't have multiple >>> heads >>> > > as before :-) >>> > > >>> > > Cheers, Fokko >>> > > >>> > > Op ma 13 jan. 2020 om 22:23 schreef Jarek Potiuk < >>> > jarek.pot...@polidea.com >>> > > >: >>> > > >>> > > > BTW. We'll have to find a better solution to prevent it as it has >>> > > happened >>> > > > in the past. I will think about it :). Any ideas are welcome :). >>> > > > >>> > > > On Mon, Jan 13, 2020 at 10:21 PM Jarek Potiuk < >>> > jarek.pot...@polidea.com> >>> > > > wrote: >>> > > > >>> > > > > Hello everyone, >>> > > > > >>> > > > > Without asking I quickly reverted the >>> > > > > https://github.com/apache/airflow/pull/6975 ([AIRFLOW-1467 >>> > > > > <https://issues.apache.org/jira/browse/AIRFLOW-1467>] Dynamic >>> > pooling >>> > > > via >>> > > > > allowing tasks to use more than one pool slot (depending upon the >>> > > need)) >>> > > > > as it had duplicated heads in sqlite migrations - clashing with >>> an >>> > > > earlier >>> > > > > change >>> > > > > >>> > > > >>> > > >>> > >>> https://github.com/apache/airflow/commit/a7cacf593f5cf4bfc8b192b799aa2b14c96eac5b >>> > > > added in >>> > > > > this PR https://github.com/apache/airflow/pull/6489: >>> [AIRFLOW-4026] >>> > > > > <https://issues.apache.org/jira/browse/AIRFLOW-4026> >>> > > > > >>> > > > > The problem was that both created independently SQL Alchemy >>> migration >>> > > > > heads and we had a test failing because of that in master. The >>> > problem >>> > > > was >>> > > > > that the AIRFLOW-1467 was not rebased to the latest master before >>> > > merging >>> > > > > (otherwise our tests detect this problem). >>> > > > > >>> > > > > I will let the author of AIRFLOW-1467 how to fix it. >>> > > > > >>> > > > > J. >>> > > > > >>> > > > > -- >>> > > > > >>> > > > > Jarek Potiuk >>> > > > > Polidea <https://www.polidea.com/> | Principal Software Engineer >>> > > > > >>> > > > > M: +48 660 796 129 <+48660796129> >>> > > > > [image: Polidea] <https://www.polidea.com/> >>> > > > > >>> > > > > >>> > > > >>> > > > -- >>> > > > >>> > > > Jarek Potiuk >>> > > > Polidea <https://www.polidea.com/> | Principal Software Engineer >>> > > > >>> > > > M: +48 660 796 129 <+48660796129> >>> > > > [image: Polidea] <https://www.polidea.com/> >>> > > > >>> > > >>> > >>> > >>> > -- >>> > >>> > Jarek Potiuk >>> > Polidea <https://www.polidea.com/> | Principal Software Engineer >>> > >>> > M: +48 660 796 129 <+48660796129> >>> > [image: Polidea] <https://www.polidea.com/> >>> > >>> >> >> >> -- >> >> Jarek Potiuk >> Polidea <https://www.polidea.com/> | Principal Software Engineer >> >> M: +48 660 796 129 <+48660796129> >> [image: Polidea] <https://www.polidea.com/> >> >> > > -- > > Jarek Potiuk > Polidea <https://www.polidea.com/> | Principal Software Engineer > > M: +48 660 796 129 <+48660796129> > [image: Polidea] <https://www.polidea.com/> > >