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

Release 3.1.0 master PR #1623

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

mfrancis95
Copy link
Contributor

Starting this to serve as a master PR for release 3.1.0. Locking in 7f25bf6 as the commit 3.1 is based on. I figured we can use this PR for a bit to collect some more changelog additions before going live.

There are simply way too many changes to try to sift through though, so eventually we should reach some level of comfort with what we have and consider augmenting the changelog post-release if we find additional key changes that we want captured.

@turol
Copy link
Member

turol commented Oct 11, 2023

Things to mention:

@rfomin
Copy link
Contributor

rfomin commented Oct 11, 2023

  • Redesign of native MIDI support in Windows (authors @ceski-1 and @rfomin):
    • Removing the midiproc.exe program.
    • Correct pause/resume.
    • Added support for SysEx messages.
    • Correct reset of MIDI devices using SysEx messages (by @ceski-1).
    • Implement a "capital tone fallback" emulation (by @ceski-1).
    • Add full EMIDI support, looping points (Final Fantasy and RPG Maker) (by @ceski-1).
    • Add MIDI compatibility levels. Emulate Vanilla Doom's DMX MPU-401 mode, Microsoft GS Wavetable Synth or send all messages to MIDI device. Documentation https://gist.github.com/ceski-1/86b7405a66ff67c42a788000edc3b625 (by @ceski-1).
  • FluidSynth support implemented (by @mikeday0).
  • Support for non-Latin file names in Windows (by @rfomin).
  • Support for modern gamepads (by @mikeday0).

Hopefully @ceski-1 and @mikeday0 will add more details.

A few issues:

  1. The current chocpkg system does not support FluidSynth. We can build a release for Windows using MSYS2 in GitHub CI.
  2. I think we should add support for at least analog turning for the gamepad (analog movement is more controversial).

@mikeday0
Copy link
Contributor

  • FluidSynth and gamepad contributions are already mentioned in NEWS.md, so I think we're covered on that.
  • Properly handle orphan carriage returns when parsing deh files (by @mikeday0).
  • Allow simultaneous PC speaker emulation and OPL emulation (by @mikeday0).

Everything else I did was already mentioned in turol's comment above.

The current chocpkg system does not support FluidSynth. We can build a release for Windows using MSYS2 in GitHub CI.

If we go the GitHub CI MSYS2 route, I suggest waiting for the new release of SDL_Mixer. (I saw somewhere they were doing one this month) It will have a fix for the annoying FLAC looping crash.

I think we should add support for at least analog turning for the gamepad (analog movement is more controversial).

I've got this mostly done, just need to polish. I will submit a PR this weekend.

@ceski-1

This comment was marked as resolved.

@mfrancis95
Copy link
Contributor Author

I'm starting to slowly add what's been mentioned. Feel free to use the suggestion feature to add your lines or add commits to my branch.

@fabiangreffrath
Copy link
Member

fabiangreffrath commented Oct 12, 2023

Please mention the two security fixes that were factored out into 3.0.1, but are if course also fixed in 3.1.0.

@fabiangreffrath
Copy link
Member

Please mention the two security fixes that were factor out into 3.0.1, but are if course also fixed in 3.1.0.

One of them was assigned a CVE id, that's important to mention in the changelog.

@mfrancis95
Copy link
Contributor Author

@fabiangreffrath 3.0.1 added.

@mfrancis95
Copy link
Contributor Author

Added @fragglet 's NEWS.md additions from last year. @turol judging by git blame it looks like the enum for v1.2 was added pre-3.0.0 but the version didn't gain any actual semblance of emulation until post-3.0.0.

@mfrancis95
Copy link
Contributor Author

mfrancis95 commented Oct 14, 2023

Added more from @turol 's list. Can you expand on the following items as I'm having trouble finding these changes in the code?

  • improved portability by allowing disable SDL extra libs
  • developer only debug things (mempool disable, linked list infinite loop checking)

and provide commit hashes if you can? It's to help credit people and understand the context. Otherwise, it would be preferable to use the suggestion feature to add those in.

Does anyone know who were all the folks who contributed to the new icons? I see several people possibly involved and it looks like at least one of them has a deleted GitHub account. Just want to make sure credit is given where it's due.

@fabiangreffrath
Copy link
Member

Does anyone know who were all the folks who contributed to the new icons? I see several people possibly involved and it looks like at least one of them has a deleted GitHub account. Just want to make sure credit is given where it's due.

The person who left Github was the one who made the current Crispy icons. Their name is Philip Kiwan, but that's all I know unfortunately.

@fabiangreffrath
Copy link
Member

Oh, wow, apparently the original contributor of the chocolate bar style icons that are currently used for Chocolate has also disappeared. According to this commit, their user name was @clovehoof:
709862f

@turol
Copy link
Member

turol commented Oct 16, 2023

@mfrancis95 explanations in the PRs:
#1489
#1480

Also re: mingw CI, I only copied that from Crispy Doom so most of the credit probably belongs to @fabiangreffrath

@fabiangreffrath
Copy link
Member

Also re: mingw CI, I only copied that from Crispy Doom so most of the credit probably belongs to @fabiangreffrath

Nope, not my work. Please credit @rfomin for this.

* Sector special 17 (random light flicker) is now accurately emulated to only appear in gameversion > 1.2 (thanks tpoppins).
* Fixed mouse events causing unwanted key presses (thanks Michael Day).
* French Doom II files doom2f.wad and french.deh are now automatically detected (thanks Acts19quiz).
* Mouse buttons are now bindable to run (thanks Archenoth).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is now even possible to bind mouse buttons to turn left/right in all games:
331aed4

@rfomin
Copy link
Contributor

rfomin commented Oct 16, 2023

Also re: mingw CI, I only copied that from Crispy Doom so most of the credit probably belongs to @fabiangreffrath

Nope, not my work. Please credit @rfomin for this.

Speaking of mingw CI, I can modify it to publish a release on GitHub like Crispy does.

Pros:

  • Newer versions of the compiler and tools
  • 64-bit build
  • FluidSynth support

Cons:

  • We will lose support for Windows XP

@fabiangreffrath
Copy link
Member

  • We will lose support for Windows XP

I am all for it! Even Microsoft itself gave up support for Windows XP some 10 years ago.

@turol
Copy link
Member

turol commented Oct 17, 2023

@mfrancis95 There are several open PRs ready for review. Do you want to keep master frozen or can I merge them?

@mfrancis95
Copy link
Contributor Author

mfrancis95 commented Oct 17, 2023

@mfrancis95 explanations in the PRs: #1489 #1480

Thanks @turol. Added.

Speaking of mingw CI, I can modify it to publish a release on GitHub like Crispy does.

@rfomin how would you safeguard against having it publish a release for every single commit? I would think we'd only want to have it do this every now and then (but definitely way more frequently than 6 years!)

We will lose support for Windows XP

Another 👍 to deprecating support.

@mfrancis95 There are several open PRs ready for review. Do you want to keep master frozen or can I merge them?

@turol I personally really want to just focus on getting this out the door as-is because more PRs = more changelog additions, but I know that @rfomin and @mikeday0 might be looking to get some changes in, so let me know how you all feel about saving some work for 3.2.0? My open PRs can be ignored -- I still want to test some of mine and I have no issues saving them for the next release.

@ceski-1

This comment was marked as outdated.

@rfomin
Copy link
Contributor

rfomin commented Oct 18, 2023

@rfomin how would you safeguard against having it publish a release for every single commit?

A release will be published when a new tag is pushed to the repository, this is how it works for the last few Crispy Doom releases. I'll add this code to main.yml: https://github.com/fabiangreffrath/crispy-doom/blob/99416f4be87f1a5eb6e169c670280627284735a9/.github/workflows/msys2.yml#L79-L86

let me know how you all feel about saving some work for 3.2.0?

I agree with @ceski-1, updating the gamepad #1629 is important. If we decide to use GitHub CI for releases, we should also wait for the SDL_mixer update in MSYS2 to fix the FLAC bug.

@fabiangreffrath
Copy link
Member

I have no issues saving them for the next release.

I don't think we are in a hurry. We have waited for so long, that it doesn't really make a difference to wait a bit more if this means we can take the opportunities for some real improvements. For me, I'd like to avoid releasing 3.1 today, after 6 year of silence, and 3.2 one week later.

@turol
Copy link
Member

turol commented Oct 26, 2023

Need to mention
#1624
#1630
#1631

@ceski-1

This comment was marked as resolved.

@turol
Copy link
Member

turol commented Jan 27, 2024

Some changelog items seem to be missing still.

Which ones? Some of the PRs I asked about were commented as already covered.

@ceski-1

This comment was marked as resolved.

@rfomin
Copy link
Contributor

rfomin commented Jan 27, 2024

There was something about Windows builds not having up to date libraries. Has this been fixed? If not, what needs to be fixed?

We'll need to update SDL2_Mixer to 2.8.0 in chocpkg.

How about this PR #1643? I think we should use GitHub CI for the release build instead of chocpkg.

Pluses:

  • FluidSynth support for Windows and macOS
  • SDL_Mixer 2.8.0 already included in MSYS2
  • 64-bit build on Windows.

Minuses:

  • No Windows XP support

@fabiangreffrath
Copy link
Member

Oh yes, forgot about it. Let's do this, please!

@mikeday0
Copy link
Contributor

mikeday0 commented Feb 2, 2024

Does the rpm.spec.in file need attention? The stated dependencies are incorrect. Does anyone still use these? If not, maybe it should be removed.

@turol
Copy link
Member

turol commented Feb 3, 2024

@mfrancis95 May I force push your branch?

@NY00123
Copy link
Contributor

NY00123 commented Feb 13, 2024

Just heard of a potential release becoming closer.

Hopefully, before that's done, we can have an answer on which variation of Hexen v1.1's behaviors to support.

As a reminder:

  • At some point, I modified the released Hexen sources to match the most common executable known as "v1.1". It is also unofficially known as "1.1r1" nowadays. I submitted a PR for Chocolate Hexen and it was accepted.
  • Only afterwards, I realized that, in fact, there's also an exe matching the released sources; It's just not commonly known or used. It got a similar (unofficial) title of "1.1r2".
  • Therefore, I opened a related issue, and also submitted a PR aiming to re-introduce support for 1.1r2's behaviors in parallel to 1.1r1's.

The main question is, what is to be done for 3.1.0? Revert my change and behave like Chocolate Hexen 3.0.0-3.0.1 (i.e., Hexen 1.1r2), preserve it (1.1r1) or support both variations?

References:
https://doomwiki.org/w/index.php?title=HEXEN.EXE
#1394
#1378
#1266

@fabiangreffrath
Copy link
Member

I'd say we should support the new gameversion, but not make it the default. Though, this is apparently exactly what happened when the alternative Final Doom version was introduced:

ed4adeb

@NY00123
Copy link
Contributor

NY00123 commented Feb 19, 2024

I'd say we should support the new gameversion, but not make it the default. Though, this is apparently exactly what happened when the alternative Final Doom version was introduced:

ed4adeb

Thanks for showing support for having both variations of Hexen 1.1 as options!

It seems that in Final Doom's case, the default was changed to the earlier version more than 6 months later, according to the timestamps of the converted SVN commits: 71d316a

This still differs from the situation with Hexen, as Chocolate Hexen 3.0.1 and earlier should behave like "1.1r2", rather than "1.1r1".

The impacts should still be significantly smaller than in Doom. Apart from changing HEXEN_VERSIONTEXT, there are the A_SoAExplode fixes, impacting demo playback only if monsters are disabled. As in Doom v1.2, I don't think that the demo lumps themselves have a field for the "nomonsters" toggle.

I don't currently have much more to add on 3.1.0 in general. My hunch is that there's more than enough to cover, including but not limited to other improvements to accuracy during gameplay. After 3.1.0 is out, this might also become the standard version of Chocolate Doom for multiplayer, given that a revision differing from 3.0.0 and 3.0.1 has been suggested for a while, if I'm not wrong.

@fabiangreffrath
Copy link
Member

We came a good way forward. Any other blockers left?

@turol
Copy link
Member

turol commented Feb 20, 2024

Are all of today's PRs mentioned? In particular the Hexen/Strife desync?

Do we still want to wait for #1665?

@JNechaevsky
Copy link
Contributor

JNechaevsky commented Feb 20, 2024

Give me couple of hours please, I was going to do it today, but we have yet another moving of furniture at day job. 🤯

@NY00123 NY00123 mentioned this pull request Feb 21, 2024
@turol
Copy link
Member

turol commented Mar 12, 2024

There were no objections so I rebased and partially squahed this. Are we still missing something?

@mikeday0
Copy link
Contributor

Still need mention of the last handful of PRs:

  • Fix possible Hexen and Strife desync (Michael Day).
  • Heretic: Fix null backsector crash (Julia Nechaevskaya).
  • Hexen: Add support for two different v1.1 variants through -gameversion argument (@NY00123).

I would like to do some Strife gamepad improvements but that can wait until after the release.

@rfomin
Copy link
Contributor

rfomin commented Mar 12, 2024

We need to update the RELEASE_NOTES.md file for the release on GitHub. I suggest just copying the ## 3.1.0 (2024-??-??) section from NEWS.md into it.

@NY00123
Copy link
Contributor

NY00123 commented Mar 12, 2024

Might PR #1435 impact this? See also the last comment I added over there.

@turol
Copy link
Member

turol commented Mar 16, 2024

@rfomin Updating RELEASE_NOTES.md should be done once just before release so it doesn't accidentally get left incomplete.

@NY00123 I couldn't find a PR for bash completion fix. Do you have it?

@NY00123
Copy link
Contributor

NY00123 commented Mar 16, 2024

@NY00123 I couldn't find a PR for bash completion fix. Do you have it?

I can't find a clear relevant PR referencing bash completion, either. Maybe @fragglet will recall, being the one to list the fix in PR #1435.

Referencing possible commits:

b9d4c04
96e0123 (probably not that one)
da88012

@fabiangreffrath
Copy link
Member

Referencing possible commits:

Pretty sure the last one.

@turol
Copy link
Member

turol commented Mar 23, 2024

If we're happy with the changelog then we should...

  1. Pick a release date
  2. I'll add it to the changelog and rebase one last time.
  3. I'll copy the 3.1.0 stuff to RELEASE_NOTES.md
  4. Merge this PR
  5. The actual release. What needs to be done to make this happen? Just push a tag?

@rfomin
Copy link
Contributor

rfomin commented Mar 23, 2024

5. The actual release. What needs to be done to make this happen? Just push a tag?

Yes, just push a tag. Although it will only be a release on GitHub, not chocolate-doom.org.

@mikeday0
Copy link
Contributor

If we're happy with the changelog then we should...

1. Pick a release date

I am just a humble contributor but I vote next Monday - April Fools' Day. :)

@SoDOOManiac
Copy link
Contributor

Looking forward to this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants