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

Slang build/release per sprint. #4718

Closed
bmillsNV opened this issue Jul 23, 2024 · 7 comments
Closed

Slang build/release per sprint. #4718

bmillsNV opened this issue Jul 23, 2024 · 7 comments
Assignees
Labels
goal:meta-task Issue for tracking tasks unrelated to implementation, design, or debugging.

Comments

@bmillsNV
Copy link
Collaborator

bmillsNV commented Jul 23, 2024

Go through this process to create a slang build - https://docs.google.com/document/d/1uOZ8dBLEMEZ5Z4lYMJo1FWy5WCK7dbDSJVQkDuKyvRk/edit#heading=h.f08fmj2k9yvb

@bmillsNV bmillsNV added the goal:meta-task Issue for tracking tasks unrelated to implementation, design, or debugging. label Jul 23, 2024
@bmillsNV bmillsNV added this to the Q3 2024 (Summer) milestone Jul 25, 2024
@bmillsNV bmillsNV changed the title Slang build/release Slang build/release per sprint. Jul 30, 2024
@jkwak-work
Copy link
Collaborator

@jkwak-work
Copy link
Collaborator

I have written a script to generate the release log.
The output from the script looks like following,

=== Breaking changes ===

=== Non breaking changes ===
7e2bc8e Allow passing sized array to unsized array parameter. (#4744) (#4701:forward looking)
c0bff66 Disable warnings for input global variables (#4745)
a266cbf Add reflection of inout modifiers (#4711)
a4eac09 Assertion failure on debug build for memory leaks (#4733)
0fe55d6 Disallow multi-dim vector subscript in slang IR (#4277) (#3180:quality & productivity)
2e7e2b5 Add _Internal/External atom enforcement and validation. (#4702) (#4676:quality & productivity)
19657f8 Add a proposal for new AST/IR serialization (#4684)
c9d89a4 Overhaul IR lowering of pointer types. (#4710) (#4674:client support)
1343ab7 Fix around extensions and IDifferentiable requirement synthesis. (#4729) (#4699:client support)
3c03d27 Don't trigger CI on doc changes. (#4736) (#4685:quality & productivity)
a443350 Allow implicitly casting enum types to bool. (#4739) (#4738:client support)
7ea47f9 Support 1-dimensional matrix for HLSL (#4728) (#4395:client exploration)
efe1105 Update README.md
a8ce7a9 Update README.md on Metal support.
efa8d1a Add generic descriptor indexing intrinsic (#4389) (#4351:quality & productivity)
639576c Add missing make_bool intrinsics in cuda prelude. (#4735) (#4734:client support)
fe28d9c Fix checking of var with matrix layout modifier. (#4737) (#4633:quality & productivity)
657213f Cleanup global memory allocations on shutdown. (#4731) (#4208:quality & productivity)
a1607f8 Fix warning messages for MSVC and external projects (#4730) (#4692:quality & productivity)
5339f61 Allow only specific spv storage classes for binding decoration (#4713)
72f7ea6 Fix for ConstantBuffer<T[...]> causing a segfault (#4705) (#4704:client support)
6216177 Print SPIRV validation error message (#4697) (#4696:quality & productivity)
1670d7e Install the missing public headers in release package (#4712)
986256f Feature/capture (#4625)
c28d8b6 Warn if providing explicit bindings to a object using uniform locations (#4708) (#4700:client support)
509bfd8 Simplify CapabilitySet Diagnostic Printing (#4678) (#4172:quality & productivity)
15f091a Add Metal to user-guide/09-targets.md (#4703)

The script is pasted below.

#!/bin/bash
# Download gh.exe from https://cli.github.com
gh="/mnt/c/Program Files/GitHub CLI/gh.exe"
git="/mnt/c/Program Files/Git/cmd/git.exe"
for f in "$gh" "$git"
do
        if [ ! -x "$f" ]
        then
                echo "File not found: $f"
                exit 1
        fi
done

if [ "x$1" = "x" ]
then
        echo "Usage: $0 2024-07-30"
        exit 1
fi

commits="$("$git" log --oneline --since $@)"

echo "=== Breaking changes ==="
while IFS= read -r line
do
        # A workaround for a strange issue where the while-loop
        # loops only once when gh.exe or git.exe is executed
        echo "" | while IFS= read -r dummy
        do
                pr="$(echo "$line" | grep '#[1-9][0-9][0-9][0-9][0-9]*' | sed 's|.* (\#\([1-9][0-9][0-9][0-9][0-9]*\))|\1|')"
                [ "x$pr" = "x" ] && break
                breaking="$("$gh" issue view $pr --json labels | grep 'pr: breaking change')"
                [ "x$breaking" = "x" ] && break
                echo "$line"
        done
done <<< "$commits"
echo ""

echo "=== Non breaking changes ==="
while IFS= read -r line
do
        echo -n "$line"
        echo "" | while IFS= read -r dummy
        do
                pr="$(echo "$line" | grep '#[1-9][0-9][0-9][0-9][0-9]*' | sed 's|.* (\#\([1-9][0-9][0-9][0-9][0-9]*\))|\1|')"
                [ "x$pr" = "x" ] && break
                breaking="$("$gh" issue view $pr --json labels | grep 'pr: breaking change')"
                [ "x$breaking" != "x" ] && break
                body="$("$gh" issue view $pr --json body)"
                [ "x$body" = "x" ] && break
                issue="$(echo "$body" | grep '#[1-9][0-9][0-9][0-9][0-9]*' | sed 's|.*\#\([1-9][0-9][0-9][0-9][0-9]*\).*|\1|')"
                [ "x$issue" = "x" ] && break
                label="$("$gh" issue view $issue --json labels)"
                [ "x$label" = "x" ] && break
                goal="$(echo "$label" | grep '"goal:' | sed 's|.*"goal:\([^"]*\)".*|\1|')"
                [ "x$goal" = "x" ] && break
                echo -n " (#$issue:$goal)"
        done
        echo ""
done <<< "$commits"

@csyonghe
Copy link
Collaborator

Can we output in a format as:

===== Breaking Change ========
all breaking commits

===== All Changes =======
all commits in time order
xxxx
[BREAKING] xxxx
xxxx
...

@jkwak-work
Copy link
Collaborator

Thanks for the feedback.
It is easy to make that change on the script.
I will change the script to include breaking changes in the renamed section "All changes".

Note that there isn't any breaking changes submitted for the current sprint yet.
That's why the "=== Breaking changes ===" is showing nothing currently.

jkwak-work added a commit to jkwak-work/slang that referenced this issue Aug 5, 2024
jkwak-work added a commit to jkwak-work/slang that referenced this issue Aug 5, 2024
jkwak-work added a commit to jkwak-work/slang that referenced this issue Aug 5, 2024
@jkwak-work
Copy link
Collaborator

I was thinking of asking chatGPT to summarize the changes in one line at the beginning of the release note.
When I tried, the result wasn't very impressive.
The summary was too generic and not very helpful.

jkwak-work added a commit to jkwak-work/slang that referenced this issue Aug 6, 2024
@jkwak-work
Copy link
Collaborator

A new release is created with a tag name "v2024.9" as described on the document.
https://github.com/shader-slang/slang/releases/tag/v2024.9

As far as I know, there isn't a major changes or features.
There was no breaking changes for this sprint but "No breaking changes" is explicitly described.

@jkwak-work
Copy link
Collaborator

The document is updated with more information about the case where hotfix is released.
The current release note is updated based on the information.

Marking this as done.

jkwak-work added a commit to jkwak-work/slang that referenced this issue Aug 13, 2024
csyonghe added a commit that referenced this issue Aug 28, 2024
* Script for generating a release note

Related to #4718

* Adding a comment about how to run

---------

Co-authored-by: Yong He <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
goal:meta-task Issue for tracking tasks unrelated to implementation, design, or debugging.
Projects
None yet
Development

No branches or pull requests

3 participants