public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Migrating ebuilds to "optimized" cargo.eclass API
@ 2023-06-19 15:01 Michał Górny
  2023-06-24 14:45 ` [gentoo-dev] Re: [gentoo-dev-announce] " Arthur Zamarin
  0 siblings, 1 reply; 2+ messages in thread
From: Michał Górny @ 2023-06-19 15:01 UTC (permalink / raw
  To: gentoo-dev-announce; +Cc: gentoo-dev

Hi,

Over the weekend, I've pushed the cargo.eclass changes that provide
a more optimal (read: much faster in metadata phase) API for ebuilds. 
However, for it to actually benefit Gentoo ebuilds need to be updated to
use it.

The migration requires two changes:

1. `$(cargo_crate_uris)` (or `$(cargo_crate_uris ${CRATES})`) in SRC_URI
needs to be replaced by `${CARGO_CRATE_URIS}`.  This requires that
CRATES and GIT_CRATES are declared pre-inherit (this is already enforced
for CRATES in EAPI 8, but it is not for GIT_CRATES).

2. The CRATES variable (and other crate lists) need to use `@`
as the separator between crate name and version instead of `-`.
The easiest way to do this is to use >=app-portage/pycargoebuild-0.7 to
generate the variable.  You can use the in-place mode to update
the ebuild, then it will substitute the list in place:

  pycargoebuild -i foo-1.2.3.ebuild /directories/with/cargo-lock

Note that pycargoebuild won't replace $(cargo_crate_uris) automatically
though.

-- 
Best regards,
Michał Górny



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gentoo-dev] Re: [gentoo-dev-announce] Migrating ebuilds to "optimized" cargo.eclass API
  2023-06-19 15:01 [gentoo-dev] Migrating ebuilds to "optimized" cargo.eclass API Michał Górny
@ 2023-06-24 14:45 ` Arthur Zamarin
  0 siblings, 0 replies; 2+ messages in thread
From: Arthur Zamarin @ 2023-06-24 14:45 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 1542 bytes --]

On 19/06/2023 18.01, Michał Górny wrote:
> Hi,
> 
> The migration requires two changes:
> 
> 1. `$(cargo_crate_uris)` (or `$(cargo_crate_uris ${CRATES})`) in SRC_URI
> needs to be replaced by `${CARGO_CRATE_URIS}`.  This requires that
> CRATES and GIT_CRATES are declared pre-inherit (this is already enforced
> for CRATES in EAPI 8, but it is not for GIT_CRATES).
> 
> 2. The CRATES variable (and other crate lists) need to use `@`
> as the separator between crate name and version instead of `-`.
> The easiest way to do this is to use >=app-portage/pycargoebuild-0.7 to
> generate the variable.  You can use the in-place mode to update
> the ebuild, then it will substitute the list in place:
> 
>   pycargoebuild -i foo-1.2.3.ebuild /directories/with/cargo-lock
> 
> Note that pycargoebuild won't replace $(cargo_crate_uris) automatically
> though.
> 

I want to add here, that since yesterday, pkgcheck live (9999) is
warning about the "old less optimal" usage and recommends the replacement.

While I know the distrust people have to live ebuilds, the pkgcore stack
is very serious about the live state. As long as you rebuild
periodically the live version (for example using smart-live-rebuild, so
you aren't left with a version from years ago) this is considered
supported by upstream and very stable. I try to cut new pkgcheck
releases every month, but until then feel free to use live.

-- 
Arthur Zamarin
arthurzam@gentoo.org
Gentoo Linux developer (Python, pkgcore stack, Arch Teams, GURU)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-24 14:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-19 15:01 [gentoo-dev] Migrating ebuilds to "optimized" cargo.eclass API Michał Górny
2023-06-24 14:45 ` [gentoo-dev] Re: [gentoo-dev-announce] " Arthur Zamarin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox