Hi Jakob, As I’m preparing the RC2 I am also addressing the below issues. However
> * Nit: Last release Sebb called out "Copyright 2016 and onwards" in > NOTICE as being imprecise. This language remains. is equal to what is used in e.g. Apache Spark (https://github.com/apache/spark/blob/master/NOTICE <https://github.com/apache/spark/blob/master/NOTICE>) I would rather like to keep it, because it reduces maintenance. What is your opinion? Cheers Bolke > On 12 Jul 2018, at 07:54, Jakob Homan <jgho...@gmail.com> wrote: > > +1 (binding) > > * Sigs look good > * Artifact has incubating in name > * LICENSE/NOTICE/DISCLAIMER look good > - nit: DISCLAIMER is not word wrapped to 80 chars as I've seen in > other projects. > * Nit: Last release Sebb called out "Copyright 2016 and onwards" in > NOTICE as being imprecise. This language remains. > * Spot check on license headers looks ok. > * Nit: Last release there was a request for instructions on how to > build the code. This isn't included. > > -Jakob > > On 11 July 2018 at 19:50, Sid Anand <san...@apache.org> wrote: >> FYI! >> I just installed the release candidate. The first thing I noticed is a >> missing tool tip for the Null State in the Recent Tasks column on the >> landing page. Since the null globe is new to this UI, users will likely >> hover over it to inquire what it means... and will be left wanting. Of >> course, they could click on the globe, which will take them to >> http://localhost:8080/admin/taskinstance/?flt1_dag_id_equals=example_bash_operator&flt2_state_equals=null, >> which will always show an empty list, leaving them a bit more confused. >> >> -s >> >> On Wed, Jul 11, 2018 at 3:13 PM Carl Johan Gustavsson >> <carl.jo...@tictail.com.invalid> wrote: >> >>> Hi Bolke, >>> >>> (Switching email to avoid moderation on my emails.) >>> >>> The normal Airflow test suite does not fail as it uses a LC_ALL set to >>> utf-8. >>> >>> I think it is a proper test though, it is a minimal reproducible version of >>> the code that fails. And the only difference in behaviour is at 3.7 which >>> we don’t support anyway so I’m fairly sure it is broken for all supported >>> Python 3 versions. >>> >>> I now tried running the tests in docker using 3.5 with the LC_ALL/LANG >>> unset and I see the same failure. >>> >>> I don’t think this is a big thing though and we could release it without >>> the fix I made. I think most people run it with a sane LC_ALL, but >>> apparently we didn’t. >>> Here’s the log for the test: >>> >>>> docker run -t -i -v `pwd`:/airflow/ python:3.5 bash >>> root@b99b297df111:/# locale >>> LANG=C.UTF-8 >>> LANGUAGE= >>> LC_CTYPE="C.UTF-8" >>> LC_NUMERIC="C.UTF-8" >>> LC_TIME="C.UTF-8" >>> LC_COLLATE="C.UTF-8" >>> LC_MONETARY="C.UTF-8" >>> LC_MESSAGES="C.UTF-8" >>> LC_PAPER="C.UTF-8" >>> LC_NAME="C.UTF-8" >>> LC_ADDRESS="C.UTF-8" >>> LC_TELEPHONE="C.UTF-8" >>> LC_MEASUREMENT="C.UTF-8" >>> LC_IDENTIFICATION="C.UTF-8" >>> LC_ALL= >>>> unset LANG >>> root@b99b297df111:/# locale >>> LANG= >>> LANGUAGE= >>> LC_CTYPE="POSIX" >>> LC_NUMERIC="POSIX" >>> LC_TIME="POSIX" >>> LC_COLLATE="POSIX" >>> LC_MONETARY="POSIX" >>> LC_MESSAGES="POSIX" >>> LC_PAPER="POSIX" >>> LC_NAME="POSIX" >>> LC_ADDRESS="POSIX" >>> LC_TELEPHONE="POSIX" >>> LC_MEASUREMENT="POSIX" >>> LC_IDENTIFICATION="POSIX" >>> LC_ALL= >>> root@b99b297df111:/# pip install -e .[devel] >>> root@b99b297df111:/airflow# ./run_unit_tests.sh >>> + export AIRFLOW_HOME=/root/airflow >>> + AIRFLOW_HOME=/root/airflow >>> + export AIRFLOW__CORE__UNIT_TEST_MODE=True >>> + AIRFLOW__CORE__UNIT_TEST_MODE=True >>> + export AIRFLOW__TESTSECTION__TESTKEY=testvalue >>> + AIRFLOW__TESTSECTION__TESTKEY=testvalue >>> + export AIRFLOW_USE_NEW_IMPORTS=1 >>> + AIRFLOW_USE_NEW_IMPORTS=1 >>> +++ dirname ./run_unit_tests.sh >>> ++ cd . >>> ++ pwd >>> + DIR=/airflow >>> + export PYTHONPATH=:/airflow/tests/test_utils >>> + PYTHONPATH=:/airflow/tests/test_utils >>> + nose_args= >>> + which airflow >>> + echo 'Initializing the DB' >>> Initializing the DB >>> + airflow resetdb >>> + yes >>> Traceback (most recent call last): >>> File "/usr/local/bin/airflow", line 6, in <module> >>> exec(compile(open(__file__).read(), __file__, 'exec')) >>> File "/airflow/airflow/bin/airflow", line 21, in <module> >>> from airflow import configuration >>> File "/airflow/airflow/__init__.py", line 35, in <module> >>> from airflow import configuration as conf >>> File "/airflow/airflow/configuration.py", line 106, in <module> >>> DEFAULT_CONFIG = f.read() >>> File "/usr/local/lib/python3.5/encodings/ascii.py", line 26, in decode >>> return codecs.ascii_decode(input, self.errors)[0] >>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 21082: >>> ordinal not in range(128) >>> + '[' '' ']' >>> + '[' -z '' ']' >>> + nose_args='--with-coverage --cover-erase --cover-html >>> --cover-package=airflow --cover-html-dir=airflow/www/static/coverage >>> --with-ignore-docstrings --rednose --with-timer -s -v >>> --logging-level=DEBUG ' >>> + echo 'Starting the unit tests with the following nose arguments: >>> --with-coverage' --cover-erase --cover-html --cover-package=airflow >>> --cover-html-dir=airflow/www/static/coverage --with-ignore-docstrings >>> --rednose --with-timer -s -v --logging-level=DEBUG >>> Starting the unit tests with the following nose arguments: --with-coverage >>> --cover-erase --cover-html --cover-package=airflow >>> --cover-html-dir=airflow/www/static/coverage --with-ignore-docstrings >>> --rednose --with-timer -s -v --logging-level=DEBUG >>> + nosetests --with-coverage --cover-erase --cover-html >>> --cover-package=airflow --cover-html-dir=airflow/www/static/coverage >>> --with-ignore-docstrings --rednose --with-timer -s -v --logging-level=DEBUG >>> nose.plugins.cover: ERROR: Coverage not available: unable to import >>> coverage module >>> Failure: UnicodeDecodeError ('ascii' codec can't decode byte 0xe2 in >>> position 21082: ordinal not in range(128)) ... ERROR >>> Failure: UnicodeDecodeError ('ascii' codec can't decode byte 0xe2 in >>> position 21082: ordinal not in range(128)) ... ERROR >>> ====================================================================== >>> 1) ERROR: Failure: UnicodeDecodeError ('ascii' codec can't decode byte 0xe2 >>> in position 21082: ordinal not in range(128)) >>> ---------------------------------------------------------------------- >>> Traceback (most recent call last): >>> /usr/local/lib/python3.5/site-packages/nose/failure.py line 39 in >>> runTest >>> raise self.exc_val.with_traceback(self.tb) >>> /usr/local/lib/python3.5/site-packages/nose/loader.py line 418 in >>> loadTestsFromName >>> addr.filename, addr.module) >>> /usr/local/lib/python3.5/site-packages/nose/importer.py line 47 in >>> importFromPath >>> return self.importFromDir(dir_path, fqname) >>> /usr/local/lib/python3.5/site-packages/nose/importer.py line 94 in >>> importFromDir >>> mod = load_module(part_fqname, fh, filename, desc) >>> /usr/local/lib/python3.5/imp.py line 245 in load_module >>> return load_package(name, filename) >>> /usr/local/lib/python3.5/imp.py line 217 in load_package >>> return _load(spec) >>> <frozen importlib._bootstrap> line 693 in _load >>> >>> <frozen importlib._bootstrap> line 673 in _load_unlocked >>> >>> <frozen importlib._bootstrap_external> line 697 in exec_module >>> >>> <frozen importlib._bootstrap> line 222 in _call_with_frames_removed >>> >>> airflow/__init__.py line 35 in <module> >>> from airflow import configuration as conf >>> airflow/configuration.py line 106 in <module> >>> DEFAULT_CONFIG = f.read() >>> /usr/local/lib/python3.5/encodings/ascii.py line 26 in decode >>> return codecs.ascii_decode(input, self.errors)[0] >>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position >>> 21082: ordinal not in range(128) >>> ====================================================================== >>> 2) ERROR: Failure: UnicodeDecodeError ('ascii' codec can't decode byte 0xe2 >>> in position 21082: ordinal not in range(128)) >>> ---------------------------------------------------------------------- >>> Traceback (most recent call last): >>> /usr/local/lib/python3.5/site-packages/nose/failure.py line 39 in >>> runTest >>> raise self.exc_val.with_traceback(self.tb) >>> /usr/local/lib/python3.5/site-packages/nose/loader.py line 418 in >>> loadTestsFromName >>> addr.filename, addr.module) >>> /usr/local/lib/python3.5/site-packages/nose/importer.py line 47 in >>> importFromPath >>> return self.importFromDir(dir_path, fqname) >>> /usr/local/lib/python3.5/site-packages/nose/importer.py line 94 in >>> importFromDir >>> mod = load_module(part_fqname, fh, filename, desc) >>> /usr/local/lib/python3.5/imp.py line 245 in load_module >>> return load_package(name, filename) >>> /usr/local/lib/python3.5/imp.py line 217 in load_package >>> return _load(spec) >>> <frozen importlib._bootstrap> line 693 in _load >>> >>> <frozen importlib._bootstrap> line 673 in _load_unlocked >>> >>> <frozen importlib._bootstrap_external> line 697 in exec_module >>> >>> <frozen importlib._bootstrap> line 222 in _call_with_frames_removed >>> >>> tests/__init__.py line 25 in <module> >>> from .configuration import * >>> tests/configuration.py line 28 in <module> >>> from airflow import configuration >>> airflow/__init__.py line 35 in <module> >>> from airflow import configuration as conf >>> airflow/configuration.py line 106 in <module> >>> DEFAULT_CONFIG = f.read() >>> /usr/local/lib/python3.5/encodings/ascii.py line 26 in decode >>> return codecs.ascii_decode(input, self.errors)[0] >>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position >>> 21082: ordinal not in range(128) >>> >>> [error] 100.00% nose.failure.Failure.runTest: 0.0004s >>> >>> ----------------------------------------------------------------------------- >>> 2 tests run in 0.060 seconds. >>> 2 errors (0 tests passed) >>> >>> >>> -- >>> Carl Johan Gustavsson >>> >>> On 11 July 2018 at 23:24:01, Bolke de Bruin (bdbr...@gmail.com) wrote: >>> >>> Hi Carl, >>> >>> That is not a real check, ie. Does Airflow have the same issue clean >>> install on 3.5? Travis’ tests run on 3.5. >>> >>> B. >>> >>> Verstuurd vanaf mijn iPad >>> >>>> Op 10 jul. 2018 om 15:10 heeft Carl Johan Gustavsson < >>> carl.j.gustavs...@gmail.com> het volgende geschreven: >>>> >>>> Hi Bolke, >>>> >>>> >>>> I did a quick test on 3.5.5, 3.4.0 and 3.7.0 on OS X now, all but 3.7 >>> breaks >>>> >>>> Quick repro: >>>> >>>> ➜ ~ pyenv local 3.5.5 >>>> ➜ ~ locale >>>> LANG= >>>> LC_COLLATE="C" >>>> LC_CTYPE="C" >>>> LC_MESSAGES="C" >>>> LC_MONETARY="C" >>>> LC_NUMERIC="C" >>>> LC_TIME="C" >>>> LC_ALL= >>>> ➜ ~ cat testweird.txt >>>> ’ >>>> ➜ ~ python >>>> Python 3.5.5 (default, Jul 7 2018, 17:00:56) >>>> [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)] on darwin >>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>>> open('testweird.txt').read() >>>> Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>> File "/Users/cjg/.pyenv/versions/3.5.5/lib/python3.5/encodings/ascii.py", >>> line 26, in decode >>>> return codecs.ascii_decode(input, self.errors)[0] >>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: >>> ordinal not in range(128) >>>>>>> >>>> >>>> >>>> Maybe not a blocking change but it is a breaking change from 1.9 I guess. >>>> >>>> >>>> / Carl Johan >>>> >>>> >>>>> On 10 July 2018 at 14:48:47, Bolke de Bruin (bdbr...@gmail.com) wrote: >>>>> >>>>> Hi Carl, >>>>> >>>>> Did you this on python 3.5 as well? 3.6 is not an officially supported >>> (yet). As a workaround is available I won’t consider this blocking btw. >>>>> >>>>> Bolke >>>>> >>>>> Verstuurd vanaf mijn iPad >>>>> >>>>> Op 10 jul. 2018 om 11:53 heeft Carl Johan Gustavsson < >>> carl.j.gustavs...@gmail.com> het volgende geschreven: >>>>> >>>>>> Hi, >>>>>> >>>>>> First of all, thank you for all the work with the release management. >>>>>> >>>>>> I ran in to a weird issue testing the RC1, running under Python 3.6.0 / >>> Ubuntu 14.04.5, upgrading from a master build from February. >>>>>> >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 Traceback >>> (most recent call last): >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 File >>> "/opt/virtualenv/tictail/pipeline/bin/airflow", line 21, in <module> >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 from airflow >>> import configuration >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 File >>> >>> "/opt/virtualenv/tictail/pipeline/lib/python3.6/site-packages/airflow/__init__.py", >>> line 35, in <module> >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 from airflow >>> import configuration as conf >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 File >>> >>> "/opt/virtualenv/tictail/pipeline/lib/python3.6/site-packages/airflow/configuration.py", >>> line 106, in <module> >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 >>> DEFAULT_CONFIG = f.read() >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 File >>> "/opt/virtualenv/tictail/pipeline/lib/python3.6/encodings/ascii.py", line >>> 26, in decode >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 return >>> codecs.ascii_decode(input, self.errors)[0] >>>>>> Jul 10 08:50:33 hostname supervisord: airflow-webserver-01 >>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 20770: >>> ordinal not in range(128) >>>>>> >>>>>> Removing the ’ on >>> >>> https://github.com/apache/incubator-airflow/blob/master/airflow/config_templates/default_airflow.cfg#L613 >>> solved the issue for me, and digging a bit deeper it seems Airflow now >>> requires setting LC_ALL=en_US.UTF-8 in the environment or similar to force >>> Python to read the file as utf-8 and not ascii. (I think this was changed >>> in to default to utf-8 in Python 3.7). >>>>>> >>>>>> I see 3 solutions for this >>>>>> 1. Document that Airflow need to run with LC_ALL=en_US.UTF-8 or >>> similar. >>>>>> 2. Change the default config file to not contain non-ascii characters. >>>>>> 3. Always read the file as unicode regardless of the LC_ALL >>> environment, by the encoding='utf-8’ parameter to open(). >>>>>> >>>>>> I think 3 is the best solution, and I can prepare a PR for that if >>> necessary . >>>>>> >>>>>> I guess this counts as -1 (non-binding) >>>>>> >>>>>> All the best >>>>>> >>>>>> Carl Johan >>>>>> >>>>>> >>>>>> >>>>>>> On 8 July 2018 at 22:02:33, Bolke de Bruin (bdbr...@gmail.com) wrote: >>>>>>> >>>>>>> Hey all, >>>>>>> >>>>>>> I have cut Airflow 1.10.0 RC1. This email is calling a vote on the >>> release, >>>>>>> which will last for 72 hours. Consider this my (binding) +1. >>>>>>> >>>>>>> Airflow 1.10.0 RC 1 is available at: >>>>>>> >>>>>>> https://dist.apache.org/repos/dist/dev/incubator/airflow/1.10.0rc1/ < >>> https://dist.apache.org/repos/dist/dev/incubator/airflow/1.10.0rc1/> >>>>>>> >>>>>>> apache-airflow-1.10.0rc1+incubating-source.tar.gz is a source release >>> that >>>>>>> comes with INSTALL instructions. >>>>>>> apache-airflow-1.10.0rc1+incubating-bin.tar.gz is the binary Python >>> "sdist" >>>>>>> release. >>>>>>> >>>>>>> Public keys are available at: >>>>>>> >>>>>>> https://dist.apache.org/repos/dist/release/incubator/airflow/ < >>> https://dist.apache.org/repos/dist/release/incubator/airflow/> >>>>>>> >>>>>>> The amount of JIRAs fixed is over 700. Please have a look at the >>> changelog. >>>>>>> >>>>>>> Please note that the version number excludes the `rcX` string as well >>>>>>> as the "+incubating" string, so it's now simply 1.10.0. This will >>> allow us >>>>>>> to rename the artifact without modifying the artifact checksums when >>> we >>>>>>> actually release. >>>>>>> >>>>>>> >>>>>>> Cheers, >>>>>>> Bolke >>>