RussBaz / enforce

Python 3.5+ runtime type checking for integration testing and data validation
543 stars 21 forks source link

0.2.0 Release Plan #17

Closed RussBaz closed 7 years ago

RussBaz commented 7 years ago

< Release plan discussion goes here >

RussBaz commented 7 years ago

Fixed the remaining failing tests and updated README and setup.py files. Everything seems to be ready for 0.2.0 release.

@willzfarmer Please confirm that we are ready for releasing 0.2.0. I will wait for your confirmation till Friday before uploading 'enforce' to PyPi.

TheDataLeek commented 7 years ago

I'm getting 6 failing tests on my end... Are you seeing those as well and are those the generics? Or am I misrunning the tests?

RussBaz commented 7 years ago

Hmm... I have no failing tests on my side. Some are skipped, though. Could you please list them all here? Also, what is your setup? Python version, OS, etc.

I am really concerned about this . . .

TheDataLeek commented 7 years ago

Yeah, so I'm on linux python 3.5.2 using py.test. Do you have a different setup?

┬─[william@fillory:~/Dropbox/Projects/enforce]─[10:23:57 PM]
╰─>$ py.test --tb=line
========================================================================================================= test session starts =========================================================================================================
platform linux -- Python 3.5.2, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /home/william/Dropbox/Projects/enforce, inifile: 
plugins: cov-2.3.1
collected 29 items / 2 errors 

tests/test_decorators.py F.F..F.......FFF
tests/test_enforcers.py .......
tests/test_exceptions.py .
tests/test_utils.py ..
tests/test_wrappers.py ...

=============================================================================================================== ERRORS ================================================================================================================
_______________________________________________________________________________________________ ERROR collecting tests/test_enforce.py ________________________________________________________________________________________________
tests/test_enforce.py:6: in <module>
    from enforce.types import EnahncedTypeVar
E   ImportError: No module named 'enforce.types'
________________________________________________________________________________________________ ERROR collecting tests/test_types.py _________________________________________________________________________________________________
tests/test_types.py:5: in <module>
    from enforce.types import is_type_of_type, EnahncedTypeVar, Integer, Boolean
E   ImportError: No module named 'enforce.types'
============================================================================================================== FAILURES ===============================================================================================================
/usr/lib/python3.5/abc.py:225: TypeError: descriptor '__subclasses__' of 'type' object needs an argument
/home/william/Dropbox/Projects/enforce/tests/test_decorators.py:251: AssertionError: RuntimeTypeError should have been raised
/home/william/.local/lib/python3.5/site-packages/enforce/parsers.py:137: IndexError: tuple index out of range
/home/william/.local/lib/python3.5/site-packages/enforce/parsers.py:137: IndexError: tuple index out of range
/home/william/.local/lib/python3.5/site-packages/enforce/parsers.py:137: IndexError: tuple index out of range
/home/william/.local/lib/python3.5/site-packages/enforce/parsers.py:137: IndexError: tuple index out of range
============================================================================================ 6 failed, 23 passed, 2 error in 0.31 seconds =============================================================================================
┬─[william@fillory:~/Dropbox/Projects/enforce]─[10:25:45 PM]
╰─>$ 
RussBaz commented 7 years ago

It is truly strange what you are getting. I added a Travis CI integration and it builds successfully. Are you sure you are using the latest dev version?

I am using 'unittest', Python 3.5.2 (64 bit) and Windows 10 (64 bit).

PS. I am apparently terrible at markdown. The status table is just not being rendered correctly at all. =(

TheDataLeek commented 7 years ago

Erhm.... K, my guess is that this is user error on my part, but I'll dive in first thing tomorrow morning at make sure it's nothing weird... I'll post the minute I get it figured out.

RussBaz commented 7 years ago

OK. I will be waiting for you to figure it out before uploading to PyPi.

TheDataLeek commented 7 years ago

K, so I have successful run using python -m unittest discover ./tests which is the same command as in the .travis.yml.

Py.test doesn't currently work with the test structure (which is fine, just something to note.)

I think we're good to deploy!

RussBaz commented 7 years ago

OK.

Just would like to know your opinion before deploying. runtime_validation can be applied to classes (same as manually applying it to all methods in the class) but it is not mentioned in the README. Should we mention it before we proceed? (This is slightly less tested use of this decorator, and hence it is slightly more riskier, imho)

TheDataLeek commented 7 years ago

I think we should mention it, but also state that it's a development feature and is also not as thoroughly tested.

I think it's important to mention, because it's a nice shortcut if you wanna just apply global testing to all functions in a certain scope without manually adding decorator first to each one. I could see it as being a very important feature.

I can get PR in to README real quick taking care of that if you want.

RussBaz commented 7 years ago

Thanks, please do it. Will be great.

TheDataLeek commented 7 years ago

After we roll out, let's make a reddit post first thing Monday morning? I don't think anyone will see it on the weekend otherwise.

RussBaz commented 7 years ago

Yes, I think it is will be better to do on Monday. Let's continue this discussion in the publicity issue #16 .

I merged your PR and I am going to deploy to PyPI now.

RussBaz commented 7 years ago

I found out how to make py.test work.

You need to do the following in the project root folder:

pip install -e .
py.test ./tests
RussBaz commented 7 years ago

Congratulations! Enforce 0.2.0 is officially out and passing all the build test with an incredible test coverage of 91%!

Thank you for your hard work! It would have been unlikely for 'enforce' to ever see its second release so soon, if ever, without your help.

TheDataLeek commented 7 years ago

No thank you! This has been an absolute pleasure to work on, and I'm excited to see where we can take the project.

Here's to many more future releases!

(edit I installed via pip and everything looks solid!)