Releases: chaseruskin/orbit
Releases · chaseruskin/orbit
0.22.0
Features
- ability to generate a new uuid to be copied into an existing ip using
orbit init --uuid
Changes
- changes table name
[systemverilog-format]
to[verilog-format]
in config.toml settings - relative path written to lockfile now stays as original unresolved relative path obtained from manifest to prevent lockfile being updated for nonrelevant reasons across systems
- string swapping during build process for dut, top, and tb name are now accessible as
orbit.dut.name
,orbit.top.name
, andorbit.tb.name
respectively
Fixes
- resolves bug where ip in channel would not display/use the ip's given uuid in the catalog
- improves module dependency detection for vhdl design units with better checks around subprogram declarations and subprogram bodies
- correctly identifies import statements within architecture of sv modules
0.21.0
Features
- allows versions to have an optional label (ex:
1.0.0-alpha
) - supports finding ip using their name and their uuid in the catalog
- adds uuid field to manifest
- adds
ORBIT_IP_UUID
environment variable - copies the ip's lockfile to the channel now too (not just the manifest)
- adds
--offline
flag to skip checking coherency with remote source when installing a local ip
Changes
- refactors how ips are stored in the archive and cache (uses uuid instead of name)
- writes the full ip spec to the lock file (includes uuid)
- extends checksum display length from 10 characters to 16 characters
- requires the uuid field for ip manifests
- reformats how uuid appears (uses base36 encoding instead of hyphenated format)
- creates lockfile during
orbit new
andorbit init
commands
Fixes
- resolves bug with trying to check if lockfile is up to date when comparing depedency UUIDs
0.20.0
Features
- improves install command to check the coherency with an ip's source
orbit config
writes modified values to place where value exists, with it being the global config if it does not exist at any level- adds additional check for data integrity during
orbit publish
by testing the download and install of the local ip from its source - adds
-t
switch for shorthand to use--target
option fororbit test
andorbit build
- "interface class" sv design elements are now detected
- "program" sv design elements are now detected
- "checker" sv design elements are now detected
- "primitive" verilog/sv design elements are now detected
- increases capabilities of
orbit config
to modify varying levels of configuration data - handles reading invalid UTF-8 code from HDL source code files
- adds
ip.include
andip.exclude
fields to the manifest format
Changes
- removes environment variables
ORBIT_CACHE
andORBIT_ARCHIVE
since they were dependent uponORBIT_HOME
and should not be messed with by the user - adopts easier approach to specifying design units using positional arguments for
orbit tree
command - no longer uses
.orbitignore
files, see the ip manifest'sip.include
andip.exclude
fields to now explicitly set what files should be ignored or included during an ip's file discovery - removes
explanation
field from targets and protocols in configuration data
Fixes
- errors if
include
key is set in non-global configuration file - improves robustness for verilog/sv module declaration parsing
0.19.1
Changes
- uses more descriptive error messages when trying to get or read a design unit that is not set to an allowed visibility for an external ip
Fixes
- fixes hashing of identifiers to use their corresponding hashing rules of their respective language
- safely handles unwrap() for VHDL package generics
0.19.0
Features
- adds support for parsing sv modports and using package scopes as types for module port declarations
- adds checks for duplicate names within local ip between sv files and between verilog files
- improves verilog/sv parsing
Changes
- improves component detection and filtering for
orbit tree
and dependency analysis during planning stage - enhances
orbit remove
to delete ip from cache and archive and ask confirmation prompt by default before doing destructive task - removes unncessary
orbit download
command; the recommended/common usage is to useorbit install
to add ip and its reverse actionorbit remove
to uninstall ip - minor updates and polishing to command documentation/man pages
Fixes
- error message for duplicate identifiers across languages now displays nicer file paths with line and column where units were declared
0.18.0
Features
- adds support for sv classes
- improves overall verilog/sv parsing support
- adds support for capturing multidimensional packed and unpacked arrays for module port/parameter delcarations for verilog/sv
- improves non-ANSI style port list parsing for verilog/sv
- adds ability to use
--json
for verilog and systemverilog modules withorbit get
command - adds global flag
--sync
to synchronize channels if they are stored on the internet as well as locally on the user's system - adds formatting options for verilog and sv languages by adding new table entry in configuration files: "systemverilog-format"
Changes
- formats the ip's manifest for writing it to the output index path of its channel during
orbit publish
Fixes
- resolves issues when compiler directives are used in port/parameter lists in verilog/sv
- resolves bug when installing a local ip without a lockfile would place it into archive but refuse to load it for future use due to erroneous state
0.17.0
Features
- implements first attempt at the full process for publishing an ip to a channel
- adds
ORBIT_IP_INDEX
environment variable during publish process for channels to use in custom processes - supports basic publish action where the manifest gets copied to the channel's index path
- implements a series of checks during the dry run of the
orbit publish
command - users can now straight install an ip directly from its manifest stored in a channel
- channels are now searched through to find ip manifests and report their data for
orbit search
andorbit view
- allows
source.tag
field in ip manifest to use string swapping - adds
channels
entry to the ip manifest - adds serde for
[[channel]]
in config.toml files - adds ability to specify a partial version for dependencies in an ip's manifest
orbit tree --ip
now reports the ip graph in sorted order for consistency between calls- allows strings of a target's argument list to support string swapping
- adds truncated checksum of local ip available as env var under
ORBIT_IP_CHECKSUM
- updates
orbit help
command to have latest manuals and available subcommands to display manual pages - adds
--no-clean
flag toorbit build
andorbit test
to prevent automatic cleaning before build process
Changes
- removes ability to disable hdl languages, leaving all of them permanently enabled
- source file visibility levels are ignored for relative ip dependencies
- renames
orbit launch
toorbit publish
in favor of clearer intentions behind the command
Fixes
- prevents user from naming local ip as dependency to prevent stack overflow
- resolves bug with protected files not being detected during hdl source code analysis as a cached ip or relative ip dependency
- resolves bug where string swapping would not occur on source url if using a custom protocol
Docs
- adds architecture diagram for topics overview page
- updates command workflow diagram to use newer commands
- renames "variable substitution" to "string swapping"
0.16.0
Features
- grants ability to omit the ip name during
orbit install
when using--url
if there is only 1 ip that exists at that url - adds support for specifying a relative path to an ip as dependency
- adds support for systemverilog
interface
design elements as well as detecting references to them in module port declarations - systemverilog code can now be read using
orbit read
command - adds support for verilog/systemverilog
config
design elements - adds support for systemverilog
package
design elements (along with detecting imports in other design elements)
Changes
- ip names can no longer end with a dash or underscore
- improves error messages surrounding planning stage and grabbing ips from a lockfile
- the default library for an ip is now the ip's "name" field, to override this provide a value for the "library" field in the manifest file
- Changes
--bench <unit>
option to--tb <unit>
fororbit test
- viewing design units of a local ip now display the private units by default without having to specify
--all
; private units are typically hidden on views of ip outside the local path
Fixes
- fixes
--force
behavior onorbit install
to now correctly store the archive of an ip's version - explicit relative dependences are now correctly chosen over cached versions of that ip if they exist as well
- fixes bug where user could change ip name and ip would not verify the name is allowed when loading the manifest
- adds hints and clearer error messages around build process (
orbit build
,orbit test
) and tree viewing (orbit tree
) - adds proper error message when a source file does not contain valid UTF-8 data instead of panicking
- properly detects module instances that use the range specificer in verilog and systemverilog files
0.15.0
This update brings initial support for SystemVerilog! Now Orbit can recognize and sort the order of design units across VHDL, Verilog, and SystemVerilog source code.
Features
- initial systemverilog support includes: module declarations, instantiations, wire declarations, recognition within Verilog and VHDL files (TODO: handle import statements, classes, packages, structs, allow reading of systemverilog source code using
orbit read
)
Fixes
- the path displayed for the blueprint file after the planning stage in the build process now is unified across platforms and will use '/' and never '' in path
0.14.0
This update brings a more streamlined command sequence/development process, better error messages, and the first initial support for Verilog!
Features
- initial verilog support includes: module declarations, instantiations, wire declarations, recognition within VHDL files, DST, reading verilog files using
orbit read
, setting them as top level units or testbenches for the build process - adds new environment variable
ORBIT_DUT
set duringorbit test
- allow targets to define what types of blueprints they can handle
- adds
--library
option toorbit get
command - allows configuration file to be found on parent directories of the current working path with appropriate precedence
- adds
orbit lock
command to save the state of the local ip by writing the Orbit.lock file - allows
orbit config
to change the language support mode
Changes
- targets are new spawned inside a folder with their name within the
TARGET_DIR
directory (this is where the blueprint and .env file are written during the planning stage as well) orbit test
forces user to have a testbench, if there is not one, seeorbit build
- no longer allows
orbit build
to specify a testbench, seeorbit test
- fixes configuration precedence
- renames "plugin" to "target" to more closely align with software language terminology relating to back end processes
- renames "downloads" directory to "archive" to better describe what is stored in that catalog level
- deprecates
plan
command- this step is now integrated into thebuild
andtest
commands for a more unified development approach - renames
show
command toview
and adds new switches (-u
,-v
) for faster lookups for units and versions of an ip - Adds more error messages
Fixes
- renames library in blueprint if it is a matching identifier to one that is a design unit that underwent DST in that particular ip during the planning stage of the build process
Documents
- updates tutorials with latest changes
- adds information about ip and their naming
- adds information about catalog
- adds information about targets
- adds information of configurations