Releasing Simulator-Bindings

  1. List Simics-Base package versions in simics-api-sys/build.rs by running:
ispm packages --list-available --json \ | awk '/\{/,EOF' \ | jq -r '.availablePackages[] | select(.pkgNumber == 1000) | .version' \ | tac \ | grep -v pre \ | sed -ne '/6.0.163/,$ p'
  1. Update command at bottom of simics-api-sys/build.rs with any missing versions from the list

  2. Install all supported Simics-Base package versions (update command with latest versions, here 6.0.207 and 7.0.20)

kinit; ispm packages -i 1000-6.0.{163..207} 1000-7.{0..20}.0

  1. Run the gen-api-items.rs script using the command in simics-api-sys/build.rs like:
./scripts/gen-simics-api-items.rs \ -s ~/simics/simics-6.0.163 \ -s ~/simics/simics-6.0.164 \ -s ~/simics/simics-6.0.165 \ -s ~/simics/simics-6.0.166 \ -s ~/simics/simics-6.0.167 \ -s ~/simics/simics-6.0.168 \ -s ~/simics/simics-6.0.169 \ -s ~/simics/simics-6.0.170 \ -s ~/simics/simics-6.0.171 \ -s ~/simics/simics-6.0.172 \ -s ~/simics/simics-6.0.173 \ -s ~/simics/simics-6.0.174 \ -s ~/simics/simics-6.0.175 \ -s ~/simics/simics-6.0.176 \ -s ~/simics/simics-6.0.177 \ -s ~/simics/simics-6.0.178 \ -s ~/simics/simics-6.0.179 \ -s ~/simics/simics-6.0.180 \ -s ~/simics/simics-6.0.181 \ -s ~/simics/simics-6.0.182 \ -s ~/simics/simics-6.0.183 \ -s ~/simics/simics-6.0.184 \ -s ~/simics/simics-6.0.185 \ -s ~/simics/simics-6.0.186 \ -s ~/simics/simics-6.0.187 \ -s ~/simics/simics-6.0.188 \ -s ~/simics/simics-6.0.189 \ -s ~/simics/simics-6.0.190 \ -s ~/simics/simics-6.0.191 \ -s ~/simics/simics-6.0.192 \ -s ~/simics/simics-6.0.193 \ -s ~/simics/simics-6.0.194 \ -s ~/simics/simics-6.0.195 \ -s ~/simics/simics-6.0.196 \ -s ~/simics/simics-6.0.197 \ -s ~/simics/simics-6.0.198 \ -s ~/simics/simics-6.0.199 \ -s ~/simics/simics-6.0.200 \ -s ~/simics/simics-6.0.201 \ -s ~/simics/simics-6.0.202 \ -s ~/simics/simics-6.0.203 \ -s ~/simics/simics-6.0.204 \ -s ~/simics/simics-6.0.205 \ -s ~/simics/simics-6.0.206 \ -s ~/simics/simics-6.0.207 \ -s ~/simics/simics-7.0.0 \ -s ~/simics/simics-7.1.0 \ -s ~/simics/simics-7.2.0 \ -s ~/simics/simics-7.3.0 \ -s ~/simics/simics-7.4.0 \ -s ~/simics/simics-7.5.0 \ -s ~/simics/simics-7.6.0 \ -s ~/simics/simics-7.7.0 \ -s ~/simics/simics-7.8.0 \ -s ~/simics/simics-7.9.0 \ -s ~/simics/simics-7.10.0 \ -s ~/simics/simics-7.11.0 \ -s ~/simics/simics-7.12.0 \ -s ~/simics/simics-7.13.0 \ -s ~/simics/simics-7.14.0 \ -s ~/simics/simics-7.15.0 \ -s ~/simics/simics-7.16.0 \ -s ~/simics/simics-7.17.0 \ -s ~/simics/simics-7.18.0 \ -s ~/simics/simics-7.19.0 \ -s ~/simics/simics-7.20.0 \ -o simics-api-sys/simics_api_items.rs
  1. Build high-level bindings for any new features that merit inclusion. Not all features have high-level bindings, but most do. These high level bindings should utilize the versioned cfg() directives.

  2. Run check script: ./check.sh

    • This will report issues with formatting (C and Python formatting can be ignored for releases, markdown and Rust issues should be fixed)
    • This will perform most checks done in CI including dependencies
    • Any dependencies that are outdated or flag vulnerabilities in audits should be updated
    • Any code which has breaking changes (very rare) should be fixed