nginx / unit

NGINX Unit - universal web app server - a lightweight and versatile open source server that simplifies the application stack by natively executing application code across eight different programming language runtimes.
https://unit.nginx.org
Apache License 2.0
5.37k stars 323 forks source link

Release 1.33 meta tasks #1399

Closed callahad closed 1 week ago

callahad commented 1 month ago

...and then hand it off to SysEng to make the release :)

Jcahilltorre commented 1 month ago

Where can I see the list of items to be highlighted on this release?

callahad commented 1 month ago

Those will be plucked out by @avahahn and @ac000 as part of the bullet immediately above the handoff task :)

ac000 commented 1 month ago

For the changelog I have the following (selected from git shortlog 1.32.0..master)

Listed in feature/change/bugfix order

<change type="feature">                                                         
<para>                                                                          
show list of loaded language modules in the /status endpoint.                   
</para>                                                                         
</change>                                                                       

<change type="feature">                                                         
<para>                                                                          
make the number of router threads configurable.                                 
</para>                                                                         
</change>                                                                       

<change type="feature">                                                         
<para>                                                                          
make the listen(2) backlog configurable.                                        
</para>                                                                         
</change>

<change type="feature">                                                         
<para>                                                                          
add fuzzing via oss-fuzz.                                                       
</para>                                                                         
</change>

<change type="feature">                                                         
<para>                                                                          
add Python application factory support.                                         
</para>                                                                         
</change> 

<change type="feature">                                                         
<para>                                                                          
add chunked request body support.                                               
</para>                                                                         
</change>                                                                       

<change type="feature">                                                         
<para>                                                                          
add "if" option to the "match" object.                                          
</para>                                                                         
</change>

<change type="change">                                                          
<para>                                                                          
unit now builds with -std=gnu11 (C11 with GNU extensions).                      
</para>                                                                         
</change>                                                                       

<change type="change">                                                          
<para>                                                                          
unit now creates the full directory path for the PID file and control socket.   
</para>                                                                         
</change>

<change type="change">                                                          
<para>                                                                          
build system improvements, including pretty printing the make output and        
enabling various make variables to influence the build process (see:            
make help).                                                                     
</para>                                                                         
</change>                                                                       

<change type="change">                                                          
<para>                                                                          
better detection of available runnable CPUs on Linux.                           
</para>                                                                         
</change>                                                                       

<change type="change">                                                          
<para>                                                                          
default listen(2) backlog on Linux now defaults to Kernel default.              
</para>                                                                         
</change>

<change type="bugfix">                                                          
<para>                                                                          
don't create the $runstatedir directory which triggered an Alpine packaging     
error.                                                                          
</para>                                                                         
</change>

<change type="bugfix">                                                          
<para>                                                                          
wasm-wasi-component application process hangs after receiving restart signal    
from the control endpoint.                                                      
</para>                                                                         
</change>

<change type="bugfix">                                                          
<para>                                                                          
njs variables accessed with a JS template literal should not be cacheable.      
</para>                                                                         
</change>                                                                       

<change type="bugfix">                                                          
<para>                                                                          
don't modify REQUEST_URI.                                                       
</para>                                                                         
</change>                                                                       

<change type="bugfix">                                                          
<para>                                                                          
properly handle deleting arrays of certificates.                                
</para>                                                                         
</change>
ac000 commented 1 month ago

OK, forget the previous comment.

To keep just one source of truth (docs/changes.xml/CHANGES), I've started https://github.com/nginx/unit/pull/1401

ac000 commented 1 month ago

As well as the changelog, I think we should start providing the output of git shortlog ... as the Git (and other projects do), e.g https://lore.kernel.org/git/xmqqzfq0i0qa.fsf@gitster.g/

And let's not forget to highlight our external contributors... currently

Alejandro Colomar (12)
Arjun (15)
Costas Drongos (1)
Gourav (2)
Remi Collet (1)
dependabot[bot] (5)

I think we can ignore dependabot!

ac000 commented 1 month ago

We should probably give Arjun (@pkillarjun) special mention for his fuzzing work...

ac000 commented 1 month ago

In terms of what we need to commit before a release, looking back over the last few releases, there's no standard order of things, but I believe it should basically be these three commits

1) ~Generate dockerfiles~ (well that's what it was called ace553dc) Update dockerfiles 2) Update changes.xml 3) Generate new CHANGES files

That last commit is what gets tagged as the new release.

Except that the dockerfile thing throws a slight fly in the ointment due to changes like

-    && git clone --depth 1 -b 1.31.1-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.32.0-1 https://github.com/nginx/unit \

Which means there is a window (albeit small(ish)) where these won't work until the -1 tag is created.

It also looks like we can just get rid of .hgtags, that hasn't been updated since 1.31.1

Jcahilltorre commented 1 month ago

I will open a PR with the skeleton file for the news page

ac000 commented 1 month ago

I have created a draft of the 1.33.0 announce email (sent to the Unit mailing list), somewhat inspired by git's announce emails.

If anyone notices their favourite feature missing, let me know, or even better, send text!

@Jcahilltorre Feel free to lift bits out of there for the website.

ac000 commented 1 month ago

Hey folks, still a few outstanding things before we can release...