• Josh Smith's avatar
    Refactored project such that top level hdlmake directory is now a package. Added… · 089b2af4
    Josh Smith authored
    Refactored project such that top level hdlmake directory is now a package. Added setup.py for easy packaging of project with setuptools. Note that installation instructions (and how to run hdlmake) has changed!
    
    Related changes:
    - hdlmake/_version.py file now exists as a single location to manage the version of hdlmake. This is used by Sphinx docs, setup.py, 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/run_tests.py. 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 ez_setup.py. This installs setuptools if it is not available in the python environment. This guarantees that setup.py will work.
    - Added Manifest.in. 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 synthesis_project.py where version_key may not exist in env dictionary, causing an exception, instead of printing the helpful error message.
    
    Rationale:
    - 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 setup.py / 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.
    089b2af4
Name
Last commit
Last update
docs Loading commit data...
hdlmake Loading commit data...
scripts Loading commit data...
tests Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
COPYING Loading commit data...
MANIFEST.in Loading commit data...
ez_setup.py Loading commit data...
setup.py Loading commit data...