Releases: Boavizta/boaviztapi
Releases · Boavizta/boaviztapi
v1.3.7
What's Changed
- fix(docker): fix Docker build and update dev instructions for running image locally by @Shillaker in #353
- Change life time of AWS servers from 4 to 6 years (#354) by @davidkopp in #354
New Contributors
- @davidkopp made their first contribution in #354
Full Changelog: v1.3.6...v1.3.7
v1.3.6
What's Changed
- Fixing bugs : #287 #297 #348
- chore(python): upgrade to Python 3.12 by @Shillaker in #347
Full Changelog: v1.3.4...v1.3.6
v1.3.4
What's Changed
- feat: scaleway instances by @Shillaker in #325
- chore(ci): update cache action to v4 to support node 20 by @demeringo in #319
- fix: change base docker image to allow application startup by @demeringo in #321
- Adding a route GET "/version" by @da-ekchajzer in #326
- Add Xeon 6455B to cpu_specs.csv by @JX5671 in #295
- chore(deps): updating dependencies - CVE-2024-47874 by @demeringo in #333
- Some bug fix + Scaleway comput instances by @da-ekchajzer in #331
- chore(deps): bump cross-spawn from 6.0.5 to 6.0.6 by @dependabot in #337
New Contributors
Full Changelog: 1.3...1.3.4
v1.3
This release adds Azure instances to the API and fixes some security issues.
What's Changed
- Updated reference factors to match Green Cloud Computing study by @tibosmn in #288
- Providing data for Azure virtual machines by @bpetit and @bdromard in #282
- Adding test for Azure cloud instances by @da-ekchajzer in #300
- chore(ci): upgrade github actions that rely on Node 16. by @demeringo in #290
- chore(ci): Run python tests when dependencies are updated. by @demeringo in #303
- Bump es5-ext from 0.10.61 to 0.10.64 by @dependabot in #304
- Bump certifi from 2024.2.2 to 2024.7.4 by @dependabot in #310
- Bump jinja2 from 3.1.3 to 3.1.4 by @dependabot in #308
- Bump urllib3 from 2.2.1 to 2.2.2 by @dependabot in #306
- Bump idna from 3.6 to 3.7 by @dependabot in #305
- Bump zipp from 3.17.0 to 3.19.1 by @dependabot in #307
- Bump semver from 5.7.1 to 5.7.2 by @dependabot in #312
- Bump requests from 2.31.0 to 2.32.2 by @dependabot in #309
- chore(deps): update fastapi to 0.115.0 and pydantic to 2.9.2 by @demeringo in #315
- Integrate latest developments by @demeringo in #316
New Contributors
- @dependabot made their first contribution in #304
Full Changelog: v1.2.4...v1.3
v1.2.4
What's Changed
- Docs: automate the generation of the tutorial output in the documentation by @valentinchaud in #266
- Bugfix/268 by @da-ekchajzer in #269
- Fixing error 500 when unknown manufacturer for RAM & SSD by @da-ekchajzer in #273
- Upgrade to python 3.9 by @da-ekchajzer in #278
- Tests(cloud): reduce verbosity of cloud tests by @Shillaker in #272
- Remove 0.491 constant value from CPU die size by @tibosmn in #279
- Tests(compatibility): add matrix test strategy for Python versions by @Shillaker in #277
- Feat(compatibility): add tool for checking Python compatibility locally by @Shillaker in #276
- Fixing typos in documentations
Important
This version may slightly update the values of embedded impacts returned by he API (e.g. Boavizta/cloud-scanner#467)
New Contributors
- @valentinchaud made their first contribution in #266
- @Shillaker made their first contribution in #272
Full Changelog: v1.2.2...v1.2.4
v1.2.2
Update pyproject.toml
v1.2.1
v1.2.1
What's Changed
Adding new cloud instances is now easier. Simply define the resources they reserve and identify the server archetype on which the instance will be hosted. Refer to the contribution documentation for more information.
Internal changes
- Externalizing impacts computation outside the asset's model by creating a service for this purpose (boaviztapi/service/impacts_computation.py)
- Updating cloud instance model and impacts computation in line with : #252 (comment)
- Improve impact model (boaviztapi/model/impact.py). All the assets keep the impacts as an attribute once they have been calculated. Performance is significantly improved in the event of a verbose call.
Bug fixes
- Power consumption was modelled for one component unit. Consumption was only multiplied by the number of components when calculating impacts at device level. The consumption of the component now reflects the consumption of all the units.
- #256
- #257
- #243
- #248
Breaking changes
- 'instance_per_instance' is no longer included in the verbose output of the cloud route.
- Previously, the verbose returned the impacts of each platform's components in their entirety. Now, only the impacts associated with the instance are returned for each component. Components impacts returned by cloud router shouldn't be divided by
instance_per_instance
.
Contributors
New Contributors
- @cosmastech made their first contribution in #243
- @tibosmn made their first contribution in #248
Other contributors
@da-ekchajzer
@samuelrince
@JacobValdemar
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
- Add independent Dockerfile by @JacobValdemar in #239
- Add missing aws instances by @JacobValdemar and @github-benjamin-davy in #237
Full Changelog: v1.0.1...v1.1.0
v1.0.1
v1.0.0
v1.0.0
New features
- Add new end-user devices from Base Empreinte
- Add PEF impacts criteria
- Add IoT device impacts
- Add min/max values depending on user input completeness
- Add warnings
- Improvement of the completion process from CPU name
- Adding around 2000 CPUs for completion
- Adding utils routers (list available data for string fields, archetypes routers, etc.)
- Users can now choose the impact factors to compute
- Users can now add a special message to the home page of the API
- Refactor and normalize routes names
- CPU die is now express in mm2 instead of cm2
- Refactor the allocation process based on duration
Internal changes
- Facilitating the completion process
- Facilitating the process of adding new devices
- Facilitating the archetype process
- Externalize the impact factors in a separate file
- Create a config file
- CPU die completion now use cpu spec file
- CPU uses die_size instead of die_size_per_core
Breaking changes
Cloud routers
Before
- We add one rout per cloud provider (e.g.
/v1/cloud/aws
)
Now
- We have only one route for all cloud providers (e.g.
/v1/cloud/instance
) - Each route has a parameter called
provider
(in the url for GET requests, in the body for POST requests).
Duration & allocation
Before
- Duration was a field in the usage object called
hours_use_time
.
{
"usage": {
"hours_use_time": 2,
}
}
- Allocation was a route parameter.
Now
- Duration is now a route parameter. Allocation is no longer used
- If not provided, we use the lifetime of the device as duration.
- We compute usage impacts hover the
duration
and allocate embedded impacts on theduration
hover the lifetime of the device. - We introduce the notion of
use_time_ratio
which is the proportion of time the device is used during the given duration. When a device is always used, the usage ratio is 1. When a device is never used, the usage ratio is 0.
{
"usage": {
"use_time_ratio": 0.5,
}
}
Impacts format
Before
"gwp": {
"manufacture": 1900,
"use": 260,
"unit": "kgCO2eq"
},
or
"manufacture_impacts": {
"gwp": {
"value": 23.8,
"unit": "kgCO2eq"
},
"pe": {
"value": 353,
"unit": "MJ"
},
"adp": {
"value": 0.02,
"unit": "kgSbeq"
}
}
}
Now
- Impact formats are now unified.
- "manufacture" is now called "embedded"
"impacts": {
"gwp": {
"embedded": {
"value": 6.68,
"min": 6.68,
"max": 6.68,
"warnings": [
"End of life is not included in the calculation"
]
},
"use": "not implemented",
"unit": "kgCO2eq",
"description": "Total climate change"
},
Verbose format
Before
"USAGE": {
...
"usage_impacts": {
...
}
"avg_power": {
"value": 94.62364134445255,
"unit": "W",
"status": "COMPLETED",
"source": null
},
...
}
Now
- For each component, all attributes are now at the same level in the dictionary.
- Usage impacts are now in the "impacts" dictionary
- Usage attributes are now at the same level as the other attributes
- Attributes may have a "min", a "max" and a "warnings" field.
"CPU-1": {
"impacts": {
"gwp": {
"embedded": {
"value": 64.7,
"significant_figures": 3,
"min": 24.6,
"max": 149,
"warnings": [
"End of life is not included in the calculation"
]
},
"use": {
"value": 160,
"significant_figures": 2,
"min": 160,
"max": 160
},
"unit": "kgCO2eq",
"description": "Total climate change"
}
},
"die_size_per_core": {
"value": 0.47078947368421054,
"status": "COMPLETED",
"unit": "mm2",
"source": "Average for Skylake",
"min": 0.07,
"max": 1.02
}
...
}
Contributors
@AirLoren
@csauge
@da-ekchajzer
@samuelrince
@dorev
@demeringo
@PierreRust
Known future requirements
- Mobile and fix network impacts
- Generalize the AWS process to other cloud providers
- GPU impacts
- Add multiple impact factors for depending on the engraving process size
- Screen impacts from characteristics
- Take into account the uncertainty of the impact factors
- Adding a system layer