github.com/rumpl/bof@v23.0.0-rc.2+incompatible/api/types/versions/README.md (about)

     1  # Legacy API type versions
     2  
     3  This package includes types for legacy API versions. The stable version of the API types live in `api/types/*.go`.
     4  
     5  Consider moving a type here when you need to keep backwards compatibility in the API. This legacy types are organized by the latest API version they appear in. For instance, types in the `v1p19` package are valid for API versions below or equal `1.19`. Types in the `v1p20` package are valid for the API version `1.20`, since the versions below that will use the legacy types in `v1p19`.
     6  
     7  ## Package name conventions
     8  
     9  The package name convention is to use `v` as a prefix for the version number and `p`(patch) as a separator. We use this nomenclature due to a few restrictions in the Go package name convention:
    10  
    11  1. We cannot use `.` because it's interpreted by the language, think of `v1.20.CallFunction`.
    12  2. We cannot use `_` because golint complains about it. The code is actually valid, but it looks probably more weird: `v1_20.CallFunction`.
    13  
    14  For instance, if you want to modify a type that was available in the version `1.21` of the API but it will have different fields in the version `1.22`, you want to create a new package under `api/types/versions/v1p21`.