github.com/goreleaser/goreleaser@v1.25.1/www/docs/deprecations.md (about)

     1  # Deprecation notices
     2  
     3  This page is used to list deprecation notices across GoReleaser.
     4  
     5  Deprecated options are only removed on major versions of GoReleaser.
     6  
     7  Nevertheless, it's a good thing to keep your configuration up-to-date to prevent
     8  any issues.
     9  
    10  You can check your use of deprecated configurations by running:
    11  
    12  ```sh
    13  goreleaser check
    14  ```
    15  
    16  ## Active deprecation notices
    17  
    18  <!--
    19  
    20  Template for new deprecations:
    21  
    22  ### property
    23  
    24  > since yyyy-mm-dd (v1.xx)
    25  
    26  Description.
    27  
    28  === "Before"
    29  
    30      ```yaml
    31      foo: bar
    32      ```
    33  
    34  === "After"
    35  
    36      ```yaml
    37      foo: bar
    38      ```
    39  
    40  -->
    41  
    42  ### archives.strip_parent_binary_folder
    43  
    44  > since 2024-03-29 (v1.25)
    45  
    46  Property was renamed to be consistent across all configurations.
    47  
    48  === "Before"
    49  
    50      ```yaml
    51      archives:
    52        -
    53          strip_parent_binary_folder: true
    54      ```
    55  
    56  === "After"
    57  
    58      ```yaml
    59      archives:
    60        -
    61          strip_binary_directory: true
    62      ```
    63  
    64  ### blobs.folder
    65  
    66  > since 2024-03-29 (v1.25)
    67  
    68  Property was renamed to be consistent across all configurations.
    69  
    70  === "Before"
    71  
    72      ```yaml
    73      blobs:
    74        -
    75          folder: foo
    76      ```
    77  
    78  === "After"
    79  
    80      ```yaml
    81      blobs:
    82        -
    83          directory: foo
    84      ```
    85  
    86  ### brews.folder
    87  
    88  > since 2024-03-29 (v1.25)
    89  
    90  Property was renamed to be consistent across all configurations.
    91  
    92  === "Before"
    93  
    94      ```yaml
    95      brews:
    96        -
    97          folder: foo
    98      ```
    99  
   100  === "After"
   101  
   102      ```yaml
   103      brews:
   104        -
   105          directory: foo
   106      ```
   107  
   108  ### scoops.folder
   109  
   110  > since 2024-03-29 (v1.25)
   111  
   112  Property was renamed to be consistent across all configurations.
   113  
   114  === "Before"
   115  
   116      ```yaml
   117      scoops:
   118        -
   119          folder: foo
   120      ```
   121  
   122  === "After"
   123  
   124      ```yaml
   125      scoops:
   126        -
   127          directory: foo
   128      ```
   129  
   130  ### furies.skip
   131  
   132  > since 2024-03-03 (v1.25)
   133  
   134  Changed to `disable` to conform with all other pipes.
   135  
   136  === "Before"
   137  
   138      ```yaml
   139      furies:
   140        - skip: true
   141      ```
   142  
   143  === "After"
   144  
   145      ```yaml
   146      furies:
   147        - disable: true
   148      ```
   149  
   150  ### changelog.skip
   151  
   152  > since 2024-01-14 (v1.24)
   153  
   154  Changed to `disable` to conform with all other pipes.
   155  
   156  === "Before"
   157  
   158      ```yaml
   159      changelog:
   160        skip: true
   161      ```
   162  
   163  === "After"
   164  
   165      ```yaml
   166      changelog:
   167        disable: true
   168      ```
   169  
   170  ### blobs.kmskey
   171  
   172  > since 2024-01-07 (v1.24)
   173  
   174  Changed to `kms_key` to conform with all other options.
   175  
   176  === "Before"
   177  
   178      ```yaml
   179      blobs:
   180        - kmskey: foo
   181      ```
   182  
   183  === "After"
   184  
   185      ```yaml
   186      blobs:
   187        - kms_key: foo
   188      ```
   189  
   190  ### blobs.disableSSL
   191  
   192  > since 2024-01-07 (v1.24)
   193  
   194  Changed to `disable_ssl` to conform with all other options.
   195  
   196  === "Before"
   197  
   198      ```yaml
   199      blobs:
   200        - disableSSL: true
   201      ```
   202  
   203  === "After"
   204  
   205      ```yaml
   206      blobs:
   207        - disable_ssl: true
   208      ```
   209  
   210  ### `--skip`
   211  
   212  > since 2023-09-14 (v1.21)
   213  
   214  The following `goreleaser release` flags were deprecated:
   215  
   216  - `--skip-announce`
   217  - `--skip-before`
   218  - `--skip-docker`
   219  - `--skip-ko`
   220  - `--skip-publish`
   221  - `--skip-sbom`
   222  - `--skip-sign`
   223  - `--skip-validate`
   224  
   225  By the same token, the following `goreleaser build` flags were deprecated:
   226  
   227  - `--skip-before`
   228  - `--skip-post-hooks`
   229  - `--skip-validate`
   230  
   231  All these flags are now under a single `--skip` flag, that accepts multiple
   232  values.
   233  
   234  === "Before"
   235  
   236      ```sh
   237      goreleaser build --skip-before --skip-validate
   238      goreleaser release --skip-validate --skip-publish
   239      ```
   240  
   241  === "After"
   242  
   243      ```sh
   244      goreleaser build --skip=before,validate
   245      goreleaser release --skip=validate,publish
   246  
   247      # or
   248  
   249      goreleaser build --skip=before --skip=validate
   250      goreleaser release --skip=validate --skip=publish
   251      ```
   252  
   253  You can check `goreleaser build --help` and `goreleaser release --help` to see
   254  the valid options, and shell autocompletion should work properly as well.
   255  
   256  ### scoops.bucket
   257  
   258  > since 2023-06-13 (v1.19.0)
   259  
   260  Replace `bucket` with `repository`.
   261  
   262  === "Before"
   263  
   264      ```yaml
   265      scoops:
   266        -
   267          bucket:
   268            - name: foo
   269              owner: bar
   270      ```
   271  
   272  === "After"
   273  
   274      ```yaml
   275      scoops:
   276        -
   277          repository:
   278            - name: foo
   279              owner: bar
   280      ```
   281  
   282  ### krews.index
   283  
   284  > since 2023-06-13 (v1.19.0)
   285  
   286  Replace `index` with `repository`.
   287  
   288  === "Before"
   289  
   290      ```yaml
   291      krews:
   292        -
   293          index:
   294            - name: foo
   295              owner: bar
   296      ```
   297  
   298  === "After"
   299  
   300      ```yaml
   301      krews:
   302        -
   303          repository:
   304            - name: foo
   305              owner: bar
   306      ```
   307  
   308  ### brews.tap
   309  
   310  > since 2023-06-13 (v1.19.0)
   311  
   312  Replace `tap` with `repository`.
   313  
   314  === "Before"
   315  
   316      ```yaml
   317      brews:
   318        -
   319          tap:
   320            - name: foo
   321              owner: bar
   322      ```
   323  
   324  === "After"
   325  
   326      ```yaml
   327      brews:
   328        -
   329          repository:
   330            - name: foo
   331              owner: bar
   332      ```
   333  
   334  ### archives.rlcp
   335  
   336  > since 2023-06-06 (v1.19.0)
   337  
   338  This option is now default and can't be changed. You can remove it from your
   339  configuration files.
   340  
   341  See [this](#archivesrlcp_1) for more info.
   342  
   343  ### source.rlcp
   344  
   345  > since 2023-06-06 (v1.19.0)
   346  
   347  This option is now default and can't be changed. You can remove it from your
   348  configuration files.
   349  
   350  See [this](#sourcerlcp_1) for more info.
   351  
   352  ### brews.plist
   353  
   354  > since 2023-06-06 (v1.19.0)
   355  
   356  `plist` is deprecated by Homebrew, and now on GoReleaser too. Use `service`
   357  instead.
   358  
   359  === "Before"
   360  
   361      ```yaml
   362      brews:
   363      -
   364        plist: |
   365          <?xml version="1.0" encoding="UTF-8"?>
   366          <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   367          <plist version="1.0">
   368          <dict>
   369          # etc ...
   370      ```
   371  
   372  === "After"
   373  
   374      ```yaml
   375      brews:
   376      -
   377        service: |
   378          run [opt_bin/"mybin"]
   379          keep_alive true
   380          # etc ...
   381      ```
   382  
   383  ### --debug
   384  
   385  > since 2023-05-16 (v1.19.0)
   386  
   387  `--debug` has been deprecated in favor of `--verbose`.
   388  
   389  === "Before"
   390  
   391      ```bash
   392      goreleaser release --debug
   393      ```
   394  
   395  === "After"
   396  
   397      ```bash
   398      goreleaser release --verbose
   399      ```
   400  
   401  ### scoop
   402  
   403  > since 2023-04-30 (v1.18.0)
   404  
   405  GoReleaser now allows many `scoop` configurations, so it should be pluralized
   406  [accordingly](/customization/scoop).
   407  
   408  === "Before"
   409  
   410      ```yaml
   411      scoop:
   412        # ...
   413      ```
   414  
   415  === "After"
   416  
   417      ```yaml
   418      scoops:
   419      - # ...
   420      ```
   421  
   422  ### build
   423  
   424  > since 2023-02-09 (v1.16.0)
   425  
   426  This option was still being supported, even though undocumented, for a couple
   427  of years now. It's finally time to sunset it.
   428  
   429  Simply use the pluralized form, `builds`, according to the
   430  [documentation](/customization/builds).
   431  
   432  === "Before"
   433  
   434      ```yaml
   435      build:
   436        # ...
   437      ```
   438  
   439  === "After"
   440  
   441      ```yaml
   442      builds:
   443      - # ...
   444      ```
   445  
   446  ### --rm-dist
   447  
   448  > since 2023-01-17 (v1.15.0)
   449  
   450  `--rm-dist` has been deprecated in favor of `--clean`.
   451  
   452  === "Before"
   453  
   454      ```bash
   455      goreleaser release --rm-dist
   456      ```
   457  
   458  === "After"
   459  
   460      ```bash
   461      goreleaser release --clean
   462      ```
   463  
   464  ### nfpms.maintainer
   465  
   466  > since 2022-05-07 (v1.9.0)
   467  
   468  nFPM will soon make mandatory setting the maintainer field.
   469  
   470  === "Before"
   471  
   472      ```yaml
   473      nfpms:
   474      - maintainer: ''
   475      ```
   476  
   477  === "After"
   478  
   479      ```yaml
   480      nfpms:
   481      - maintainer: 'Name <email>'
   482      ```
   483  
   484  ## Expired deprecation notices
   485  
   486  The following options were deprecated in the past and were already removed.
   487  
   488  ### archives.rlcp
   489  
   490  > since 2022-12-23 (v1.14.0), removed 2023-06-06 (v1.19.0)
   491  
   492  This is not so much a deprecation property (yet), as it is a default behavior
   493  change.
   494  
   495  The usage of relative longest common path (`rlcp`) on the destination side of
   496  archive files will be enabled by default by June 2023. Then, this option will be
   497  deprecated, and you will have another 6 months (until December 2023) to remove
   498  it.
   499  
   500  For now, if you want to keep the old behavior, no action is required, but it
   501  would be nice to have your opinion [here][rlcp-discuss].
   502  
   503  [rlcp-discuss]: https://github.com/goreleaser/goreleaser/discussions/3659
   504  
   505  If you want to make sure your releases will keep working properly, you can
   506  enable this option and test it out with
   507  `goreleaser release --snapshot --clean`.
   508  
   509  === "After"
   510  
   511      ```yaml
   512      archives:
   513      -
   514        rlcp: true
   515      ```
   516  
   517  ### source.rlcp
   518  
   519  > since 2022-12-23 (v1.14.0), removed 2023-06-06 (v1.19.0)
   520  
   521  Same as [`archives.rlcp`](#archivesrlcp).
   522  
   523  === "After"
   524  
   525      ```yaml
   526      source:
   527        rlcp: true
   528      ```
   529  
   530  ### nfpms.maintainer
   531  
   532  > since 2022-05-07 (v1.9.0)
   533  
   534  nFPM will soon make mandatory setting the maintainer field.
   535  
   536  === "Before"
   537  
   538      ```yaml
   539      nfpms:
   540      - maintainer: ''
   541      ```
   542  
   543  === "After"
   544  
   545      ```yaml
   546      nfpms:
   547      - maintainer: 'Name <email>'
   548      ```
   549  
   550  ### archives.replacements
   551  
   552  > since 2022-11-24 (v1.14.0), removed 2023-06-06 (v1.19.0)
   553  
   554  The `replacements` will be removed soon from the archives section, as it was
   555  never handled correctly when multiple archives were being used, and it also
   556  causes confusion in other places.
   557  
   558  You can still get the same features by abusing the `name_template` property.
   559  
   560  === "Before"
   561  
   562      ```yaml
   563      archives:
   564        - id: foo
   565          name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
   566          replacements:
   567            darwin: Darwin
   568            linux: Linux
   569            windows: Windows
   570            386: i386
   571            amd64: x86_64
   572      ```
   573  
   574  === "After"
   575  
   576      ```yaml
   577      archives:
   578        - id: foo
   579          name_template: >-
   580            {{- .ProjectName }}_
   581            {{- title .Os }}_
   582            {{- if eq .Arch "amd64" }}x86_64
   583            {{- else if eq .Arch "386" }}i386
   584            {{- else }}{{ .Arch }}{{ end }}
   585            {{- if .Arm }}v{{ .Arm }}{{ end -}}
   586      ```
   587  
   588  Those two configurations will yield the same results.
   589  
   590  Notice that if you are using the `archives.name_template`, notice it also has a
   591  `{{.Version}}` in it. Adjust the new `name_template` accordingly.
   592  
   593  ### nfpms.replacements
   594  
   595  > since 2022-11-24 (v1.14.0), removed 2023-06-06 (v1.19.0)
   596  
   597  The `replacements` will be removed soon from the nFPMs section.
   598  
   599  You can still get the same features by abusing the `file_name_template` property.
   600  
   601  === "Before"
   602  
   603      ```yaml
   604      nfpms:
   605        - id: foo
   606          file_name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
   607          replacements:
   608            darwin: Darwin
   609            linux: Linux
   610            windows: Windows
   611            386: i386
   612            amd64: x86_64
   613      ```
   614  
   615  === "After"
   616  
   617      ```yaml
   618      nfpms:
   619        - id: foo
   620          file_name_template: >-
   621            {{- .ProjectName }}_
   622            {{- title .Os }}_
   623            {{- if eq .Arch "amd64" }}x86_64
   624            {{- else if eq .Arch "386" }}i386
   625            {{- else }}{{ .Arch }}{{ end }}
   626            {{- if .Arm }}v{{ .Arm }}{{ end -}}
   627      ```
   628  
   629  Those two configurations will yield the same results.
   630  
   631  Generally speaking, is probably best to use `{{ .ConventionalFileName }}`
   632  instead of custom templates.
   633  
   634  ### snapcrafts.replacements
   635  
   636  > since 2022-11-24 (v1.14.0), removed 2023-06-06 (v1.19.0)
   637  
   638  The `replacements` will be removed soon from the Snapcrafts section.
   639  
   640  You can still get the same features by abusing the `name_template` property.
   641  
   642  === "Before"
   643  
   644      ```yaml
   645      snapcrafts:
   646        - id: foo
   647          name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
   648          replacements:
   649            darwin: Darwin
   650            linux: Linux
   651            windows: Windows
   652            386: i386
   653            amd64: x86_64
   654      ```
   655  
   656  === "After"
   657  
   658      ```yaml
   659      snapcrafts:
   660        - id: foo
   661          name_template: >-
   662            {{ .ProjectName }}_
   663            {{- title .Os }}_
   664            {{- if eq .Arch "amd64" }}x86_64
   665            {{- else if eq .Arch "386" }}i386
   666            {{- else }}{{ .Arch }}{{ end }}
   667      ```
   668  
   669  Those two configurations will yield the same results.
   670  
   671  Generally speaking, is probably best to use `{{ .ConventionalFileName }}`
   672  instead of custom templates.
   673  
   674  ### variables
   675  
   676  > since 2022-01-20 (v1.4.0), removed 2023-05-01 (v1.18.0)
   677  
   678  On [GoReleaser PRO](/pro/) custom variables should now be prefixed with `.Var`.
   679  
   680  === "Before"
   681  
   682      ```yaml
   683      variables:
   684        foo: bar
   685      some_template: 'lala-{{ .foo }}'
   686      ```
   687  
   688  === "After"
   689  
   690      ```yaml
   691      variables:
   692        foo: bar
   693      some_template: 'lala-{{ .Var.foo }}'
   694      ```
   695  
   696  ### dockers.use: buildpacks
   697  
   698  > since 2022-03-16 (v1.7.0), removed 2022-09-28 (v1.12.0)
   699  
   700  This was removed due to some issues:
   701  
   702  - The binary gets rebuild again during the buildpacks build;
   703  - There is no ARM support.
   704  
   705  ### rigs
   706  
   707  > since 2022-03-21 (v1.8.0), removed 2022-08-16 (v1.11.0)
   708  
   709  GoFish was deprecated by their authors, therefore, we're removing its
   710  support from GoReleaser too.
   711  
   712  ### nfpms.empty_folders
   713  
   714  > since 2021-11-14 (v1.0.0), removed 2022-06-14 (v1.10.0)
   715  
   716  nFPM empty folders is now deprecated in favor of a `dir` content type:
   717  
   718  === "Before"
   719  
   720      ```yaml
   721      nfpms:
   722      - empty_folders:
   723        - /foo/bar
   724      ```
   725  
   726  === "After"
   727  
   728      ```yaml
   729      nfpms:
   730      - contents:
   731        - dst: /foo/bar
   732          type: dir
   733      ```
   734  
   735  ### builds for windows/arm64
   736  
   737  > since 2021-08-16 (v0.175.0), removed 2022-06-12 (v1.10.0)
   738  
   739  Since Go 1.17, `windows/arm64` is a valid target.
   740  
   741  Prior to v0.175.0, GoReleaser would just ignore this target.
   742  Since in Go 1.17 it is now a valid target, GoReleaser will build it if the Go version being used is 1.17 or later.
   743  
   744  If you want to make sure it is ignored in the future, you need to add this to your build config:
   745  
   746  ```yaml
   747  ignore:
   748    - goos: windows
   749      goarch: arm64
   750  ```
   751  
   752  If you try to use new versions of GoReleaser with Go 1.16 or older, it will warn
   753  about it until this deprecation warning expires, after that your build will
   754  likely fail.
   755  
   756  ### godownloader
   757  
   758  > since 2021-10-13 (all), removed 2022-05-18
   759  
   760  GoDownloader, the installation script generator, wasn't updated for a long time
   761  and is now officially deprecated.
   762  The website and all install scripts will be taken out in 6 months.
   763  You can still use any of the other install methods.
   764  
   765  This also includes `install.goreleaser.com`.
   766  
   767  Most common tools installed via that website were probably
   768  [GoReleaser](/install/) itself and
   769  [golangci-lint](https://golangci-lint.run/welcome/install/).
   770  
   771  Please follow to the check their documentation for alternative install methods.
   772  
   773  ### dockers.use_buildx
   774  
   775  > since 2021-06-26 (v0.172.0), removed 2022-03-16 (v1.7.0)
   776  
   777  `use_buildx` is deprecated in favor of the more generalist `use`, since now it also allow other options in the future:
   778  
   779  Change this:
   780  
   781  === "Before"
   782  
   783      ```yaml
   784      dockers:
   785        -
   786          use_buildx: true
   787      ```
   788  
   789  === "After"
   790  
   791      ```yaml
   792      dockers:
   793        -
   794          use: buildx
   795      ```
   796  
   797  ### builds for darwin/arm64
   798  
   799  > since 2021-02-17 (v0.157.0), removed 2022-03-16 (v1.7.0)
   800  
   801  Since Go 1.16, `darwin/arm64` is macOS on Apple Silicon instead of `iOS`.
   802  
   803  Prior to v0.156.0, GoReleaser would just ignore this target.
   804  Since in Go 1.16 and later it is a valid target, GoReleaser will now build it if the Go version being used is 1.16 or later.
   805  
   806  If you want to make sure it is ignored in the future, you need to add this to your build config:
   807  
   808  ```yaml
   809  ignore:
   810    - goos: darwin
   811      goarch: arm64
   812  ```
   813  
   814  If you try to use new versions of GoReleaser with Go 1.15 or older, it will warn about it until this deprecation warning expires, after that your build will likely fail.
   815  
   816  ### Skipping SemVer Validations
   817  
   818  > since 2021-02-28 (v0.158.0), removed 2021-09-22 (v0.180.0)
   819  
   820  GoReleaser skips SemVer validations when run with `--skip-validation` or `--snapshot`.
   821  This causes other problems later, such as [invalid Linux packages](https://github.com/goreleaser/goreleaser/issues/2081).
   822  Because of that, once this deprecation expires, GoReleaser will hard fail on non-semver versions, as stated on our [limitations page](https://goreleaser.com/limitations/semver/).
   823  
   824  ### docker.builds
   825  
   826  > since 2021-01-07 (v0.154.0), removed 2021-08-13 (v0.175.0)
   827  
   828  `builds` is deprecated in favor of `ids`, since now it also allows to copy nfpm packages:
   829  
   830  Change this:
   831  
   832  === "Before"
   833  
   834      ```yaml
   835      dockers:
   836        -
   837          builds: ['a', 'b']
   838      ```
   839  
   840  === "After"
   841  
   842      ```yaml
   843      dockers:
   844        -
   845          ids: ['a', 'b']
   846      ```
   847  
   848  ### docker.binaries
   849  
   850  > since 2021-01-07 (v0.154.0), removed 2021-08-13 (v0.175.0)
   851  
   852  `binaries` is deprecated and now does nothing.
   853  If you want to filter something out, use the `ids` property.
   854  
   855  Change this:
   856  
   857  === "Before"
   858  
   859      ```yaml
   860      dockers:
   861        -
   862          binaries: ['foo']
   863      ```
   864  
   865  === "After"
   866  
   867      ```yaml
   868      dockers:
   869        -
   870          ids: ['foo']
   871      ```
   872  
   873  ### nfpms.files
   874  
   875  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
   876  
   877  `files` is deprecated in favor of `contents` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
   878  
   879  Change this:
   880  
   881  === "Before"
   882  
   883      ```yaml
   884      nfpms:
   885        -
   886          files:
   887            foo: bar
   888      ```
   889  
   890  === "After"
   891  
   892      ```yaml
   893      nfpms:
   894        -
   895          contents:
   896            - src: foo
   897              dst: bar
   898      ```
   899  
   900  ### nfpms.config_files
   901  
   902  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
   903  
   904  `config_files` is deprecated in favor of `contents` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
   905  
   906  Change this:
   907  
   908  === "Before"
   909  
   910      ```yaml
   911      nfpms:
   912        -
   913          config_files:
   914            foo: bar
   915      ```
   916  
   917  === "After"
   918  
   919      ```yaml
   920      nfpms:
   921        -
   922          contents:
   923            - src: foo
   924              dst: bar
   925              type: config
   926      ```
   927  
   928  ### nfpms.symlinks
   929  
   930  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
   931  
   932  `symlinks` is deprecated in favor of `contents` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
   933  
   934  Change this:
   935  
   936  === "Before"
   937  
   938      ```yaml
   939      nfpms:
   940        -
   941          symlinks:
   942            foo: bar
   943      ```
   944  
   945  === "After"
   946  
   947      ```yaml
   948      nfpms:
   949        -
   950          contents:
   951            - src: foo
   952              dst: bar
   953              type: symlink
   954      ```
   955  
   956  ### nfpms.rpm.ghost_files
   957  
   958  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
   959  
   960  `rpm.ghost_files` is deprecated in favor of `contents` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
   961  
   962  Change this:
   963  
   964  === "Before"
   965  
   966      ```yaml
   967      nfpms:
   968        -
   969          rpm:
   970            ghost_files:
   971              - foo
   972      ```
   973  
   974  === "After"
   975  
   976      ```yaml
   977      nfpms:
   978        -
   979          contents:
   980            - dst: bar
   981              type: ghost
   982              packager: rpm # optional
   983      ```
   984  
   985  ### nfpms.rpm.config_noreplace_files
   986  
   987  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
   988  
   989  `rpm.config_noreplace_files` is deprecated in favor of `contents` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
   990  
   991  Change this:
   992  
   993  === "Before"
   994  
   995      ```yaml
   996      nfpms:
   997        -
   998          rpm:
   999            config_noreplace_files:
  1000              foo: bar
  1001      ```
  1002  
  1003  === "After"
  1004  
  1005      ```yaml
  1006      nfpms:
  1007        -
  1008          contents:
  1009            - src: foo
  1010              dst: bar
  1011              type: config|noreplace
  1012              packager: rpm # optional
  1013      ```
  1014  
  1015  ### nfpms.deb.version_metadata
  1016  
  1017  > since 2020-12-21 (v0.149.0), removed 2021-07-26 (v0.172.0)
  1018  
  1019  `deb.version_metadata` is deprecated in favor of `version_metadata` (check [this page](https://goreleaser.com/customization/nfpm/) for more details):
  1020  
  1021  Change this:
  1022  
  1023  === "Before"
  1024  
  1025      ```yaml
  1026      nfpms:
  1027        -
  1028          deb:
  1029            version_metadata: beta1
  1030      ```
  1031  
  1032  === "After"
  1033  
  1034      ```yaml
  1035      nfpms:
  1036        -
  1037          version_metadata: beta1
  1038      ```
  1039  
  1040  ### brews.github
  1041  
  1042  > since 2020-07-06 (v0.139.0), removed 2021-01-04 (v0.152.0)
  1043  
  1044  GitHub section was deprecated in favour of `tap` which
  1045  reflects Homebrew's naming convention. GitHub will be picked
  1046  automatically when GitHub token is passed.
  1047  
  1048  Change this:
  1049  
  1050  === "Before"
  1051  
  1052      ```yaml
  1053      brews:
  1054        -
  1055          github:
  1056            owner: goreleaser
  1057            name: homebrew-tap
  1058      ```
  1059  
  1060  === "After"
  1061  
  1062      ```yaml
  1063      brews:
  1064        -
  1065          tap:
  1066            owner: goreleaser
  1067            name: homebrew-tap
  1068      ```
  1069  
  1070  ### brews.gitlab
  1071  
  1072  > since 2020-07-06 (v0.139.0), removed 2021-01-04 (v0.152.0)
  1073  
  1074  GitLab section was deprecated in favour of `tap` which
  1075  reflects Homebrew's naming convention. GitLab will be picked
  1076  automatically when GitLab token is passed.
  1077  
  1078  Change this:
  1079  
  1080  === "Before"
  1081  
  1082      ```yaml
  1083      brews:
  1084        -
  1085          gitlab:
  1086            owner: goreleaser
  1087            name: homebrew-tap
  1088      ```
  1089  
  1090  === "After"
  1091  
  1092      ```yaml
  1093      brews:
  1094        -
  1095          tap:
  1096            owner: goreleaser
  1097            name: homebrew-tap
  1098      ```
  1099  
  1100  ### puts
  1101  
  1102  > since 2019-11-15, removed 2020-04-14 (v0.132.0)
  1103  
  1104  The HTTP upload support was extended to also accept `POST` as a method,
  1105  so the name `puts` kind of lost its meaning.
  1106  
  1107  === "Before"
  1108  
  1109      ```yaml
  1110      puts:
  1111      - ...
  1112      ```
  1113  
  1114  === "After"
  1115  
  1116      ```yaml
  1117      uploads:
  1118      - ...
  1119      ```
  1120  
  1121  Also note that secrets environment variable name prefixes have changed from
  1122  `PUT_` to `UPLOAD_`.
  1123  
  1124  ### nfpms.name_template
  1125  
  1126  > since 2019-11-15, removed 2020-04-14 (v0.132.0)
  1127  
  1128  The `name_template` field was deprecated in favor of a more clear one,
  1129  `file_name_template`.
  1130  
  1131  === "Before"
  1132  
  1133      ```yaml
  1134      nfpms:
  1135      - name_template: foo
  1136      ```
  1137  
  1138  === "After"
  1139  
  1140      ```yaml
  1141      nfpms:
  1142      - file_name_template: foo
  1143      ```
  1144  
  1145  ### blob
  1146  
  1147  > since 2019-08-02, removed 2020-03-22 (v0.130.0)
  1148  
  1149  Blob was deprecated in favor of its plural form.
  1150  It was already accepting multiple inputs, but its pluralized now so its more
  1151  clear.
  1152  
  1153  === "Before"
  1154  
  1155      ```yaml
  1156      blob:
  1157        # etc
  1158      ```
  1159  
  1160  === "After"
  1161  
  1162      ```yaml
  1163      blobs:
  1164        # etc
  1165      ```
  1166  
  1167  ### sign
  1168  
  1169  > since 2019-07-20, removed 2020-03-22 (v0.130.0)
  1170  
  1171  Sign was deprecated in favor of its plural form.
  1172  
  1173  === "Before"
  1174  
  1175      ```yaml
  1176      sign:
  1177        # etc
  1178      ```
  1179  
  1180  === "After"
  1181  
  1182      ```yaml
  1183      signs:
  1184        -
  1185          # etc
  1186      ```
  1187  
  1188  ### brew
  1189  
  1190  > since 2019-06-09, removed 2020-01-26 (v0.125.0)
  1191  
  1192  Brew was deprecated in favor of its plural form.
  1193  
  1194  Change this:
  1195  
  1196  === "Before"
  1197  
  1198      ```yaml
  1199      brew:
  1200        # etc
  1201      ```
  1202  
  1203  === "After"
  1204  
  1205      ```yaml
  1206      brews:
  1207        -
  1208          # etc
  1209      ```
  1210  
  1211  ### s3
  1212  
  1213  > since 2019-06-09, removed 2020-01-07 (v0.125.0)
  1214  
  1215  S3 was deprecated in favor of the new `blob`, which supports S3, Azure Blob and
  1216  GCS.
  1217  
  1218  === "Before"
  1219  
  1220      ```yaml
  1221      s3:
  1222      -
  1223        # etc
  1224      ```
  1225  
  1226  === "After"
  1227  
  1228      ```yaml
  1229      blobs:
  1230      -
  1231        provider: s3
  1232        # etc
  1233      ```
  1234  
  1235  ACLs should be set on the bucket, the `acl` option does not exist anymore.
  1236  
  1237  ### archive
  1238  
  1239  > since 2019-04-16, removed 2019-12-27 (v0.124.0)
  1240  
  1241  We now allow multiple archives, so the `archive` statement will be removed.
  1242  
  1243  === "Before"
  1244  
  1245      ```yaml
  1246      archive:
  1247        format: zip
  1248      ```
  1249  
  1250  === "After"
  1251  
  1252      ```yaml
  1253      archives:
  1254        - id: foo
  1255          format: zip
  1256      ```
  1257  
  1258  ### snapcraft
  1259  
  1260  > since 2019-05-27, removed 2019-12-27 (v0.124.0)
  1261  
  1262  We now allow multiple Snapcraft configs, so the `snapcraft` statement will be removed.
  1263  
  1264  === "Before"
  1265  
  1266      ```yaml
  1267      snapcraft:
  1268        publish: true
  1269        # ...
  1270      ```
  1271  
  1272  === "After"
  1273  
  1274      ```yaml
  1275      snapcrafts:
  1276        -
  1277          publish: true
  1278          # ...
  1279      ```
  1280  
  1281  ### nfpm
  1282  
  1283  > since 2019-05-07, removed 2019-12-27 (v0.124.0)
  1284  
  1285  We now allow multiple NFPM config, so the `nfpm` statement will be removed.
  1286  
  1287  === "Before"
  1288  
  1289      ```yaml
  1290      nfpm:
  1291        formats:
  1292          - deb
  1293      ```
  1294  
  1295  === "After"
  1296  
  1297      ```yaml
  1298      nfpms:
  1299        -
  1300          formats:
  1301            - deb
  1302      ```
  1303  
  1304  ### docker.binary
  1305  
  1306  > since 2018-10-01, removed 2019-08-02 (v0.114.0)
  1307  
  1308  You can now create a Docker image with multiple binaries.
  1309  
  1310  === "Before"
  1311  
  1312      ```yaml
  1313      dockers:
  1314      - image: foo/bar
  1315        binary: foo
  1316      ```
  1317  
  1318  === "After"
  1319  
  1320      ```yaml
  1321      dockers:
  1322      - image: foo/bar
  1323        binaries:
  1324        - foo
  1325      ```
  1326  
  1327  ### docker.image
  1328  
  1329  > since 2018-10-20, removed 2019-08-02 (v0.114.0)
  1330  
  1331  This property was deprecated in favor of more flexible `image_templates`.
  1332  The idea is to be able to define several images and tags using templates instead of just one image with tag templates.
  1333  This flexibility allows images to be pushed to multiple registries.
  1334  
  1335  === "Before"
  1336  
  1337      ```yaml
  1338      dockers:
  1339      - image: foo/bar
  1340        tag_templates:
  1341          - '{{ .Tag }}'
  1342      ```
  1343  
  1344  === "After"
  1345  
  1346      ```yaml
  1347      dockers:
  1348      - image_templates:
  1349          - 'foo/bar:{{ .Tag }}'
  1350      ```
  1351  
  1352  ### docker.tag_templates
  1353  
  1354  > since 2018-10-20, removed 2019-08-02 (v0.114.0)
  1355  
  1356  This property was deprecated in favor of more flexible `image_templates`.
  1357  The idea is to be able to define several images and tags using templates instead of just one image with tag templates.
  1358  
  1359  === "Before"
  1360  
  1361      ```yaml
  1362      dockers:
  1363      - image: foo/bar
  1364        tag_templates:
  1365          - '{{ .Tag }}'
  1366      ```
  1367  
  1368  === "After"
  1369  
  1370      ```yaml
  1371      dockers:
  1372      - image_templates:
  1373          - 'foo/bar:{{ .Tag }}'
  1374      ```
  1375  
  1376  ### git.short_hash
  1377  
  1378  > since 2018-10-03, removed 2019-01-19 (v0.98.0)
  1379  
  1380  This property was being used to tell GoReleaser to use short git hashes
  1381  instead of the full ones. This has been removed in favor of specific
  1382  template variables (`.FullCommit` and `.ShortCommit`).
  1383  
  1384  === "Before"
  1385  
  1386      ```yaml
  1387      git:
  1388        short_hash: true
  1389  
  1390      fake:
  1391        foo_template: 'blah {{ .Commit }}'
  1392      ```
  1393  
  1394  === "After"
  1395  
  1396      ```yaml
  1397      fake:
  1398        foo_template: 'blah {{ .ShortCommit }}'
  1399      ```
  1400  
  1401  ### fpm
  1402  
  1403  > since 2018-02-17, removed 2017-08-15 (v0.83.0)
  1404  
  1405  FPM is deprecated in favor of nfpm, which is a simpler alternative written
  1406  in Go. The objective is to remove the ruby dependency thus simplify the
  1407  CI/CD pipelines.
  1408  
  1409  Just replace the `fpm` keyword by `nfpm` in your `.goreleaser.yaml` file.
  1410  
  1411  === "Before"
  1412  
  1413      ```yaml
  1414      fpm:
  1415        # ...
  1416      ```
  1417  
  1418  === "After"
  1419  
  1420      ```yaml
  1421      nfpm:
  1422        # ...
  1423      ```
  1424  
  1425  ### docker.tag_template
  1426  
  1427  > since 2018-01-19, removed 2017-08-15 (v0.83.0)
  1428  
  1429  This property was deprecated in favor of the pluralized `tag_templates`.
  1430  The idea is to be able to define several tags instead of just one.
  1431  
  1432  === "Before"
  1433  
  1434      ```yaml
  1435      dockers:
  1436      - image: foo/bar
  1437        tag_template: '{{ .Tag }}'
  1438      ```
  1439  
  1440  === "After"
  1441  
  1442      ```yaml
  1443      dockers:
  1444      - image: foo/bar
  1445        tag_templates:
  1446          - '{{ .Tag }}'
  1447      ```
  1448  
  1449  ### docker.latest
  1450  
  1451  > since 2018-01-19, removed 2017-08-15 (v0.83.0)
  1452  
  1453  The `latest` field in Docker config is deprecated in favor of the newer
  1454  `tag_templates` field.
  1455  
  1456  === "Before"
  1457  
  1458      ```yaml
  1459      dockers:
  1460      - image: foo/bar
  1461        latest: true
  1462      ```
  1463  
  1464  === "After"
  1465  
  1466      ```yaml
  1467      dockers:
  1468      - image: foo/bar
  1469        tag_templates:
  1470          - '{{ .Tag }}'
  1471          - latest
  1472      ```