perlcritic: each() called at line 752, column 35. The each function may cause undefined behavior when operating on the hash while iterating. Use a foreach loop over the hash's keys or values instead.

[?]
Oct 20, 2021, 3:56 PM
NGNOA7C3YC2IGO56KN4ZMLUPNUTGW3RA5D6ZIYZAE3HH36ME6LEAC

Dependencies

  • [2] S2NXJOJE Fix a race that can cause hydra-queue-runner to ignore newly added builds
  • [3] PIRYGQWS GitInput: only convert integer option values to int
  • [4] K4TJNA56 updateDeclarativeJobset: only set the emailresponsible column when defined (#788)
  • [5] BCFAS6VO declarative projects: support fully static, declarative configuration
  • [6] RFE6T5LG * Store jobset evaluations in the database explicitly. This includes
  • [7] DDGBLKEN Update isCurrent properly
  • [8] FTPCV25M Store aggregate members in the database
  • [9] UGA45FNC Add a plugin for backing up builds in s3
  • [10] JYXWIQG4 Include the project and jobset names in the configuration blocks
  • [11] DDMYFZ5X Fix the jobset unchanged check
  • [12] 34SOPSVF Allow to configure the timeout value for the GitInput plugin in different places.
  • [13] 4JE45C3C Force creation of a new uncached eval if jobs have been removed
  • [14] CUFVKLLA Remove Hydra::Helper::nix::txn_do from the Perl code
  • [15] KBH3N57H S3Backup: Create a proper nar
  • [16] 6WRGCITD Enable declarative projects.
  • [17] R6PCOVLX s3backup: Create temporary file in temp dir
  • [18] JCJJKRWQ Handle job aliases in AggregateConstituents
  • [*] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [*] JAH3UPWA Support revision control systems via plugins
  • [*] N22GPKYT * Put info about logs / build products in the DB.

Change contents

  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 67
    [6.1409][6.1409:1480]()
    while ((my $name, my $data) = each %{$declSpec->{"inputs"}}) {
    [6.1409]
    [4.0]
    foreach my $name (keys %{$declSpec->{"inputs"}}) {
    my $data = $declSpec->{"inputs"}{$name};
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 88
    [5.3411][5.3411:3478]()
    while ((my $jobsetName, my $spec) = each %$declSpec) {
    [5.3411]
    [5.3478]
    foreach my $jobsetName (keys %$declSpec) {
    my $spec = $declSpec{$jobsetName};
  • replacement in src/lib/Hydra/Plugin/GitInput.pm at line 121
    [6.2643][6.2643:2703]()
    while (my ($opt_name, $opt_value) = each %{$options}) {
    [6.2643]
    [3.0]
    foreach my $opt_name (keys %{$options}) {
    my $opt_value = $options{$opt_name};
  • replacement in src/lib/Hydra/Plugin/S3Backup.pm at line 101
    [6.4468][6.4468:4545]()
    while (my ($compression_type, $configs) = each %compression_types) {
    [6.4468]
    [6.4545]
    foreach my $compression_type (keys %compression_types) {
    my $configs = $compression_types{$compression_type};
  • replacement in src/lib/Hydra/Plugin/S3Backup.pm at line 148
    [6.6830][6.6830:6892]()
    while (my ($compression_type, $infos) = each %narinfos) {
    [6.6830]
    [6.6892]
    foreach my $compression_type (keys %narinfos) {
    my $infos = $narinfos{$compression_type};
  • replacement in src/script/hydra-eval-jobset at line 756
    [6.4843][6.234:286]()
    while (my ($id, $x) = each %buildMap) {
    [6.4843]
    [6.286]
    foreach my $id (keys %buildMap) {
    my $x = $buildMap{$id};
  • replacement in src/script/hydra-eval-jobset at line 766
    [6.4872][6.4872:4924]()
    while (my ($id, $x) = each %buildMap) {
    [6.4872]
    [6.622]
    foreach my $id (keys %buildMap) {
    my $x = $buildMap{$id};
  • replacement in src/script/hydra-eval-jobset at line 811
    [2.615][2.615:667]()
    while (my ($id, $x) = each %buildMap) {
    [2.615]
    [2.667]
    foreach my $id (keys %buildMap) {
    my $x = $buildMap{$id};