Skip to content
  • Josh Smith's avatar
    Refactored project such that top level hdlmake directory is now a package.... · 089b2af4
    Josh Smith authored
    Refactored project such that top level hdlmake directory is now a package. Added for easy packaging of project with setuptools. Note that installation instructions (and how to run hdlmake) has changed!
    Related changes:
    - hdlmake/ file now exists as a single location to manage the version of hdlmake. This is used by Sphinx docs,, and hdlmake itself.
    - Cleaned up some circular dependencies in hdlmake.fetch package. This changed the design of backend_factory such that it no longer depends on importing git/svn fetchers.
    - Added tests/ Right now it has one test which iterates through all of the top level sim and syn Manifest files and attempts to run hdlmake against them. This acts as a crude regression test.
    - Added This installs setuptools if it is not available in the python environment. This guarantees that will work.
    - Added This lists non-hdlmake application data that should be included in a source distribution (documentation, test files, etc)
    - Updated Sphinx docs to agree with the new package/module structure (with hdlmake as a top level package). Note that the installation instructions have changed.
    Stealth changes:
    - hdlmake now will return a non-zero exit code when an exception is caught at the top level. Previously the exception was caught and hdlmake exited with 0 exit code. This was confusing because it actually was a failure.
    - Fixed a small bug in where version_key may not exist in env dictionary, causing an exception, instead of printing the helpful error message.
    - Packages are the means of sharing Python code. The whole application should be bundled in a package.
    - Easier distribution of project via setuptools
    - Installation via / setuptools automatically creates executable hdlmake script
    - Utilizing setuptools allows for possibility of distributing releases via PyPI.
    - Possible to import from any module in hdlmake for purposes of unit testing without sys.path hacking.