stan-dev / httpstan

HTTP interface to Stan, a package for Bayesian inference.
ISC License
39 stars 15 forks source link

feat: Update Stan to 2.33.0, bump version #642

Closed riddell-stan closed 9 months ago

riddell-stan commented 9 months ago

Update Stan to 2.33.0, bump httpstan version.

riddell-stan commented 9 months ago

Encountering a strange pytest error with Python 3.11 (but not Python 3.10).

First task, fix the stan syntax errors raising this message:

Declaration of arrays by placing brackets after a variable name was removed in Stan 2.33.0. Instead use the array keyword before the type. This can be changed automatically using the auto-format flag to stanc

Unrelated but troubling: I'm encountering C++ model compile failures using gcc 12.3 (Ubuntu 23.04). Should at least test with Ubuntu 22.04 before releasing.

riddell-stan commented 9 months ago

Stopped for now. The following code is not raising a sampling initialization exception (but should):

    program_code = """
    parameters {
    real y;
    }
    model {
    y ~ uniform(100, 101);
    }
    """
ahartikainen commented 9 months ago

Has 2.33 changed anything in their initialization routine?

ahartikainen commented 9 months ago

Could this affect the test?

https://github.com/stan-dev/math/commit/ca3329dbab2ed8e139d51c4254b73e6181fd293a

riddell-stan commented 9 months ago

I think I found the changes that Stan C++ made that are causing this:

I'm busy the next few days but I'll have some time after that. I think this should be easy to fix.

riddell-stan commented 9 months ago

I think this is all set.

riddell-stan commented 9 months ago

@ahartikainen Any interest in doing the release this time? There are four steps in httpstan (one of which is finished by this PR) and all the steps for pystan.

Here are the three steps remaining for httpstan (from developer_resources.rst):

- Tag a release: `git tag -u 85107A96512971B8C55932085D5D0CFF0A51A83D -m "httpstan 4.8.0" 4.8.0`
- Push the tag to upstream: `git push upstream 4.8.0`
- Wait a few days, the stan-dev/httpstan-wheels repository tries to build (and publish) new wheels every two days.
ahartikainen commented 9 months ago

Yes, I can do it.

ahartikainen commented 9 months ago

@ahartikainen Any interest in doing the release this time? There are four steps in httpstan (one of which is finished by this PR) and all the steps for pystan.

Here are the three steps remaining for httpstan (from developer_resources.rst):

- Tag a release: `git tag -u 85107A96512971B8C55932085D5D0CFF0A51A83D -m "httpstan 4.8.0" 4.8.0`
- Push the tag to upstream: `git push upstream 4.8.0`
- Wait a few days, the stan-dev/httpstan-wheels repository tries to build (and publish) new wheels every two days.

Ok I have finally gone through my old laptop and I can not find my signing key anywhere. And apparently I don't have it in github either.

riddell-stan commented 9 months ago

Signing the tag is a good idea. But we probably shouldn't have a single shared signing key. I'm almost positive that this would be regarded as a bad practice by security experts. We should change the docs to say that git tags will be signed by you or by me -- our individual keys.

Want to start this now? Create a new gpg key for Ari Hartikainen and sign the tag with it?

(When I create new keys I generally use this to get a sensible algorithm: gpg --quick-generate-key "first last <myemail@example.net>" future-default)

ahartikainen commented 9 months ago

Yes, sounds reasonable