[bazel] Provide the patch_version to Windows, too

Only including the patch version for Linux and MacOS packages appears to
have been an oversight. It has the side effect of Linux and MacOS
package version tags being different from the Windows one. They should
probably be kept in sync.

Change-Id: I9a88dd3f76f5dc5a8a5e03c5f745c683a1ba5968
Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/3pp/+/773825
Reviewed-by: Catherine Duncan <catduncan@google.com>
Commit-Queue: Ted Pudlik <tpudlik@google.com>
1 file changed
tree: 32be4bd6e58c024cfd917b36c8f11abf86a08df5
  1. armgcc/
  2. bazel/
  3. bazel_workspacelogparser/
  4. black/
  5. buildifier/
  6. buildozer/
  7. dtc/
  8. fsatrace/
  9. go/
  10. hexdump/
  11. nasm/
  12. pigz/
  13. xxd/
  14. AUTHORS
  15. CONTRIBUTING.md
  16. LICENSE
  17. OWNERS
  18. PATENTS
  19. README.md
README.md

Fuchsia Infra Third Party Packages (infra/3pp)

This repository is for third party package definitions to assemble and upload prebuilts to (CIPD) for consumption in fuchsia.git or for other Fuchsia infrastructure services.

Host source for new packages

Source for all packages must be mirrored and hosted internally at fuchsia.googlesource.com for security.

To request that a source be added to fuchsia.googlesource.com, you should:

  1. File a ticket with the Open Source Review Board for approval to host the desired source.

  2. Once the source has been approved, File a ticket with Foundation Infra to add the repository and set up mirroring.

Add new package configurations

To dive right into the source to understand how Chrome's 3pp recipe builds packages, follow the links below:

Documentation outlining how Chrome's 3pp recipe builds packages

Protobuf definitions and documentation for 3pp.pb files

For a more hands-on approach to learning, create a change adding a new subfolder named after whatever package you're trying to build and add a 3pp.pb file to that subfolder with the following contents, substituting contents in wickets <> where appropriate.

Upload your change to Gerrit and use the 3pp presubmit builders to test building your package. Delete all informational comments prior to submitting your change for review.

create {
    # Regular expression for target os+cpu architecture
    # This example resolves to linux-amd64, linux-arm64, mac-amd64, mac-arm64.
    platform_re: "(linux|mac)-(amd64|arm64)"

    # source options
    # git            Specify a git repository to pull the source from.
    # patch_version  Specify an additional patch to be appended to the version
    #                tag. This option is commonly used to build new versions of
    #                the same source tag by incrementing the patch count.
    #
    # Note: New packages should only use `git` as source and should point to 
    # fuchsia.googlesource.com repositories.
    # Older packages will be migrated in short order.
    source {
        # git options
        # repo         A url pointing at a git repository hosted at 
        #              fuchsia.googlesource.com.
        # tag_pattern  A string formatting pattern to identify tag versions.
        #              the 3pp recipe only builds the most latest tagged version
        #              and ignores any packages that already have built versions
        #              latest tag.
        git {
            repo: "https://fuchsia.googlesource.com/<your_source_directory>"
            tag_pattern: "v%s" # e.x. v1.2.3 -> 1.2.3
        }
    }

    # build options
    # install       The script that will execute to transform your source into
    #               the desired output.
    # dep           A package that will be built by 3pp first and used as input
    #               to this packages build scripts. The OS path for these 
    #               dependencies is passed into the build script as $2.
    # external_dep  Similar to dep except it imports an arbitrary CIPD package.
    build {
        install: "install.sh"
        dep: "<other-3pp-package>"
        external_dep: "path/to/external/package${platform}@<revision>"
    }

    # verify options
    # test     A script to verify that the package was created properly.
    #          The built package will be zipped and passed to the script as $1.
    verify {
        test: [ "verify.sh" ]
    }
}

# upload options
# pkg_prefix            A prefix to prepend to the uploaded package path. The
#                       root path is `fuchsia/third_party/`, so if pkg_prefix
#                       were set to "source", the full path would be
#                       `fuchsia/third_party/source/`.
# pkg_name_override     Overrides the name the package will be uploaded as. The
#                       default value is the directory name.
upload {
    pkg_prefix: ""
    pkg_name_override: "<your-package>"
}