Coder Social home page Coder Social logo

Comments (4)

widdowquinn avatar widdowquinn commented on August 11, 2024

Please take a look at the current config file in master - especially the {{ .Environment.CIRCLE_JOB }} variable. This allows generation of a different cache for each job (which is labelled by Python version). It might help solve this issue.

from pyani.

widdowquinn avatar widdowquinn commented on August 11, 2024

The issue is not due to addition of 3.10 to the testing regime, nor is it a race condition. See, for example, these tests from two weeks ago which include 3.10. The addition of 3.10 did not affect the caches or cause tests to fail.

This error shows up in the output of the failing weekly test from last night, and also a rerun attempt from this morning:

No cache is found for key: pyani-dependencies-pip-test-3_6-master-da3jx1LEx0gkAIgefJ5iMRLVM7hdjqi9JjBD3OvOMPU=-L0fQL8O1iX_M7RxM4JztjAKBr1MQZkPTPjPEEDWFUsg=-9d74ucTAWWIVfvhVDcd7BefcSv0vkZ6HoBAR7SgHFGU=-d9izQU5kl66+eu+mVmhbBpQrXnf_WmOX7GuPDo_aEHs=-7aGwkbVHgb1mq7X3jvzfi0HG+BpEQnskhs+SPAyb7vk=-46ue63j8fWJKEaZqizie8cVoT6U3WSakueY_GUGmoIA=-m+9vCcft76CH2_rNJE7yS7OyRr9a8NXsXSG865RBfS0=
Found a cache from build 3125 at pyani-dependencies-pip-

which shows that the caching information for test-3_6 (encoded in {{ .Environment.CIRCLE_JOB }}) was not present, so CircleCI picked up a different cache from build 3125 - possibly the one from the failing tests immediately preceding it, which also reused an earlier non-specific cache - possibly the source of the incompatibility @baileythegreen saw in the anib123 test and describes above.

I have removed the fallback option in CircleCI (which allows the pickup of non-specific caches that match the wildcard) with commit 6656761. This prevents reuse of any other than the exactly matching cache ID. The Python 3.6 tests now pass - as do the other test runs.

The documentation for CircleCI dependency caching can be found here.

from pyani.

widdowquinn avatar widdowquinn commented on August 11, 2024

To answer this question:

Lines 84–86 of .circleci/config.yml are where this is saved; is there a reason for this (perhaps the package takes a long time to load/install)?

      - save_cache:
          paths:
            - /home/circleci/.pyenv

I think there is a misunderstanding about the meaning of that field. The path field in save_cache declares which paths (directories or files) are stored in the cache - further details can be found here. Most, if not all, of the Python dependency files we install are under that path and - yes - caching the Python dependencies does save time in the tests.

from pyani.

widdowquinn avatar widdowquinn commented on August 11, 2024

@widdowquinn Should we be using a different version of pyenv for each python installation, or do we only want to change this for the point of failure?

Hopefully the comments above are clear enough, but to answer directly: no.

CircelCI uses pyenv to manage Python versions. By running a different Python version in each test job, we are already using a different instance of pyenv on a different image, for each Python version.

from pyani.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.