Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checksum should be allowed to be a single dictionary at the top level scope only, even for bundles/extensions (where there are top level sources as well) #4413

Open
Micket opened this issue Dec 22, 2023 · 0 comments
Milestone

Comments

@Micket
Copy link
Contributor

Micket commented Dec 22, 2023

Instead of having it per bundle component/extensions, we should allow the checksum block to be placed outside.

We should also encourage that use pattern. It would likely simplify a lot of bundles making them significantly shorter, and probably simplify some code as well.

Example of current situation:

crates = [
    ('autocfg', '1.1.0'),
    ('bitflags', '1.3.2'),
    ('cfg-if', '1.0.0'),
    ('indoc', '1.0.9'),
    ('itoa', '1.0.9'),
    ('libc', '0.2.147'),
    ('lock_api', '0.4.10'),
    ('memmap2', '0.5.10'),
    ('memoffset', '0.8.0'),
    ('once_cell', '1.18.0'),
    ('parking_lot', '0.12.1'),
    ('parking_lot_core', '0.9.8'),
    ('proc-macro2', '1.0.66'),
    ('pyo3', '0.18.3'),
    ('pyo3-build-config', '0.18.3'),
    ('pyo3-ffi', '0.18.3'),
    ('pyo3-macros', '0.18.3'),
    ('pyo3-macros-backend', '0.18.3'),
    ('quote', '1.0.31'),
    ('redox_syscall', '0.3.5'),
    ('ryu', '1.0.15'),
    ('scopeguard', '1.2.0'),
    ('serde', '1.0.171'),
    ('serde_derive', '1.0.171'),
    ('serde_json', '1.0.103'),
    ('smallvec', '1.11.0'),
    ('syn', '1.0.109'),
    ('syn', '2.0.26'),
    ('target-lexicon', '0.12.10'),
    ('unicode-ident', '1.0.11'),
    ('unindent', '0.1.11'),
]

exts_list = [
    ('huggingface_hub', '0.13.4', {
        'checksums': ['db83d9c2f76aed8cf49893ffadd6be24e82074da2f64b1d36b8ba40eb255e115'],
    }),
    ('safetensors', '0.3.0', {
        'checksums': ['5be8b2fccdc6aec84c9d6732180575fe1ba3afc559cbe96e2301eacc45c5b9a6'],
    }),
    (name, version, {
        'checksums': ['745c54f7b7985a18e08bd66c997b018c1c3fef99bbb8c018879a6f85571782f5'],
    }),
]

checksums = [
    {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
    {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
    {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
    {'indoc-1.0.9.tar.gz': 'bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306'},
    {'itoa-1.0.9.tar.gz': 'af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38'},
    {'libc-0.2.147.tar.gz': 'b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3'},
    {'lock_api-0.4.10.tar.gz': 'c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16'},
    {'memmap2-0.5.10.tar.gz': '83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327'},
    {'memoffset-0.8.0.tar.gz': 'd61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1'},
    {'once_cell-1.18.0.tar.gz': 'dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d'},
    {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
    {'parking_lot_core-0.9.8.tar.gz': '93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447'},
    {'proc-macro2-1.0.66.tar.gz': '18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9'},
    {'pyo3-0.18.3.tar.gz': 'e3b1ac5b3731ba34fdaa9785f8d74d17448cd18f30cf19e0c7e7b1fdb5272109'},
    {'pyo3-build-config-0.18.3.tar.gz': '9cb946f5ac61bb61a5014924910d936ebd2b23b705f7a4a3c40b05c720b079a3'},
    {'pyo3-ffi-0.18.3.tar.gz': 'fd4d7c5337821916ea2a1d21d1092e8443cf34879e53a0ac653fbb98f44ff65c'},
    {'pyo3-macros-0.18.3.tar.gz': 'a9d39c55dab3fc5a4b25bbd1ac10a2da452c4aca13bb450f22818a002e29648d'},
    {'pyo3-macros-backend-0.18.3.tar.gz': '97daff08a4c48320587b5224cc98d609e3c27b6d437315bd40b605c98eeb5918'},
    {'quote-1.0.31.tar.gz': '5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0'},
    {'redox_syscall-0.3.5.tar.gz': '567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29'},
    {'ryu-1.0.15.tar.gz': '1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741'},
    {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
    {'serde-1.0.171.tar.gz': '30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9'},
    {'serde_derive-1.0.171.tar.gz': '389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682'},
    {'serde_json-1.0.103.tar.gz': 'd03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b'},
    {'smallvec-1.11.0.tar.gz': '62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9'},
    {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
    {'syn-2.0.26.tar.gz': '45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970'},
    {'target-lexicon-0.12.10.tar.gz': '1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e'},
    {'unicode-ident-1.0.11.tar.gz': '301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c'},
    {'unindent-0.1.11.tar.gz': 'e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c'},
]

and what we could change it into:

crates = [
    ('autocfg', '1.1.0'),
    ('bitflags', '1.3.2'),
    ('cfg-if', '1.0.0'),
    ('indoc', '1.0.9'),
    ('itoa', '1.0.9'),
    ('libc', '0.2.147'),
    ('lock_api', '0.4.10'),
    ('memmap2', '0.5.10'),
    ('memoffset', '0.8.0'),
    ('once_cell', '1.18.0'),
    ('parking_lot', '0.12.1'),
    ('parking_lot_core', '0.9.8'),
    ('proc-macro2', '1.0.66'),
    ('pyo3', '0.18.3'),
    ('pyo3-build-config', '0.18.3'),
    ('pyo3-ffi', '0.18.3'),
    ('pyo3-macros', '0.18.3'),
    ('pyo3-macros-backend', '0.18.3'),
    ('quote', '1.0.31'),
    ('redox_syscall', '0.3.5'),
    ('ryu', '1.0.15'),
    ('scopeguard', '1.2.0'),
    ('serde', '1.0.171'),
    ('serde_derive', '1.0.171'),
    ('serde_json', '1.0.103'),
    ('smallvec', '1.11.0'),
    ('syn', '1.0.109'),
    ('syn', '2.0.26'),
    ('target-lexicon', '0.12.10'),
    ('unicode-ident', '1.0.11'),
    ('unindent', '0.1.11'),
]

exts_list = [
    ('huggingface_hub', '0.13.4'),
    ('safetensors', '0.3.0'),
    (name, version),
]

checksums = {
    'hugginface_hub-0.13.4.tar.gz': 'db83d9c2f76aed8cf49893ffadd6be24e82074da2f64b1d36b8ba40eb255e115',
    'safetensors-0.3.0.tar.gz': '5be8b2fccdc6aec84c9d6732180575fe1ba3afc559cbe96e2301eacc45c5b9a6',
    'timm-0.5.6.tar.gz': '745c54f7b7985a18e08bd66c997b018c1c3fef99bbb8c018879a6f85571782f5',
    'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa',
    'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a',
    'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd',
    'indoc-1.0.9.tar.gz': 'bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306',
    'itoa-1.0.9.tar.gz': 'af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38',
    'libc-0.2.147.tar.gz': 'b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3',
    'lock_api-0.4.10.tar.gz': 'c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16',
    'memmap2-0.5.10.tar.gz': '83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327',
    'memoffset-0.8.0.tar.gz': 'd61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1',
    'once_cell-1.18.0.tar.gz': 'dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d',
    'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f',
    'parking_lot_core-0.9.8.tar.gz': '93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447',
    'proc-macro2-1.0.66.tar.gz': '18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9',
    'pyo3-0.18.3.tar.gz': 'e3b1ac5b3731ba34fdaa9785f8d74d17448cd18f30cf19e0c7e7b1fdb5272109',
    'pyo3-build-config-0.18.3.tar.gz': '9cb946f5ac61bb61a5014924910d936ebd2b23b705f7a4a3c40b05c720b079a3',
    'pyo3-ffi-0.18.3.tar.gz': 'fd4d7c5337821916ea2a1d21d1092e8443cf34879e53a0ac653fbb98f44ff65c',
    'pyo3-macros-0.18.3.tar.gz': 'a9d39c55dab3fc5a4b25bbd1ac10a2da452c4aca13bb450f22818a002e29648d',
    'pyo3-macros-backend-0.18.3.tar.gz': '97daff08a4c48320587b5224cc98d609e3c27b6d437315bd40b605c98eeb5918',
    'quote-1.0.31.tar.gz': '5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0',
    'redox_syscall-0.3.5.tar.gz': '567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29',
    'ryu-1.0.15.tar.gz': '1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741',
    'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49',
    'serde-1.0.171.tar.gz': '30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9',
    'serde_derive-1.0.171.tar.gz': '389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682',
    'serde_json-1.0.103.tar.gz': 'd03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b',
    'smallvec-1.11.0.tar.gz': '62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9',
    'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237',
    'syn-2.0.26.tar.gz': '45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970',
    'target-lexicon-0.12.10.tar.gz': '1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e',
    'unicode-ident-1.0.11.tar.gz': '301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c',
    'unindent-0.1.11.tar.gz': 'e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c',
}

Also, checksums should just be a dictionary, instead of a list of dictionaries.

@Micket Micket added this to the 5.0 milestone Dec 22, 2023
@Micket Micket changed the title Checksum should be allowed to be a single dictionary at the top level scope only, even for bundles Checksum should be allowed to be a single dictionary at the top level scope only, even for bundles/extensions (where there are top level sources as well) Dec 22, 2023
@boegel boegel added the EasyBuild-5.0 EasyBuild 5.0 label Dec 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

2 participants