From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E4DE347D9D for ; Mon, 27 Nov 2023 02:38:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BC17F68CF5D; Mon, 27 Nov 2023 04:38:05 +0200 (EET) Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3EB4F68020E for ; Mon, 27 Nov 2023 04:37:57 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1701052673; bh=WN/rKqbjzPxfcC5/w5yRpXXLatQEsIJyiFRjRBFUlrw=; h=From:Subject:Date:References:To:In-Reply-To; b=dqG0KmKq2rQcaG+CmW82smPOfbXimfwrN+OP+Qh8lc/LTfc8gYxJPsP1wUUxDXUyB HUHh6dNRhawzKcfnLuQObDtBLvWXdpyg7RZwqh1xRm9+aMbzN5rBG+WQI7LcFaP71P iszhn6KiNTf27KJk9URWJVk9FJn7OWGvE+gnejCc= Received: from smtpclient.apple ([119.147.10.195]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 974834C3; Mon, 27 Nov 2023 10:37:52 +0800 X-QQ-mid: xmsmtpt1701052672t7kamdkkn Message-ID: X-QQ-XMAILINFO: N4r4IakIsd1kqJ7mR2OXcdsXfakAQPqbmctCJNS/JngqfOEqkAkzLklO0FlS1L R7lQ3MIkOzJnbMfCZYQbRCD9vpyMvYPY7qNghtA6FUQF86fsyXDauXegax593qrwUompq+c9NPsC W/gYCwr2Hz0bmVNrfggfXyeH8fM1lw+Y3CEwnk2VQRLrtLym91cDdAzoytP11+uX8T0nhdrL9LMg btgvZkc07JiT9ZbvHualYJeetoavLR45Tv05Am95RQr03ktyqGqRiJoPH3+e1Uayt6EqjmmXPHvX eMRlD0mREyYCJB/i1d8kJzgJLaMhtZLiWuKBiHKgvMOYzyPxSI2vw9NQSVf5HXkVCJqYIEtIke5q WIhN91JIyJzi24II+QV2ZUX+pOvw0JBDOgE1JVWqgHq3xT0rI2CfWQcKhWsQRLR9/SUbVwE4mHJS aNPvjJqkjgz6ChdMnW0tBeFKZmbqxJDlbkTtFPf/fF9wRnmRejdF5RcA383orJuWeKTJc0yjlJ/7 pEcuvDmbSTYaGEyR/PQBaTzMafKrzMAhmwLorc6P1GN2+aVP1YSdN8ywfNcVxRB/wNEyqSbmchDp im24uHgaIw5n1Ri1JtxK0XyhdsOLqoQ9jRAsebu3vqk2XUPyAeRt6uz4pylTvkUTYbWYxaNl1K3b a/NVfYZOgespCaMQwsEM4smq8ZZ6VMM2DSvczib/6PZKUZj/onUyR6MUwo2eQJ0C+shD0MJBzcFt m2uOJDSMnoH75xB4xSvTf0maE8iBlWc4FWtDdAL1MxyLG95QqaJ+G78Obt11k7CAq9Kv6Ues+Qnz Jm8ZQQbiajY8FA/+OrCbHylVyoy/7bXFh/3/f6/Kg98mhnY9ay1UrP7jnAOpxuhstJY/pBktBCKr 4qIcVZxMHDlm3/tgLde0ZmJEx5B/TRMra5/iLqron0MghpWO+0n1Jk3mTxmeH1DgvMwOx7yI7aMe ZufTvfcjQReZHZsQihe2gHR7qw7ejjHKY3rtOoqMM= X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Date: Mon, 27 Nov 2023 10:37:42 +0800 References: <20231123091424.25640-1-anton@khirnov.net> <170099033001.8914.10786614189489946675@lain.khirnov.net> To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: X-Mailer: Apple Mail (2.3774.200.91.1.1) Subject: Re: [FFmpeg-devel] [PATCH 1/2] tools/general_assembly: implement extra GA members X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > On Nov 26, 2023, at 23:08, Alexander Strasser wrote: > > On 2023-11-26 10:18 +0100, Anton Khirnov wrote: >> Set pushed. >> >> The general_assembly.pl script should now be usable as the authoritative >> source for GA members. > > The patches mostly LGTM. > > My Perl knowledge in general is really mostly from 20 years ago. > So if there is any Perl-ish devil in the details I surely have > overlooked it. > > Please pardon me if I missed any details on how the program works. > The edge cases are always the tricky stuff... > > One thing about this patch and that program in general is a bit > unfortunate: The use of PerlDate is_between. > > Here is the doc I found for it: > > $dt->is_between( $lower, $upper ) > Checks whether $dt is strictly between two other DateTime objects. > > "Strictly" means that $dt must be greater than $lower and less than $upper. If it is equal to either object then this method returns false. > > > AFAIU it affects the script in 2 places: > > 1. In subroutine get_date_range: > Here the exact day matching date_ga_rule is treated like > anything >= date_first_regular > > 2. In the loop adding the extra member. The member would not be added > on both, the day they were elected nor the day 2 years after. > > Case 1 should be "strictly academical" and thus not really important > because to my knowledge no vote was started on that day. > > For case 2 it will be not important on most days, but it would seem > more common and intuitive to use either the closed interval or a > half open interval. Where including the first and the last day or > including the first and excluding the day seem most natural to me. > > > Best regards, > Alexander > > > P.S. > As date calculations always turn out nightmares if you look at them > long enough, it would possible be a good idea to always use UTC and > review how time zones are handled in git CLI. > > P.P.S. > For quick reference follow copies for both places referenced above: > > Case 1: > sub get_date_range { > my ($now) = @_; > > # date on which the GA update rule was established, and the voter list > # was extraordinarily updated; cf.: > # * http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2023-October/316054.html > # Message-Id <169818211998.11195.16532637803201641594@lain.khirnov.net> > # * http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2023-November/316618.html > # Message-Id <5efcab06-8510-4226-bf18-68820c7c69ba@betaapp.fastmail.com> > my $date_ga_rule = DateTime->new(year => 2023, month => 11, day => 06); > # date when the regular update rule is first applied > my $date_first_regular = DateTime->new(year => 2024); > > if ($now->is_between($date_ga_rule, $date_first_regular)) { > return ($date_ga_rule->clone()->set_year($date_ga_rule->year - 3), $date_ga_rule); > } > > if ($now < $date_ga_rule) { > print STDERR "GA before $date_ga_rule is not well-defined, be very careful with the output\n"; > } > > my $cur_year_jan = $now->clone()->truncate(to => "year"); > my $cur_year_jul = $cur_year_jan->clone()->set_month(7); > my $date_until = $now > $cur_year_jul ? $cur_year_jul : $cur_year_jan; > my $date_since = $date_until->clone()->set_year($date_until->year - 3); > > return ($date_since, $date_until); > } > > > Case 2: > foreach my $entry (@extra_members) { > my $elected = $entry->[2]; > if ($date->is_between($elected, $elected->clone()->set_year($elected->year + 2))) { > $assembly{$entry->[0]} = $entry->[1]; > } > } I can only say wow as I know zero about perl. Is it the same reason to write it in perl as automake so it can be run everywhere? > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".