Skip to content

Releases: Boavizta/boaviztapi

v1.3

25 Sep 15:12
Compare
Choose a tag to compare

This release adds Azure instances to the API and fixes some security issues.

What's Changed

New Contributors

Full Changelog: v1.2.4...v1.3

v1.2.4

18 Mar 12:07
5c86f53
Compare
Choose a tag to compare

What's Changed

Important

This version may slightly update the values of embedded impacts returned by he API (e.g. Boavizta/cloud-scanner#467)

New Contributors

Full Changelog: v1.2.2...v1.2.4

v1.2.2

17 Jan 21:42
23cb4b7
Compare
Choose a tag to compare
Update pyproject.toml

v1.2.1

16 Jan 00:12
Compare
Choose a tag to compare

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

Other contributors

@da-ekchajzer
@samuelrince
@JacobValdemar

Full Changelog: v1.1.0...v1.2.0

v1.1.0

19 Nov 17:12
cd7cb83
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.0.1...v1.1.0

v1.0.1

12 Oct 11:30
Compare
Choose a tag to compare

v1.0.0

10 Oct 21:49
93d803e
Compare
Choose a tag to compare

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 the duration 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

v1.0.0a5

30 Aug 15:09
7ff1aff
Compare
Choose a tag to compare
v1.0.0a5 Pre-release
Pre-release

1.0.0a4

30 Jun 14:28
743be68
Compare
Choose a tag to compare
1.0.0a4 Pre-release
Pre-release
Update pyproject.toml

v1.0.0a3

05 Jun 09:58
c46592d
Compare
Choose a tag to compare
v1.0.0a3 Pre-release
Pre-release

An alpha release of the future API v1.0.0.

⚠ Although stable, this alpha release should be used for testing purposes.

It contains Work In Progress, and introduces breaking changes in the format of the data returned compared to the v0.2.x API.

See https://dev.doc.api.boavizta.org/release_notes/

What's Changed

New Contributors

Full Changelog: v0.2.2...v0.3.0-alpha