mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
Add get_clean_version in PackageUtils and use it in json.rb and version.rb (#10249)
This commit is contained in:
committed by
GitHub
parent
560947f537
commit
cbd2d8f282
1
.github/workflows/Repology.yml
vendored
1
.github/workflows/Repology.yml
vendored
@@ -18,6 +18,7 @@ jobs:
|
|||||||
- name: Generate repology.json
|
- name: Generate repology.json
|
||||||
env:
|
env:
|
||||||
CREW_KERNEL_VERSION: 5.1
|
CREW_KERNEL_VERSION: 5.1
|
||||||
|
LIBC_VERSION: 2.37
|
||||||
run: |
|
run: |
|
||||||
ruby -Ctools json.rb
|
ruby -Ctools json.rb
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
|
|||||||
@@ -30,4 +30,21 @@ class PackageUtils
|
|||||||
return pkg.source_sha256
|
return pkg.source_sha256
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.get_clean_version(pkg_version)
|
||||||
|
# Trim kde- suffixes in qt5 packages so nothing else gets confused.
|
||||||
|
pkg_version.delete_prefix!('kde-')
|
||||||
|
# Delete -py3.12, futureproofed until Python 4
|
||||||
|
pkg_version.gsub!(/-py3\.\d{2}/, '')
|
||||||
|
# Delete -perl 5.40, futureproofed until Perl 5.100
|
||||||
|
pkg_version.gsub!(/-perl5\.\d{2}/, '')
|
||||||
|
# Delete -llvm18, futureproofed until llvm 100
|
||||||
|
pkg_version.gsub!(/-llvm\d{2}/, '')
|
||||||
|
# Delete -glibc2.39, or whatever the system glibc is.
|
||||||
|
pkg_version.delete_suffix!("-glibc#{LIBC_VERSION}")
|
||||||
|
# Delete git version tags (1.2.4-qnd73k6), avoiding overmatching and hitting things that arent git hashtags.
|
||||||
|
pkg_version.gsub!(/-[\w]{7}$/, '')
|
||||||
|
|
||||||
|
return pkg_version
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -120,4 +120,27 @@ class PackageUtilsTest < Minitest::Test
|
|||||||
end
|
end
|
||||||
assert_equal('4444444444444444444444444444444444444444444444444444444444444444', PackageUtils.get_sha256(pkg, build_from_source: true))
|
assert_equal('4444444444444444444444444444444444444444444444444444444444444444', PackageUtils.get_sha256(pkg, build_from_source: true))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_get_clean_python_version
|
||||||
|
assert_equal('1.2.3', PackageUtils.get_clean_version('1.2.3-py3.12'))
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_get_clean_perl_version
|
||||||
|
assert_equal('0.004.2', PackageUtils.get_clean_version('0.004.2-perl5.40'))
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_get_clean_llvm_version
|
||||||
|
assert_equal('72.93', PackageUtils.get_clean_version('72.93-llvm18'))
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_get_clean_glibc_version
|
||||||
|
assert_equal('9.5.18', PackageUtils.get_clean_version('9.5.18-glibc2.39'))
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_get_clean_git_version
|
||||||
|
assert_equal('0.0.7', PackageUtils.get_clean_version('0.0.7-8ab26so'))
|
||||||
|
assert_equal('8.2.4-2', PackageUtils.get_clean_version('8.2.4-2-zh725k9'))
|
||||||
|
assert_equal('579-4', PackageUtils.get_clean_version('579-4-1628457'))
|
||||||
|
assert_equal('2.1.5-20220429', PackageUtils.get_clean_version('2.1.5-20220429'))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ $LOAD_PATH.unshift '../lib'
|
|||||||
|
|
||||||
require_relative '../lib/const'
|
require_relative '../lib/const'
|
||||||
require_relative '../lib/package'
|
require_relative '../lib/package'
|
||||||
|
require_relative '../lib/package_utils'
|
||||||
|
|
||||||
output = []
|
output = []
|
||||||
|
|
||||||
@@ -15,14 +16,7 @@ Dir.glob('../packages/*.rb').each do |filename|
|
|||||||
pkg = Package.load_package(filename)
|
pkg = Package.load_package(filename)
|
||||||
# Skip fake packages.
|
# Skip fake packages.
|
||||||
next if pkg.is_fake?
|
next if pkg.is_fake?
|
||||||
# Present a useful version to Repology.
|
output << { name: File.basename(filename, '.rb'), description: pkg.description, homepage: pkg.homepage, version: PackageUtils.get_clean_version(pkg.version), license: pkg.license, compatibility: pkg.compatibility }
|
||||||
version = +pkg.version
|
|
||||||
# That starts by trimming off our language version tagging.
|
|
||||||
version.delete_suffix!('-py3.12')
|
|
||||||
version.delete_suffix!('-perl5.40')
|
|
||||||
version.delete_suffix!('-llvm18')
|
|
||||||
version.delete_suffix!("-glibc#{LIBC_VERSION}")
|
|
||||||
output << { name: File.basename(filename, '.rb'), description: pkg.description, homepage: pkg.homepage, version:, license: pkg.license, compatibility: pkg.compatibility }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
File.write('repology.json', JSON.pretty_generate(output))
|
File.write('repology.json', JSON.pretty_generate(output))
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ $LOAD_PATH.unshift '../lib'
|
|||||||
|
|
||||||
require_relative '../lib/color'
|
require_relative '../lib/color'
|
||||||
require_relative '../lib/package'
|
require_relative '../lib/package'
|
||||||
|
require_relative '../lib/package_utils'
|
||||||
|
|
||||||
def get_version(name, homepage)
|
def get_version(name, homepage)
|
||||||
anitya_id = get_anitya_id(name, homepage)
|
anitya_id = get_anitya_id(name, homepage)
|
||||||
@@ -122,16 +123,16 @@ if filelist.length.positive?
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Bail out if we arent verbose and so dont want to print packages that are up to date.
|
# Bail out if we arent verbose and so dont want to print packages that are up to date.
|
||||||
next if Libversion.version_compare2(pkg.version, upstream_version) >= 0 && !verbose
|
next if Libversion.version_compare2(PackageUtils.get_clean_version(pkg.version), upstream_version) >= 0 && !verbose
|
||||||
# Print the package name.
|
# Print the package name.
|
||||||
print pkg.name.ljust(35)
|
print pkg.name.ljust(35)
|
||||||
# Print the package update status.
|
# Print the package update status.
|
||||||
if Libversion.version_compare2(pkg.version, upstream_version) >= 0
|
if Libversion.version_compare2(PackageUtils.get_clean_version(pkg.version), upstream_version) >= 0
|
||||||
print 'uptodate'.ljust(20).lightgreen
|
print 'uptodate'.ljust(20).lightgreen
|
||||||
elsif Libversion.version_compare2(pkg.version, upstream_version) == -1
|
elsif Libversion.version_compare2(PackageUtils.get_clean_version(pkg.version), upstream_version) == -1
|
||||||
print 'outdated'.ljust(20).yellow
|
print 'outdated'.ljust(20).yellow
|
||||||
end
|
end
|
||||||
# Print the package versions.
|
# Print the package versions.
|
||||||
puts pkg.version.ljust(20) + upstream_version
|
puts PackageUtils.get_clean_version(pkg.version).ljust(20) + upstream_version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user