The JRuby community is pleased to announce the release of JRuby 9.4.7.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving
forward! @kares, @ryannevell, @jsvd
Ruby Compatibility
- Many edge cases in language compatibility have been fixed. #7440,
#8128, #8192, #8193, #8195, #8197, #8198
Standard Library
- jruby-openssl is updated to 0.14.5
- rdoc is updated to 6.4.1.1
- Warnings due to method aliasing in the ostruct library have been
mitigated. #8200, #8206
JVM Integration
- Ruby classes that are “reified” into a Java class and later redefined
can be “re-reified” to a new Java class with an incrementing version
number. #8141, #8185
- Java objects from other classloaders can pollute the Java:: namespace.
This behavior can be disabled now, and will be disabled by default in JRuby
10. #8156, #8208
53 Github Issues resolved for 9.4.7.0
#7440 Multiple assignment evaluation order consistency
#8112 update this ancient lockfile
#8113 Remove long dead torquebox from template Gemfile and update to
newer …
#8114 one last update to puma version for sample Gemfile
#8119 Possible Keyword Argument Regression in 9.4.6.0
#8121 Prepending a module to a subclass changes it representation in
the superclass#subclasses array
#8122 Handle prepend in subclasses
#8123 lutimes was passing huge wrong values to function
#8124 Method.clone of frozen should stay frozen
#8125 Proc#clone of frozen proc should stay frozen
#8126 UnboundMethod#clone of frozen UnboundMethod should stay frozen
#8127 EncodingError should be SyntaxError for bad symbols?
#8128 parameters value for **nil should be nokey
#8130 Return proper encoding error string for String#to_c
#8131 frozen error handling for remove_instance_variable
#8132 test flags for stats need to handle file instances as well as
strings
#8133 Implement string/eval form of trace_var
#8134 Fix various kwarg-related specs in IO#open, File#open and
Kernel#open.
#8135 Cannot install latest rubocop
#8136 Redo java commandline calculation to work with newer Java’s
#8138 [deps] update joda-time to 2.12.7
#8139 to_time raise an exception. (class org.jruby.ext.date.RubyDate
cannot be cast to class org.jruby.ext.date.RubyDateTime)
#8141 can not re-reify sub-class of a Java sub-class
#8142 Add-Opens for complete -jar runs as expected in later Java’s
#8144 Allow extended DateTime to still be constructed using DateTime
#8148 Profiler raises ‘wrong number of arguments for constructor
(ArgumentError)’ for the march_hare gem
#8155 Concurrently requiring a file from multiple threads may “succeed”
even if the file raises an error
#8156 JRuby adds Java proxy classes to the Java module even if they are
not from JRubyClassLoader
#8157 Incorrect case tree selection when comparing Symbols during
compiled Ruby code execution
#8167 Some simple refactoring but removing some mysterious classcast
guards
#8173 Coverage doesn’t cover begin
#8179 Thread#pending_interupt? crashes
#8185 [ji] support re-reifying class hierarchy
#8186 [fix] LoadError on require should not complete load
#8191 Rearrange cond0 to behave more like MRI did in 3.1
#8192 lhs of compound const would crash if not a Module/Class
#8193 side-effects in const op element assign by exec parent of lhs
twice
#8195 use left to right evaluation
#8196 [deps] update jruby-openssl to 0.14.5
#8197 END was not getting parents lvars
#8198 Give same error message for duplicated case arms
#8199 Enumerator#next_values behavior does not match MRI or docs
#8200 Warnings emitted by requiring ‘ostruct’
#8201 Fix issue#8199
#8202 do not emit labels which are not used while constructing loops +
IGV enhancements
#8203 rename all closures to more closely match a name you can read vs
CLOSURE_2
#8204 bump rdoc dependency to 6.4.1.1
#8205 begin node coverage line should not get added if it has been
removed
#8206 Mark frame-aware method names with bang suffix for ostruct
#8207 Partially undo kwarg optz from #8095
#8208 Only set up Java:: constants when accessed directly
#8209 opted case needs to use updated ints when loaded into new runtime.
#8211 Always unwrap old initialize methods
--
blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo(a)gmail.com
Hi,
How to reverse str.codepoints?
how can I convert codepoints between UTF8 and UTF16 ?
e.g: cp1 = [0xf0, 0x9f, 0x8f, 0xb3]; cp2 = [0xe2, 0x82, 0xac] #=> 0x20ac
Could someone add UTF-8 to pack/unpack ?
# seems output is UTF16 instead as UTF8 as doku says!
How to show the US-Flag (star-flag as one graphical symbol), composed
of [0x1f1fa, 0x1f1f8] ?
# How to compose UTF-symbols consisting of more codepoints?
Hi!
How to reverse str.codepoints?
how can I convert Unicode to utf8
e.g: cp1 = [0xf0, 0x9f, 0x8f, 0xb3]; cp2 = [0xe2, 0x82, 0xac] #=> 0x20ac
Could someone add UTF-8 to pack/unpack ?
# seems it outputs UTF16 instead as UTF8 as doku says!
How to show the US-Flag (star-flag as one graphical symbol), composed
of [0x1f1fa, 0x1f1f8] ?
# How to compose UTF-symbols consisting of more codepoints?
sprockets_terser_with_source_maps version 2.0.0 has been Released
* Home https://github.com/javier-menendez/sprockets_terser_with_source_maps
- Documentation uri by version
- Compressor output as hash with data key
- Ruby requirement version to >= 2.6.0
- Ruby 3.3.x added to CI matrix
- Fix GHA warning for nodejs 16 deprecation
rodauth-oauth 1.6.0 has been released.
rodauth-oauth is a rack-compatible toolkit for building OAuth 2.0
authorization servers, as well as OpenID Authentication Providers.
rodauth-oauth
is certified <https://openid.net/certification/> for the following profiles
of the OpenID Connect™ protocol:
Basic OP, Implicit OP, Hybrid OP, Config OP, Dynamic OP, Form Post OP, 3rd
Party Init OP
Session Management OP, RP-Initiated Logout OP, Front-Channel OP,
Back-Channel OP
# as simple as
rodauth do
enable :oauth_authorization_code_grant
# or
enable :oidc
end
Among its features, it supports:
* Authorization Code Grant
* Refresh Token Grant
* Implicit Grant
* Client Credentials Grant
* Device Code Grant
* Token Revocation
* Token Introspection
* Auth Server Metadata
* PKCE
* Resource Indicators
* JWT Access Tokens
* mTLS Client Authentication
* Assertion Framework
* SAML 2.0 Bearer Assertion Grant
* JWT Bearer Assertion Grant
* JWT Secured authorization requests (JAR)
* JWT Secured authorization response mode (JARM)
* Pushed Authorization requests (PAR)
* Demonstrating Proof-of-Possession at the Application Layer (DPoP)
* Dynamic Client Registration
* OpenID
* OpenID Discovery
* OpenID Multiple Response types
* OpenID Self Issued Tokens
* OpenID Connect Dynamic Client Registration
* OpenID Session Management
* OpenID RP Initiated Logout
* OpenID Frontchannel Logout
* OpenID Backchannel Logout
It can also be used with Rails (via the "rodauth-rails" gem).
Website: https://honeyryderchuck.gitlab.io/rodauth-oauth/
Documentation: https://honeyryderchuck.gitlab.io/rodauth-oauth/rdoc/
Wiki: https://gitlab.com/honeyryderchuck/rodauth-oauth/wikis/home
CI: https://gitlab.com/honeyryderchuck/rodauth-oauth/pipeline
These are the release notes since the last update:
# 1.6.0
## Improvements
### "at+jwt" and "id_token+jwt" ty header in JWT tokens
In order to distinguish/identify tokens, JWT access tokens generated
by the `oauth_jwt` feature will contain the "at+jwt" value in the
"typ" header (which follows the [recomendation in the
RFC](https://datatracker.ietf.org/doc/html/rfc9068#section-2.1)),
whereas ID tokens generated by the `oidc` feature will contain the
"id_token+jwt" value in the "typ" header (there is no official
recommendation, but some providers are using this).
**Note**: This header will also be used to validate access tokens.
This means that, once you upgrade, **access tokens generated prior to
the upgrade won't be usable anymore**. In order to mitigate this and
smoothen the upgrade process, disable header verification for a period
greater than the access token expiration time in your application
(controlled by the `oauth_access_token_expires_in` auth value method,
60 minutes by default); this will allow older access tokens to expire.
You can so by overriding the `verify_access_token_headers` auth
method:
```ruby
rodauth do
enable :oauth_jwt # or :oidc
oauth_access_token_expires_in 60 * 60
verify_access_token_headers { } # do nothing
end
That seems to be the main error but the full error message is
[1mTraceback [m (most recent call last):
4: from playground.rb:42:in `<main>'
3: from playground.rb:42:in `p'
2: from playground.rb:42:in `inspect'
1: from playground.rb:42:in `inspect'
playground.rb:42:in `inspect': [1mcannot set encoding on non-encoding
capable object ( [1;4mArgumentError [m [1m) [m
Thanks for your help in advance.
Maybe it is because I need to combine the previous values of the types
arrays with the additional values and not the previous values are set. What
does the error mean and how to fix it?
`ptl=[[0,3],[1,5],[2],[3,14],[4,0],[5,0],[6,15],[7,9],[8,7],[9,11],[10,16],[11,6],[12],[13,9],[14],[15,14],[16]]
ptl.shuffle()
str=ptl[0]+ptl[1]+ptl[2]
cr=3
i=0
w=Array.new(2) { [] }
until i==3
p ptl[cr]
w[i]=ptl[cr]
if ((w[i]&str).length()==0)
i+=1
end
cr+=1
end
types=Array.new(19) { [[],[],[]] }
pwt=w[0]+w[1]+w[2]
types[17]=[[pwt],[str]]
for i in 0..(pwt.length()-1)
types[pwt[i]]=[[],[19]]
end
for i in 0..(str.length()-1)
types[str[i]]=[[19],[]]
end
typeslist=Array.new(17) {|i| i }
sampstr=Array.new(6) { [] }
sampwk=Array.new(6) { [] }
for i in 0..types.length()-1
typeslist.shuffle()
for j in 0..5
sampstr.push typeslist[j]
end
for j in 6..12
sampwk. push typeslist[j]
end
types[0][i]=sampstr.push types[0][i]
types[1][i]=sampwk.push types[1][i]
types[2][i]=typeslist[13]
end
p types`