Page MenuHomeFreeBSD

[NEW] mail/py-offlineimap3: Two-way synchronization of local Maildir and IMAP folders
ClosedPublic

Authored by dereks_lifeofadishwasher.com on Feb 28 2022, 3:29 AM.
Tags
Referenced Files
Unknown Object (File)
Sun, Apr 14, 6:00 AM
Unknown Object (File)
Fri, Apr 12, 8:06 AM
Unknown Object (File)
Feb 12 2024, 5:26 PM
Unknown Object (File)
Feb 11 2024, 12:12 PM
Unknown Object (File)
Jan 22 2024, 2:11 PM
Unknown Object (File)
Jan 18 2024, 6:07 AM
Unknown Object (File)
Jan 18 2024, 6:06 AM
Unknown Object (File)
Jan 18 2024, 6:06 AM

Details

Summary

PR: 262233

[NEW] mail/py-offlineimap3: Two-way synchronization of local Maildir and IMAP folders

OfflineIMAP is software that downloads your email mailbox(es) as
local Maildirs. OfflineIMAP will synchronize both sides via IMAP.

WWW: https://github.com/OfflineIMAP/offlineimap3

Add patch [1] to fix spaces in idle folders.

[1] https://github.com/OfflineIMAP/offlineimap3/issues/109

Test Plan
  • portlint: looks fine.
  • testport: 13amd64 default options
  • maketest: see below.
  • other: Test with gmail. Been using the 8.0.0 python3 version in a venv via pip-install for over a week and pkg install version for a couple days.

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

koobs retitled this revision from mail/py-offlineimap3: New port mail/py-offlineimap3 to [NEW] mail/py-offlineimap3: Two-way synchronization of local Maildir and IMAP folders.Mar 2 2022, 10:37 PM
koobs edited the summary of this revision. (Show Details)
koobs edited the test plan for this revision. (Show Details)
koobs added a reviewer: koobs.
koobs added a project: Python.
koobs requested changes to this revision.Mar 2 2022, 11:00 PM
  • Add TEST_DEPENDS and (do-)test target
  • Confirm QA (Added to TEST PLAN section)
mail/py-offlineimap3/Makefile
14–17
  • These are very unlikely build (time) dependencies, and very likely only run time dependencies.
  • Upstream uses ~= dependencies, which are means >= V.N, == V.*, which implicitly also caps version to <W.

*_DEPENDS must match version specs as closely as possible, (including max versions) without being incorrect, modulo the limitations in our ports syntax (we cant specify '!=X.Y' or 'X,Y' for example)

  • urllib3~=1.25.9 = >=1.25.9<1.26
  • certifi~=2020.6.20 = >=2020.6.20<2020.7` (upstream may not have intended this)

See PEP440 for details and extra considerations: https://www.python.org/dev/peps/pep-0440/#compatible-release

26

I can't find a Python version support declaration upstream and upstream hasn't yet upgraded their CI to run Python 3 (after forking the Python 2 version), but its unlikely 3.8 is the minimum version support. Please check and confirm, upstream or otherwise, and confirm again with test suite against all Python port versions

28

Add comment/reason above this, that they don't ship/upload a PyPI sdist, and open issue upstream for them to register 'offlineimap3' name and publish an sdist.

Port naming is a problem here because the name specified in the setup.py is 'offlineimap', which is also the module namespace on installation, presumably conflicting with 'offlineimap', installed either via ports (i didnt check) or pip, and this name conflicts with how the project is referenced everywhere else 'offlineimap3'.

This revision now requires changes to proceed.Mar 2 2022, 11:00 PM
mail/py-offlineimap3/Makefile
14–17

I believe they are build depends

Without disto:

===>  Configuring for py38-offlineimap3-8.0.0                                                                                                                            
Traceback (most recent call last):                                                                                                                                       
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/utils/distro_utils.py", line 11, in <module>                                    
    from platform import linux_distribution                                                                                                                              
ImportError: cannot import name 'linux_distribution' from 'platform' (/usr/local/lib/python3.8/platform.py)                                                              
                                                                                                                                                                         
During handling of the above exception, another exception occurred:        
...

Without imaplib2:

===>  Configuring for py38-offlineimap3-8.0.0                                       
Traceback (most recent call last):                                                  
  File "<string>", line 1, in <module>                                                                                                                                   
  File "setup.py", line 25, in <module>                                                                                                                                  
    import offlineimap                                                                                                                                                   
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/__init__.py", line 20, in <module>                                              
    from offlineimap.init import OfflineImap                                                                                                                             
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/init.py", line 30, in <module>                                                  
    import imaplib2 as imaplib                                                      
ModuleNotFoundError: No module named 'imaplib2'    
...

Without rfc6555:

===>  Configuring for py38-offlineimap3-8.0.0                                 
Traceback (most recent call last):                                                  
  File "<string>", line 1, in <module>                                              
  File "setup.py", line 25, in <module>                                             
    import offlineimap                                                              
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/__init__.py", line 20, in <module>                                              
    from offlineimap.init import OfflineImap                                
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/init.py", line 35, in <module>                                                  
    from offlineimap import threadutil, accounts, folder, mbnames                   
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/accounts.py", line 26, in <module>                                              
    from offlineimap.repository import Repository                                   
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/repository/__init__.py", line 20, in <module>                                   
    from offlineimap.repository.IMAP import IMAPRepository, MappedIMAPRepository    
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/repository/IMAP.py", line 25, in <module>                                       
    from offlineimap import folder, imaputil, imapserver, OfflineImapError          
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/folder/__init__.py", line 4, in <module>                                        
    from . import Base, Gmail, IMAP, Maildir, LocalStatus, UIDMaps                  
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/folder/Gmail.py", line 22, in <module>                                          
    from offlineimap import imaputil, imaplibutil, OfflineImapError                 
  File "/wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/imaplibutil.py", line 26, in <module>                                           
    import rfc6555                    
ModuleNotFoundError: No module named 'rfc6555'
*** Error code 1
...

sqlite3:

...
===>  Configuring for py38-offlineimap3-8.0.0                                  
Traceback (most recent call last):                                                  
  File "<string>", line 1, in <module>                                              
  File "setup.py", line 25, in <module>                                             
    import offlineimap              
   ...
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
*** Error code 1

It's possible that upstream is doing something wrong here? But it fails without those as BUILD_DEPENDS.

mail/py-offlineimap3/Makefile
28

What's the recommendation here? rename PORTNAME=offlineimap, add GITHUB_PROJECT=${PORTNAME}3 and rename port in mail/Makefile

mail/py-offlineimap3/Makefile
14–17

*_DEPENDS must match version specs as closely as possible, (including max versions) without being incorrect, modulo the limitations in our ports syntax (we cant specify '!=X.Y' or 'X,Y' for example)

  • urllib3~=1.25.9 = >=1.25.9<1.26
  • certifi~=2020.6.20 = >=2020.6.20<2020.7` (upstream may not have intended this)

See PEP440 for details and extra considerations: https://www.python.org/dev/peps/pep-0440/#compatible-release

I believe we can say upsteam is wrong/out-of-date. offlineimap3 works with newer ports than the ones ~= locks them too. I can run unittests on all the different 3.x python versions.

mail/py-offlineimap3/Makefile
14–17

Right, upstream is importing offlineimap during setup.py which is causing it to import all the other things.

Should be using setup_requires (build depends) and install_requires instead (in setup.py), at least, if not other equivalent and current best practice dependency declarations; setup.cfg, pyproject.toml etc.

  • Leave them in BUILD_DEPENDS
  • Comment the BUILD_DEPENDS
  • Open issue upstream and/or PR to rectify
28
  • Obtain clarity from upstream with regard to their plans for PyPI packaging / name for this.
  • If a Python 2.x version of this exists in ports, check if this conflicts with it, add CONFLICTS_INSTALL accordingly.

If you're not keen to wait for upstream response clarifying, leave it at offlineimap3 for the moment, which is at least consistent with other OS package names. A future change based on upstream response could be:

  • Rename offlineimap3 -> offlineimap (if they want it to replace the existing offlineimap PyPI package name, OR..
  • Leave it as is, if they plan to register and upload an sdist for a new offlineimap3 package.
mail/py-offlineimap3/Makefile
14–17

Sure, we should only deviate from upstream declarations if and where QA is completely confirmed with later versions, in which case the dependencies (if registered properly), should be patched, and sent up stream along with updating their CI builds to include testing for those. The ideal target state is upstreams testing and learning about regressions/incompatibilities against latest versions of their dependencies (ie not pinning them)

  • Add comments for build depends and pypi packaging
  • include CONFLICTS_INSTALL just in case someone is still using the removed py-offlineimap package

Sorry in the wrong branch. Updating from correct one.

Run unittests with python37, 38. 39. 310, and 311

  • Added patch to fix idle folder with spaces (forget this from the init. review).
  • Capped offlineimap3 to 3.7-3.9 since imaplib2 is limited to 3.9. In turn only testing offlineimap3 for py37/8/9
  • Patched docs sphinx-build command to use the correct conncurrent version. Will need to fix upstream.
  • Patched out tests that require a network connection and user auth. Maybe have upstream move these out of unittest?

Tested on py37:

===>   py37-offlineimap3-8.0.0 depends on file: /usr/local/bin/python3.7 - found                                                                              [1004/1924]
========================================================================== test session starts ==========================================================================
platform freebsd13 -- Python 3.7.12, pytest-4.6.11, py-1.9.0, pluggy-0.13.1 -- /usr/local/bin/python3.7                                                                  cachedir: .pytest_cache                                                                                                                                                  
rootdir: /wrkdirs/usr/ports/mail/py-offlineimap3/work-py37/offlineimap3-8.0.0                                                                                            
collected 19 items                                                                                                                                                       
                                                                                                                                                                         
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_deletion PASSED                                                                                       [  5%] 
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_double_init PASSED                                                                                    [ 10%] 
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_initial_state PASSED                                                                                  [ 15%] test/tests/test_00_globals.py::TestOfflineimapGlobals::test_modification PASSED                                                                                   [ 21%] 
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_nonexistent_key PASSED                                                                                [ 26%] 
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_object_changes PASSED                                                                                 [ 31%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit PASSED                                                                                   [ 36%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_02_flagsplit PASSED                                                                                   [ 42%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_04_flags2hash PASSED                                                                                  [ 47%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_05_flagsimap2maildir PASSED                                                                           [ 52%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_06_flagsmaildir2imap PASSED                                                                           [ 57%] 
test/tests/test_00_imaputil.py::TestInternalFunctions::test_07_uid_sequence PASSED                                                                                [ 63%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_01_olistartup SKIPPED                                                                                       [ 68%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_02_createdir SKIPPED                                                                                        [ 73%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_03_createdir_quote SKIPPED                                                                                  [ 78%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_04_nametransmismatch SKIPPED                                                                                [ 84%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_05_createmail SKIPPED                                                                                       [ 89%] 
test/tests/test_01_basic.py::TestBasicFunctions::test_06_createfolders SKIPPED                                                                                    [ 94%] 
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap PASSED                                                                                   [100%] 
                                                                                                                                                                         
=========================================================================== warnings summary ============================================================================
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py37/offlineimap3-8.0.0/offlineimap/CustomConfig.py:26: DeprecationWarning: The SafeConfigParser class has been renamed to
 ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
    SafeConfigParser.__init__(self)

test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py37/offlineimap3-8.0.0/test/OLItest/TestRunner.py:74: DeprecationWarning: This method will be removed in future versions.
  Use 'parser.read_file()' instead.
    config.readfp(default_conf)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================================================================== short test summary info ========================================================================
SKIPPED [1] test/tests/test_01_basic.py:52: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:66: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:78: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:95: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:117: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:143: skpping test needs remote auth
=========================================================== 13 passed, 6 skipped, 6 warnings in 0.14 seconds ============================================================

Tested on py38:

===>   py38-offlineimap3-8.0.0 depends on file: /usr/local/bin/python3.8 - found
========================================================================== test session starts ==========================================================================
platform freebsd13 -- Python 3.8.12, pytest-4.6.11, py-1.9.0, pluggy-0.13.1 -- /usr/local/bin/python3.8
cachedir: .pytest_cache
rootdir: /wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0
collected 19 items

test/tests/test_00_globals.py::TestOfflineimapGlobals::test_deletion PASSED                                                                                       [  5%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_double_init PASSED                                                                                    [ 10%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_initial_state PASSED                                                                                  [ 15%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_modification PASSED                                                                                   [ 21%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_nonexistent_key PASSED                                                                                [ 26%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_object_changes PASSED                                                                                 [ 31%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit PASSED                                                                                   [ 36%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_02_flagsplit PASSED                                                                                   [ 42%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_04_flags2hash PASSED                                                                                  [ 47%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_05_flagsimap2maildir PASSED                                                                           [ 52%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_06_flagsmaildir2imap PASSED                                                                           [ 57%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_07_uid_sequence PASSED                                                                                [ 63%]
test/tests/test_01_basic.py::TestBasicFunctions::test_01_olistartup SKIPPED                                                                                       [ 68%]
test/tests/test_01_basic.py::TestBasicFunctions::test_02_createdir SKIPPED                                                                                        [ 73%]
test/tests/test_01_basic.py::TestBasicFunctions::test_03_createdir_quote SKIPPED                                                                                  [ 78%]
test/tests/test_01_basic.py::TestBasicFunctions::test_04_nametransmismatch SKIPPED                                                                                [ 84%]
test/tests/test_01_basic.py::TestBasicFunctions::test_05_createmail SKIPPED                                                                                       [ 89%]
test/tests/test_01_basic.py::TestBasicFunctions::test_06_createfolders SKIPPED                                                                                    [ 94%]
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap PASSED                                                                                   [100%]

=========================================================================== warnings summary ============================================================================
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/offlineimap/CustomConfig.py:26: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
    SafeConfigParser.__init__(self)

test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py38/offlineimap3-8.0.0/test/OLItest/TestRunner.py:74: DeprecationWarning: This method will be removed in future versions.  Use 'parser.read_file()' instead.
    config.readfp(default_conf)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================================================================== short test summary info ========================================================================
SKIPPED [1] test/tests/test_01_basic.py:52: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:66: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:78: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:95: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:117: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:143: skpping test needs remote auth
=========================================================== 13 passed, 6 skipped, 6 warnings in 0.14 seconds ============================================================

Tested on py39:

===>   py39-offlineimap3-8.0.0 depends on file: /usr/local/bin/python3.9 - found
========================================================================== test session starts ==========================================================================
platform freebsd13 -- Python 3.9.9, pytest-4.6.11, py-1.9.0, pluggy-0.13.1 -- /usr/local/bin/python3.9
cachedir: .pytest_cache
rootdir: /wrkdirs/usr/ports/mail/py-offlineimap3/work-py39/offlineimap3-8.0.0
collected 19 items

test/tests/test_00_globals.py::TestOfflineimapGlobals::test_deletion PASSED                                                                                       [  5%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_double_init PASSED                                                                                    [ 10%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_initial_state PASSED                                                                                  [ 15%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_modification PASSED                                                                                   [ 21%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_nonexistent_key PASSED                                                                                [ 26%]
test/tests/test_00_globals.py::TestOfflineimapGlobals::test_object_changes PASSED                                                                                 [ 31%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit PASSED                                                                                   [ 36%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_02_flagsplit PASSED                                                                                   [ 42%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_04_flags2hash PASSED                                                                                  [ 47%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_05_flagsimap2maildir PASSED                                                                           [ 52%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_06_flagsmaildir2imap PASSED                                                                           [ 57%]
test/tests/test_00_imaputil.py::TestInternalFunctions::test_07_uid_sequence PASSED                                                                                [ 63%]
test/tests/test_01_basic.py::TestBasicFunctions::test_01_olistartup SKIPPED                                                                                       [ 68%]
test/tests/test_01_basic.py::TestBasicFunctions::test_02_createdir SKIPPED                                                                                        [ 73%]
test/tests/test_01_basic.py::TestBasicFunctions::test_03_createdir_quote SKIPPED                                                                                  [ 78%]
test/tests/test_01_basic.py::TestBasicFunctions::test_04_nametransmismatch SKIPPED                                                                                [ 84%]
test/tests/test_01_basic.py::TestBasicFunctions::test_05_createmail SKIPPED                                                                                       [ 89%]
test/tests/test_01_basic.py::TestBasicFunctions::test_06_createfolders SKIPPED                                                                                    [ 94%]
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap PASSED                                                                                   [100%]

=========================================================================== warnings summary ============================================================================
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py39/offlineimap3-8.0.0/offlineimap/CustomConfig.py:26: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
    SafeConfigParser.__init__(self)

test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_00_imaputil.py::TestInternalFunctions::test_01_imapsplit
test/tests/test_02_MappedIMAP.py::TestBasicFunctions::test_01_MappedImap
  /wrkdirs/usr/ports/mail/py-offlineimap3/work-py39/offlineimap3-8.0.0/test/OLItest/TestRunner.py:74: DeprecationWarning: This method will be removed in future versions.  Use 'parser.read_file()' instead.
    config.readfp(default_conf)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================================================================== short test summary info ========================================================================
SKIPPED [1] test/tests/test_01_basic.py:52: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:66: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:78: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:95: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:117: skpping test needs remote auth
SKIPPED [1] test/tests/test_01_basic.py:143: skpping test needs remote auth
=========================================================== 13 passed, 6 skipped, 6 warnings in 0.15 seconds ============================================================

Move to a GH_TAGNAME from the released 8.0.0 to include some IMAP fixes
All tests pass.

@dereks_lifeofadishwasher.com Can we the/an existing version format that upstream uses (vX.Y.Z), optionally suffixed appropriately with relevent git tag if its 'in between versions' ?

  • Change versioning to handbook: Example 19. Using USE_GITHUB to Access a Commit Between Two Versions
  • Update WWW: to Makefile
This revision was not accepted when it landed; it landed in state Needs Review.Dec 27 2022, 3:26 PM
This revision was automatically updated to reflect the committed changes.