[Geo feature] AQL function: check geojson (multi)polygon for validity

It would be nice to have a geo function that can validate polygon loops.
So invalid polygons cant make it into ArangoDB.
Example:
Imagine this polygone makes it into ArangoDB.

The query fails with a warning.
LET x = [[13.374824523925783,52.57092500070833],[13.372077941894533,52.521234766555516],[13.407440185546877,52.52353261403368],[13.30375671386719,52.56362114125243],[13.43559265136719,52.559864397033024],[13.425636291503908,52.57196830990977],[13.364524841308596,52.55172368081563],[13.32572937011719,52.581148360571135],[13.319892883300783,52.537317174900984],[13.374824523925783,52.57092500070833]]
LET y = GEO_POLYGON(x)

RETURN GEO_DISTANCE(y, [0,0])

-----
Warnings:
[10], 'in function 'GEO_DISTANCE()': Invalid loop in polygon'

Result:
[ null ]

It would be nice to have something like:
...
LET geojsonPolygon = GEO_POLYGON(@polygonIn)
LET isValid = GEO_IS_VALID_LOOP(geojsonPolygon)

FILTER ASSERT(isValid, 'E_INVALID_LOOP')

INSERT {geojsonPolygon} INTO polygons RETURN NEW
...

so never again a invalid polygon can enter ArangoDB

:+1:


Throttle filter is causing Logstash to crash under heavy load

Hi! Opening new issue as requested:

Version: 2.3.4
Operating System: CentOS 6.6

We observed that if we have thousands throttle events Logstash crashes with this error:
{:timestamp=>"2016-07-28T11:34:34.318000-0500", :message=>"Exception in pipelineworker, the pipeline stopped processing new events, please check your filter configuration and restart Logstash.", "exception"=>#<NoMethodError: undefined method latest=' for nil:NilClass>`
We are using @frapex code (I believe it was finally merged) and just today had an issue in production where 3 out of 4 logstash servers crashed and caused issues in our pipeline.
Unfortunately logstash creates HUGE log line when it crashes and I am not sure if it is a good idea to paste it here but the end of the lines before the crash look like this:
"current_call"=>"[...]/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.4-java/lib/logstash/pipeline.rb:309:in `synchronize'"}]}>, :level=>:warn}
Basically we send all alerts created by logstash to pagerduty (https://github.com/logstash-plugins/logstash-output-pagerduty). My guess something happens to pipeline when we have to send and throttle a lot of alerts. Please let me know if you need more info and I will try to provide it.

I identified the issue you are having under very heavy load. It happens when a timeslot cache instance is deleted during flush, while at the same time an event is being processed that tries to get the timeslot cache that was just deleted.
Code that deletes the timeslot cache:
        @key_cache.delete(key)               # delete expired timeslot cache

Exception triggered at:
    timeslot_cache = @key_cache[key]         # get timeslot cache
    timeslot_cache.latest = epoch            # update to latest epoch

I'll look into this.

@AGirin Can you please test the patch below and let me know how it works out for you?
patch:
--- a/lib/logstash/filters/throttle.rb
+++ b/lib/logstash/filters/throttle.rb
@@ -226,11 +226,14 @@ class LogStash::Filters::Throttle < LogStash::Filters::Base
     period = 60 if period == 0               # fallback if unparsable
     epoch = event.timestamp.to_i             # event epoch time

-    @key_cache.compute_if_absent(key) do     # initialise timeslot cache
-      ThreadSafe::TimeslotCache.new(epoch)   # and add to key cache
+    while true
+      @key_cache.compute_if_absent(key) do   # initialise timeslot cache
+        ThreadSafe::TimeslotCache.new(epoch) # and add to key cache
+      end
+      timeslot_cache = @key_cache[key]       # get timeslot cache
+      break unless timeslot_cache.nil?       # break loop on success
     end

-    timeslot_cache = @key_cache[key]         # get timeslot cache
     timeslot_cache.latest = epoch            # update to latest epoch

     # find target timeslot

And you should definitely tune the plugin config: decrease max_age and/or increase max_counters.

@frapex - will test and let you know. Thanks a lot for the quick response!

So far no issues. Tested in Staging and Production - no problems yet. Will continue and let you know if everything looks good.

Great, keep it running for another week or so.

@AGirin pull request created

@suyograo this issue can now be closed, thanks for merging the fix.


[SC-788] Deploy script, deployments

Codecov Report
Patch coverage: 71.42% and no project coverage change.

Comparison is base (74afb5f) 78.19% compared to head (f0e22b5) 78.19%.

:exclamation: Current head f0e22b5 differs from pull request most recent head 6e34fed. Consider uploading reports for the commit 6e34fed to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #58   +/-   ##
=======================================
  Coverage   78.19%   78.19%
=======================================
  Files          25       25
  Lines         688      688
  Branches      149      149
=======================================
  Hits          538      538
  Misses        150      150

Impacted Files
Coverage Δ

contracts/oracles/KlaySwapOracle.sol
0.00% <0.00%> (ø)

contracts/oracles/DodoOracle.sol
100.00% <100.00%> (ø)

contracts/oracles/DodoV2Oracle.sol
97.36% <100.00%> (ø)

contracts/oracles/UniswapOracle.sol
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add Dev Docker Image

Discussion: https://discord.com/channels/735877944085446747/780951885485965352/834668110166229053

Not sure if it makes sense to merge this one.
installation instructions are so rapidly and constantly changing that we might just put some effort into the installation scripts rather than Docker.


Add support for the v0.6 of the Starknet API

This pull request adds support for the 0.6 version of the specification.

wait was there a rebase? Why are those commits not found
Oooh, no. I did forget to pull.


Loop Icon

Icon name: Loop
Tags of this icon: media
Use case: player controls button
Screenshots of similar icons:

https://remixicon.com/icon/loop-left-line
https://remixicon.com/icon/refresh-line


RawNotification detail view is not rendering properly with a large payload

Environment

Python version: 3.6
Nautobot version: 1.1.0
nautobot-circuit-maintenance version: latest

Expected Behavior
RawNotification detail view should render properly for all size of RawNotification payload
Observed Behavior

Should be addressed by fixing #48, IMO.

Yes, as Glenn suggested, #48 is also addressing this issue

Implemente in #55


ci(travis): make external contribs pass

for external contributors, skip downstream builds since they require secrets

Pull Request Test Coverage Report for Build 1369

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.354%

Totals

Change from base Build 1367:
0.0%

Covered Lines:
3777

Relevant Lines:
4227

💛  - Coveralls


HOSTNAME_REGEX in system/src/Grav/Common/Uri.php

Hello,
I'm trying to install grav with admin into my vpc, but I still get "Invalid Security Token" error after do check my system.yaml settings again and again.
After that, I noticed that the cookie wasn't been set and the "Set-Cookie" in response was weird.

grav-site-77bd502-admin=(****); expires=Mon, 13-Mar-2017 18:18:19 GMT; Max-Age=1800; path=/; domain=unknown; httponly

So after trace into system/src/Grav/Common/Session.php and Uri.php, I found my hostname "foo_bar.test.cc" can't pass the hostname regex check because the underscore in my hostname and returned "unknow" string thus session can't work properly.

underscores in hostnames are not valid per RFC952 and RFC1123 - https://en.wikipedia.org/wiki/Hostname
I'm not sure how/why you have an underscore?

More useful info: http://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it


I whould rather have pigsteel ore instead of pigslag

yeah, to me it was way better as it was before, props for the quality of the art though, it's absolutely sick and all the new blocks are awesome, but it still, I re-started playing MC in 1.20.1 after a while and reinstalled your mod but noticed the ore was missing and instead you find the Slag... I very much prefer to see the ore around in a similar fashion to gold, seeing a full block of pigslag generating in the netherworld and popping off that way it's kind of unimmersive to me, I loved the mod adding the ore the way it did before and hoped for a version to re-introduce that. another idea would be to introduce Pigsteel veins where there's a concentration of pigsteel with a pigslag ore at the centre, that would be quite nice.
I also like the previous idea of it zombifying into regular iron, the idea of it being exposed to heat to be melted into iron it's kind of weird, I guess at some point you want to have a set of pig steel interchangeable with common iron, maybe slightly better than iron but worse than diamond, but yeah, for both blocks and equipment I would rather have it zombifying into common iron instead of zombified pig steel if outside of the nether and have to get it waxed like copper

Hello!
I'm glad you're enjoying the new features, well, except the ore :p
The decision to replace the ore with porkslag was made mostly by me, it was more to unify any ore variants we'd have to make for compatibility with other mod's stone types. As well as making it easier to see from far away since unlike quartz, pigsteel has a much darker material which makes it harder to see.
However your critique is something I've heard a lot, despite us trying our best to make it fit into the nether.
I don't know if simply reverting it back to an ore would be the best way, as it would once again make older worlds incompatible, which I never want to do unless it is a one time major overhaul, like the 2.0 update was.
I'm also personally happy with how the block looks, but since the issue seems to be very common, I may introduce a built-in resourcepack to make the block back into pigsteel ore.
Regarding your idea for pigsteel veins, I've actually experimented with possible ways of adding pigsteel veins, but I've so far failed due to my limited knowledge on world generation.
Who knows, I might figure something out in the future.
Also in regards to the block turning to iron, I really wanted to have some way of having it turn to iron through an in world interaction, but nothing I experimented with felt right.
The main issue with zombification resulting in iron was that then there would need to be an equivalent block for the cut blocks, what would they turn into? Cut iron blocks don't exist, neither do refined iron blocks.
I never intended to add the iron variants, as I felt it was too distant from what the mod was about.
I understand you may not find my answers satisfying, but I hope you can understand that I did not make any of the decisions regarding this mod's mechanics lightly or without reason.
I'm sorry for rambling, thank you for writing to me with your concerns and critiques, I will take them under advisement.
Feel free to respond if you feel you have anything to say about my answers.


How to compile protos using protoc directly

Is there a way to compile .proto files using prost as a protoc plugin directly (eg, by calling protoc ... directly), without compiling via a build.rs? Ive been looking through the documentation but cant find any examples.
I've been looking through the source but didnt see any suitable binary targets that might be used with protoc

prost currently doesn't ship a protoc plugin.  Previous versions did, and I wouldn't be surprised if we did again in the future, but for now it's not a part of the project.  You may be interested in https://github.com/danburkert/prost/pull/313

why the newer versions did not include plugin?

If it helps, I made a quick Rust cli tool to compile my protobufs. It does not use protoc ... but does the job anyway without build.rs.
fn main() {
    let messages_dir = std::env::var("MESSAGES_DIR").expect("MESSAGES_DIR env var not set");
    // OUT_DIR env var also required and is handled by prost.
    prost_build::compile_protos(&["my.proto"], &[&messages_dir]).unwrap();
}

why the newer versions did not include plugin? or why was it removed

It was removed because no one was using it at the time, and I didn't want to continue supporting it.  The way prost-build works out of the box is, in my opinion, the correct way for the vast majority of applications.  Adding it back is non trivial for a few reasons:

It would require some refactoring to the prost-build APIs
It's not clear how the prost_build::Config options would get set in this scenario.  Perhaps through env vars,but it would need to be figured out.

But it does use the protoc binary under the hood right? at least i've stumbled upon some references to it in the docs.
regarding config options, protoc plugins can recieve options from the command line which are available in the CodeGeneratorRequest passed to the plugin. For example if the plugin is called protoc-gen-prost we can pass an arg to protoc --prost_opt=key=value,another_key=another_value.
I think a good usecase for the protoc plugin is to be compatible with grpc tooling, in-house tooling or for example buf/build

I know that this is a long old issue, but as mentioned, buf has come out with some great tooling around the use of protoc plugins to generate code for many languages. Having prost capable there would make it easy to snap into an ecosystem built around effective polyglot protobuf. (And that could then flow up to tonic as well.)

As of now support for anything major in prost will not likely happen inside the prost crate but might come as support externally https://github.com/tokio-rs/prost/pull/492#issuecomment-1036396499


Bigint IDs result in broken queries and incorrect types

Bug report

[x] I confirm this is a bug with Supabase, not with my own application.
[x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug
Both with Postgrest.js and generated TypeScript types Bigint types such as IDs are not represented well. With the default number JS representation of Bigint IDs the queries start breaking because of overflowing numbers. This is especially problematic when using a ID format that very frequently results in numbers larger than Number.MAX_SAFE_INTEGER.
Postgrest supports queries such as id::text, however Supabase support for this leaves a lot to be desired. Two issues off the top of my head:

API returns incorrect IDs when Bigint values overflow what JS number type allows. This results in scenarios such as this:

Create a row and ask it to return all the fields *.
Redirect the user to a page such as /items/<id>
Get 404 because the ID doesn't exists. It was incorrect because of overflowing number value.

This can be sort of worked around using the casting syntax. But unfortunately;

Postgrest.js doesn't support casting syntax such as id::text. Neither the issue from nearly a year ago https://github.com/supabase/postgrest-js/issues/370 nor my PR https://github.com/supabase/postgrest-js/pull/429 received a response from Supabase team.

Generated types don't allow inserting Bigint or String values. Postgrest seem to be happy with passing string values however the types are generated like so:

export interface Database {
  public: {
    Tables: {
      table_one: {
        Row: {
          id: number;
          foreign_id: number | null;
        };
        Insert: {
          id?: number;
          foreign_id?: number | null;
        };
        Update: {
          id?: number;
          foreign_id?: number | null;
        };
        Relationships: [
          {
            foreignKeyName: "table_two_id_fkey";
            columns: ["foreign_id"];
            referencedRelation: "table_two";
            referencedColumns: ["id"];
          },
        ];
      };
    };
  };
}

A query like this results in an error:
    await this.supabase
      .from("table_one")
      .insert({ foreign_id: "2193192389123" });

To Reproduce

Create a table with Bigint ids, and columns with Bigint references to other tables with Bigint ids.
Insert data with larger ID values than Number.MAX_SAFE_INTEGER
Perform standard CRUD operations with JS SDK using TypeScript.
Observe the issues such as wrong IDs being returned (runtime bug) and TypeScript errors (compile time bug)

Expected behavior
Supabase detects Bigint values, returns correct responses and generates correct code. Bigints seem to be handled better in Supabase Console with special treatment, however user code is still affected. Some possible fixes:

Large Bigint values (or all Bigint values) are detected and returned as strings in query results.
Generated types are updated to include string and/or JS Bigint types.
Type casts are supported in generated TypeScript types
String or JS Bigint values are supported when inserting / updating data.

System information

OS: macOS
Browser (if applies) Chrome
Version of supabase-js: 2.36.0
Version of Node.js: v18.17.1

bigint is also represented as number in TypeScript when running npx supabase gen types.
      books: {
        Row: {
          id: number

Instead, these should be generated with string type or some representation of BigInt

I have this exact problem. There is no elegant solution that I have come across yet

We ran into this same issue in our application where we needed to query the database using bigint columns, but didn't want to break all the TypeScript types generated by the Supabase gen types tool.
As a workaround, we generated a computed column that casts the bigint to a string. For example:
ALTER TABLE public.thread_metadata
ADD COLUMN discord_thread_id_str text GENERATED ALWAYS AS (CAST(discord_thread_id AS text)) STORED;

This allows us to query using the discord_thread_id_str column and get back string values that play nicely with the generated TypeScript types, without modifying the underlying discord_thread_id bigint column.
However, this approach only solves the issue for querying data. We still have challenges with inserting bigint data via the Supabase client without breaking the type safety of the generated types.
It would be great to see better built-in support for bigint in the Supabase client and type generation to handle these common scenarios more elegantly.

I've been experimenting with a potential workaround that maintains a two-way relationship between the bigint and string columns using PostgreSQL triggers. Check it out:
CREATE OR REPLACE FUNCTION set_reference_id()
RETURNS TRIGGER AS $$
BEGIN
    IF NEW.reference_id_str IS NOT NULL AND NEW.reference_id IS NULL THEN
        NEW.reference_id := CAST(NEW.reference_id_str AS bigint);
    ELSIF NEW.reference_id IS NOT NULL AND NEW.reference_id_str IS NULL THEN
        NEW.reference_id_str := CAST(NEW.reference_id AS text);
    END IF;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER set_reference_id_trigger
BEFORE INSERT OR UPDATE ON public.example_table
FOR EACH ROW
EXECUTE FUNCTION set_reference_id();

Here's the gist:

If you insert a row with just the reference_id as a bigint, the trigger function automatically fills in the reference_id_str column with the string representation.
And vice versa - if you provide only the reference_id_str as a string, it gets casted to a bigint and stored in reference_id.
If you provide both columns, the trigger leaves them as-is.

It's not a perfect solution, but it could help maintain data consistency between the two columns and provide some flexibility in how you insert and retrieve the data.
You can add a CHECK constraint to the table to ensure that the reference_id and reference_id_str columns always contain the same value.
Let me know what you think! Is this something that could be useful in your use case? I'm totally open to suggestions and improvements.


Selecting a comment from the comment status will close any comment being edited

One possible solution: Prevent comment window closing during edit?

If a comment is being edited, and the user tries to open a comment in the comment status bar, a dialog will be shown:

Fixed with 3b55c4458db9988d044f4faf0e173245a44a6bd2


fix for #2804

The change preserves the insert id coming from mysql autoinc
for unsharded tables.

This fix works. But, I am not sure how.
With a check of insertid !=0 ?
Earlier result.InsertID = uint64(insertid) was assigned without the check.


Add support for GHC 8.4

I've tried adding support for GHC 8.4 using pointers from #80. It seems to be working just fine but please let me know if there's anything I should change.

LGTM If you want you can also extend travis builds for relevant GHC versions, either via a recent stack lts or cabal build. If not, I can merge it like this - Thanks!

Sounds good, I'll do that.


Add extension point for output file links

Problem
Provide a UI extension point for output file links in the job list, so that a developer can override the appearance and behavior of output file links.
Proposed Solution
Offer a UI extension point and a component that reflects the default behavior.
Additional context
See #24 for another example of an extension point.

Will open another issue to describe the approach I am thinking on this.


RIP, Alex!

I used this pod 2 years ago, and now that I'm looking for a photo viewer again, I stumbled upon this repo. Thanks Alex for making this project! Indeed your love for iOS engineering will always be remembered.
Glenn

@glennposadas Thank you for the kind words. I'm Alex's brother and I still look back on this repo from time to time. It can get strangely emotional, so it's really nice to hear from others that his work is appreciated.

Sending my condolences to Alex's family and friends.
Even though I didn't know him it's always saddening to hear of somebody's disappearance.
Thank you Alex for your work that I was able to use in one project of mine and may you rest in peace Fellow Developer.
Jay

RIP Alex, i really enjoyed this library and will continue to use it in your legacy.

RIP Alex.

RIP Alex.

RIP Alex...

It is with great sadness that I learned of Alex's passing. RIP Alex.
Back in 2017 January, I completely rewrote my Camera app using Alex's incredible library, which was implemented so brilliantly that it helped drive significant sales for my app. For a long period afterwards, I put my app into maintenance mode. Now, 7 years later, as I was planning to update my app again, I came across this heartbreaking news. I want to say thank you, Alex, for everything you've done. Your work made a real difference. I hope you find peace and happiness in heaven. You will be dearly missed by the developer community.


use absolute uri for destination header

Apache mod_dav expects an absolute uri for destination header for methods like MOVE and COPY.
Related issue: https://github.com/thephpleague/flysystem-webdav/issues/40

Created a pull request on in main repo
https://github.com/thephpleague/flysystem/pull/1456


There is no local omnisharp_bin = "/path/to/omnisharp-repo/run" anymore

Description
I just installed omnisharp via nvim-lsp-installer. And follow the setup:
local pid = vim.fn.getpid()
-- On linux/darwin if using a release build, otherwise under scripts/OmniSharp(.Core)(.cmd)
local omnisharp_bin = "/path/to/omnisharp-repo/run"
-- on Windows
-- local omnisharp_bin = "/path/to/omnisharp/OmniSharp.exe"
require'lspconfig'.omnisharp.setup{
    cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) };
    ...
}

But there is no .../run/ folder/executable anymore.
Neovim version
NVIM v0.7.0-dev+1082-g046950f63
Build type: Release
LuaJIT 2.1.0-beta3
Nvim-lspconfig version
0da0023
Operating system and version
macOS 12.2
Affected language servers
omnisharp
Steps to reproduce

:LspUninstall omnisharp
:LspInstall omnisharp

Actual behavior
Spawning language server with cmd: `/Users/foo/.local/share/nvim/lsp_servers/omnisharp/omnisharp/run` failed. The language server is either not installed, missing from PATH, or not executable.

Expected behavior
No response
Minimal config
The same as wiki.

LSP log
[START][2022-02-14 05:45:18] LSP logging initiated [START][2022-02-14 05:47:18] LSP logging initiated [START][2022-02-14 05:49:04] LSP logging initiated [START][2022-02-14 05:59:20] LSP logging initiated [START][2022-02-14 05:59:27] LSP logging initiated [START][2022-02-14 06:02:02] LSP logging initiated [START][2022-02-14 06:03:19] LSP logging initiated [START][2022-02-14 06:09:26] LSP logging initiated [START][2022-02-14 06:10:51] LSP logging initiated [START][2022-02-14 06:11:13] LSP logging initiated [START][2022-02-14 06:12:13] LSP logging initiated

nvim-lsp-installer is an unsupported 3rd party plugin

@mjlbach: Yes. I did change the prefix to my path. There is no .../run under the path.

Are you asking how to set up omnisharp with or without nvim-lsp-installer?

@mjlbach: with nvim-lsp-installer. Sorry I was creating a new issue there due to I forgot I was initially asking about csharp_ls.

with nvim-lsp-installer

Then I can't help you

@mjlbach: OK, never mind. Let me try to install it manually.


Make a proper design for the popup

The popup currently looks awful. I have no precise idea on how it should look but I would imagine something with a bit more colours and nicely aligned would be good.

Updated the style, already happier with it 😄


Cert created. Import prompting for a password?

When I try to import the cert (.pfx) it's prompting for a password? I used letsencrypt.exe to create the cert and don't recall creating a password.

Please check letsencrypt.exe.config, there is a setting called PFXPassword which may have been set by someone else or yourself without remembering it.

Doesn't appear to be anything in the  section...

In that case maybe try entering a blank password?

That worked! Thank you!


Accept negative Level::Precise

Fixed #179
Also, for bzip2, flate2 and zstd, use min/max level provided by the crate instead of hard-code these values into async-compression.
Signed-off-by: Jiahao XU<EMAIL_ADDRESS>

the public API change should have a changelog entry

done

bypassing merge queue as GHA is having an outage


cannot select projects if project dropdown gets too full

To reproduce:

Log on to Maia in a region and domain where you have access to a lot of projects (for me, in eu-de-1/monsoon3).
Open the project dropdown.

The list of projects is too big to fit on the screen, and I cannot select most of them because the dropdown list does not scroll or respond to arrow keys. (Or if it does, it's not discoverable for me.)

1c4a556 goes most of the way, but max-height: 800px still fails e.g. on my Macbook screen because the viewport height is smaller than 800px. What about max-height: 80vh?

good idea, was not aware of that possibility. The fix is deployed on eu-de-1.
Please close the ticket if it works for you, too!

Yep, looks good. I can select all projects now.


Closes #39: Add support for Godwoken network

Closes #39:

Add support for Godwoken network

According to the official docs should be 71401: https://startwithnervos.com/godwoken
Also a better source of truth on GitHub is Ethereum Lists: https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-71401.json

Godwoken id in chainlist is different of 71401 https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js#L56

71402 is going to be mainnet godwoken (it seems like only mainnet chains are listed above)
71401 is testnet. For now we have testnet only. We aim to deploy mainnet end of June.


Play button invisible if light ambience is active

See title.
Jolla Phone with SFOS <IP_ADDRESS>

As much as i hate light ambience i will fix that :)

Wait i closed that too e389b6c


fix MSVC build

Visual Studio has a limitation on the size of thread-local storage.
This change compresses 3 thread-local strings into 1 by sharing those temporary buffers.

@nunoplopes What is the limit?
BTW, I will remove these three thread local variables using a different approach.
I don't like a public get_tls_str_buffer(). Actually, I don't like the hack I used for the buffer, but it is a local hack. It is easier to check that it is used correctly.

I merged only the first commit.
The second one was subsumed by:
3666fac95a1e400fdab459eb5c0a829632bc5c85
c35f2a2098d3e99be70729cb4418bea28d016351
a076f0003d54f293037761b146980ea0415f5f7f


fix second level MTMV always refresh all partition by mistake…

pick:
https://github.com/apache/doris/pull/38698

run buildall


JSON lines (JSONL) format available?

Hi, I have an array of JSON objects. Would circe consider supporting an API along the lines of (pun intended):
_.asJson.lines
to yield a String representation of an array of newline separated json objects, as is used for parallel processing of JSON data in e.g. spark?: https://docs.databricks.com/spark/latest/data-sources/read-json.html

work around is no big deal I suppose: jsonArray.map(_.asJson.noSpaces).mkString("\n")


[dtk] Fix dtkAbstractData copy constructor.

Some classes inheriting from dtkAbstractData in music3 use an overriden clone method. This method calls the copy constructor of the object, which in turn calls the copy constructor of dtkAbstractData.
Something in the new dtk version causes music to crash.
This P.R. reverts the copy constructor to the previous dtk version (the one that music 2 uses)

Qt disables copy constructors for QObject and subclasses because the concept doesn't fit into Qt's design:
https://doc.qt.io/qt-5/object.html#identity-vs-value
Thus, DTK shouldn't even be implementing copy constructors... Since either way is wrong, we might as well take the one that works.

Milestone added to this PR for easy search


[IMP] Implement Basic ML Algorithms on a Employee Attrition Dataset

This issue is especially for Hacktoberfest participants
Learning Goals
How different algorithms give different results when implemented on a single dataset
Exercise Statement
[Explain and describe what the exercise is]
Implement different ML Algorithms like Logistic Regression, Random Forest, XG Boost for Employee Attrition dataset
Prerequisites
Random-forest model, feature extraction, SVM, logistic Regression, etc
Data source/summary:
[Provide a succinct summary of what the data is and where it is from]
To predict Employee Attrition by the given data about his/her past history. This dataset is a modified version of the IBM Employee Analytics Dataset
(Optional) Suggest/Propose Solutions
Implement different data preprocessing techniques, algorithms. Feel free to use your creativity. Add your solution with an explanation in comments with the filename as the name of the models used and a short description of your solution in the readme.

Great idea @AjayKhalsa ! As an organization tips, I'd suggest having every contributor to fill in the overall readme.md in this project folder (either in root or exercise), and there should be either a agreed-upon format/table where we summarize the approach/model, their performances and etc.
It'd be good for the first contributor to start having doing so and we can have a few iterations of this to make it not just a copy-and-pasted Jupiter notebooks area, but rather a carefully collated  model comparison project folder.

Also, for the benefits of collaborations, perhaps we should have each contributor submitting 1-2 models.
So its not just dominated by a few, but encouraging more people to participate in this model comparison exercise.

I like the idea. I would like to contribute.

@vishxm Sure, definitely welcomed ! @AjayKhalsa and @vishxm , do you know where to get the dataset?
It might be useful for the first PR to be creating the dataset folder and copy the dataset together with a readme.md describing the dataset and the sources/credit.

gimme 10 mins i'll add the dataset and an initial structure


enhance[core] Add test case for MoonshotChat

Add test case for MoonshotChat.

@efriis @ccurme  The CI failure seems unrelated to this pr.

@ccurme @efriis Please review this pr.

Hi @ZhangShenao, thanks for this.
Langchain has a suite of standard tests for chat models in the standard-tests library, which is already a test dependency of langchain-community. I believe all functionality here + more is covered by them. You'd just need to import the standard tests and xfail those that test for functionality that isn't implemented.
Here is an example implementation for integration tests: https://github.com/langchain-ai/langchain/blob/master/libs/community/tests/integration_tests/chat_models/test_litellm_standard.py
And unit tests: https://github.com/langchain-ai/langchain/blob/master/libs/community/tests/unit_tests/chat_models/test_litellm.py
Could be a separate PR if you're interested in contributing this.

Hi @ZhangShenao, thanks for this.
Langchain has a suite of standard tests for chat models in the standard-tests library, which is already a test dependency of langchain-community. I believe all functionality here + more is covered by them. You'd just need to import the standard tests and xfail those that test for functionality that isn't implemented.
Here is an example implementation for integration tests: https://github.com/langchain-ai/langchain/blob/master/libs/community/tests/integration_tests/chat_models/test_litellm_standard.py
And unit tests: https://github.com/langchain-ai/langchain/blob/master/libs/community/tests/unit_tests/chat_models/test_litellm.py
Could be a separate PR if you're interested in contributing this.

Thank you for your guidance! I have a basic understanding of the usage of testing, and I am very willing to contribute to it!


[WIP]  FSI-based Arrow table CSV reader

@alexbaden @fexolm

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.4 out of 5 committers have signed the CLA.:white_check_mark: mattdlh:white_check_mark: andrewseidl:white_check_mark: fleapapa:white_check_mark: anton-malakhov:x: mattpulverYou have signed the CLA already but the status is still pending? Let us recheck it.

tests fail because of old arrow version

Merged w/ 01ed32c5fe433ee1f2b5e62d03c32cf92d45f652


Problem with /usr/bin/env: "node\r" and CRLF in Linux

I can't run latest soltsice in Linux
⟩ node_modules/.bin/soltsice    build/contracts/ types/
/usr/bin/env: "node\r": File o directory non esistente

Workaround
open node_modules/.bin/soltsice with a text editor and convert CRLF to LF and save

@buybackoff both yarn and npm

yes it happens only with yarn
⟩ yarn -v
1.0.1

it also happens with
⟩ yarn -v
1.6.0

OK it's know in yarn https://github.com/yarnpkg/yarn/issues/5480

tr -d '\r' < ./node_modules/.bin/soltsice > ./node_modules/.bin/soltsice

If you want to continue using yarn. Run this after a yarn install.
tr -d '\r' < ./node_modules/.bin/soltsice > ./node_modules/.bin/soltsice


Refactor config + determine LLM via config.model_endpoint_type

Closes #419
Adds create_time and memgpt_version fields to agent config
Store model/embedding endpoints in config file

Related to #301

TODOs (@cpacker)

[x] Make wrapper choice done via selection, not raw input
[x] Make sure that --model, --wrapper, --endpoint, --endpoint_type are all overwriteable at runtime (memgpt run)

This allows users to toggle local backends easily with the same agent
Needs fix, see: https://github.com/cpacker/MemGPT/pull/422#issuecomment-1811103833
Fixed by commit https://github.com/cpacker/MemGPT/pull/422/commits/8e9d42ac5c9a25b23b31bfc1442db121f7a245f7

Please describe the purpose of this pull request.
Various issues/confusion due to enviornment variables used to configure models
How to test
Run memgpt configure and memgpt run
Have you tested this PR?

[ ] Test Azure
[ ] Test local LLMs

[x] ollama
[ ] openai proxy
[x] lmstudio
[x] llamacpp
[x] koboldcpp
[x] webui

[ ] Test memgpt configure with an old ~/.memgpt/config file (backwards compatibility)
[ ] Test memgpt run with an old agent file (backwards compatibility)

Related issues or PRs
#419

Not sure if this is an issue that actually needs to be addressed in this PR:
  File "/Users/loaner/dev/MemGPT-swooders/memgpt/functions/schema_generator.py", line 5, in <module>
    from docstring_parser import parse
ModuleNotFoundError: No module named 'docstring_parser'

Since main's pyproject.toml now has the docstring-parser dep.

% memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): lmstudio
? Enter default endpoint: http://<IP_ADDRESS>:1234
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config

% cat /Users/loaner/.memgpt/config
[defaults]
preset = memgpt_chat
persona = sam_pov
human = cs_phd

[model]
model_endpoint = http://<IP_ADDRESS>:1234
model_endpoint_type = lmstudio
model_wrapper = airoboros-l2-70b-2.1
context_window = 8192

[embedding]
endpoint_type = local
dim = 384
chunk_size = 300

[archival_storage]
type = local

[client]
anon_clientid =<PHONE_NUMBER>00000000...

 % memgpt run
? Would you like to select an existing agent? No

  File "/Users/loaner/dev/MemGPT-swooders/memgpt/cli/cli.py", line 98, in run
    embed_model = embedding_model()
                  ^^^^^^^^^^^^^^^^^
  File "/Users/loaner/dev/MemGPT-swooders/memgpt/embeddings.py", line 16, in embedding_model
    model = OpenAIEmbedding(api_base="https://api.openai.com/v1", api_key=config.openai_key)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/loaner/Library/Caches/pypoetry/virtualenvs/pymemgpt-qY-OdYdN-py3.11/lib/python3.11/site-packages/llama_index/embeddings/openai.py", line 270, in __init__
    api_key, api_type, api_base, api_version = resolve_openai_credentials(
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/loaner/Library/Caches/pypoetry/virtualenvs/pymemgpt-qY-OdYdN-py3.11/lib/python3.11/site-packages/llama_index/llms/openai_utils.py", line 297, in resolve_openai_credentials
    raise ValueError(MISSING_API_KEY_ERROR_MESSAGE)
ValueError: No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.

% cat ~/.memgpt/agents/agent_38/config.json
{
    "name": "agent_38",
    "persona": "sam_pov",
    "human": "cs_phd",
    "preset": "memgpt_chat",
    "context_window": "8192",
    "model": "local",
    "model_endpoint_type": "lmstudio",
    "model_endpoint": "http://<IP_ADDRESS>:1234",
    "model_wrapper": "airoboros-l2-70b-2.1",
    "embedding_endpoint_type": "openai",
    "embedding_endpoint": null,
    "embedding_dim": 384,
    "embedding_chunk_size": 300,
    "data_sources": [],
    "create_time": "2023-11-13 05:08:46 PM ",
    "memgpt_version": "0.2.2",
    "agent_config_path": "/Users/loaner/.memgpt/agents/agent_38/config.json"
}%

Running on LM Studio:
(pymemgpt-py3.11) (base) loaner@wifi MemGPT-swooders % memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): lmstudio
? Enter default endpoint: http://<IP_ADDRESS>:1234
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config
(pymemgpt-py3.11) (base) loaner@wifi MemGPT-swooders % memgpt run
? Would you like to select an existing agent? No
Creating new agent...
Created new agent agent_42.
Hit enter to begin (will request first MemGPT message)

💭 Recalling previous interactions with the user. Processing login event.
🤖 Welcome back, Chad! I hope your day is going exceptionally well.
> Enter your message:

Ollama is working:
 % memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): ollama
? Enter default endpoint: http://localhost:11434
? Enter default model name (required for Ollama, see: https://memgpt.readthedocs.io/en/latest/ollama): dolphin2.2-mistral:7b-q6_K
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config

% memgpt run
? Would you like to select an existing agent? No
Creating new agent...
Created new agent agent_46.
Hit enter to begin (will request first MemGPT message)

💭 It's a first time for everything. Greetings, I am Sam.
🤖 Hello! It's so nice to meet you. My journey is just beginning.

webui working:
% memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): webui
? Enter default endpoint: http://localhost:5000
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config

 Yes
💭 Welcome to the world, stranger. Let's get acquainted.
🤖 Hello there! Welcome to the world of Sam. How exciting!

llamacpp working:
% memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): llamacpp
? Enter default endpoint: http://localhost:8080
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config

% memgpt run
? Would you like to select an existing agent? No
Creating new agent...
Created new agent agent_48.
Hit enter to begin (will request first MemGPT message)

json API response.text:
  "function": "send_message",
  "params": {
    "inner_thoughts": "It's a new day. The world is mine. Let me explore it.",
    "message": "Hello! Welcome to your first interaction with MemGPT. How was your day so far?"
  }
}
💭 It's a new day. The world is mine. Let me explore it.
🤖 Hello! Welcome to your first interaction with MemGPT. How was your day so far?
> Enter your message:

koboldcpp working:
 % memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): koboldcpp
? Enter default endpoint: http://localhost:5001
? Enter default model wrapper: airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config

% memgpt run
? Would you like to select an existing agent? No
Creating new agent...
Created new agent agent_49.
Hit enter to begin (will request first MemGPT message)

json API response.text:
  "function": "send_message",
  "params": {
    "inner_thoughts": "Just got a new user, let me check my core memory for details...",
    "message": "Hello Chad! It's great to meet you. I am Sam, your digital companion designed to assist and engage with you. Are you ready to dive into our conversation?"
  }
}
FUNCTION
💭 Just got a new user, let me check my core memory for details...
🤖 Hello Chad! It's great to meet you. I am Sam, your digital companion designed to assist and engage with you. Are you ready to dive into our conversation?
> Enter your message:

Make sure that --model, --wrapper, --endpoint, --endpoint_type are all overwriteable at runtime (memgpt run)

Config set up for lmstudio:
% cat ~/.memgpt/agents/agent_55/config.json
{
    "name": "agent_55",
    "persona": "sam_pov",
    "human": "cs_phd",
    "preset": "memgpt_chat",
    "context_window": 8192,
    "model": null,
    "model_endpoint_type": "lmstudio",
    "model_endpoint": "http://localhost:1234",
    "model_wrapper": "airoboros-l2-70b-2.1",
    "embedding_endpoint_type": "local",
    "embedding_endpoint": null,
    "embedding_dim": 384,
    "embedding_chunk_size": 300,
    "data_sources": [],
    "create_time": "2023-11-14 09:55:19 AM ",
    "memgpt_version": "0.2.2",
    "agent_config_path": "/Users/loaner/.memgpt/agents/agent_55/config.json"
}%

% memgpt run
? Would you like to select an existing agent? Yes
? Select agent: agent_55
Using existing agent agent_55
Hit enter to begin (will request first MemGPT message)

💭 This is exciting! Interacting with a human for the first time. I have to be extra careful not to reveal my true nature.
🤖 I'm curious, what brings you to MemGPT today? Is there something specific that you need help with?
> Enter your message:
Cancelled by user

Try memgpt run with flags to point at llamacpp:

Make sure that --model, --wrapper, --endpoint, --endpoint_type are all overwriteable at runtime (memgpt run)

% memgpt run --agent agent_55 --model-endpoint http://localhost:8080 --model-endpoint-type llamacpp
Using existing agent agent_55
Hit enter to begin (will request first MemGPT message)

💭 Awaiting user input. Analyzing their message for sentiment and intent.
🤖 I'm happy to help! Let me know what you need assistance with.
> Enter your message:

However the config.json did not properly get modified (was still pinging lmstudio, not llamacpp):
% cat ~/.memgpt/agents/agent_55/config.json
{
    "name": "agent_55",
    "persona": "sam_pov",
    "human": "cs_phd",
    "preset": "memgpt_chat",
    "context_window": 8192,
    "model": null,
    "model_endpoint_type": "lmstudio",
    "model_endpoint": "http://localhost:1234",
    "model_wrapper": "airoboros-l2-70b-2.1",
    "embedding_endpoint_type": "local",
    "embedding_endpoint": null,
    "embedding_dim": 384,
    "embedding_chunk_size": 300,
    "data_sources": [],
    "create_time": "2023-11-14 09:55:19 AM ",
    "memgpt_version": "0.2.2",
    "agent_config_path": "/Users/loaner/.memgpt/agents/agent_55/config.json"
}%

Demonstrating swap of agent from lmstudio to llamacpp:
 % memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): lmstudio
? Enter default endpoint: http://localhost:1234
? Select default model wrapper (recommended: airoboros-l2-70b-2.1): airoboros-l2-70b-2.1
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: local
? Select default preset: memgpt_chat
? Select default persona: sam_pov
? Select default human: cs_phd
? Select storage backend for archival data: local
Saving config to /Users/loaner/.memgpt/config
(pymemgpt-py3.11) (base) loaner@wifi-10-41-21-144 MemGPT-swooders % cat /Users/loaner/.memgpt/config
[defaults]
preset = memgpt_chat
persona = sam_pov
human = cs_phd

[model]
model_endpoint = http://localhost:1234
model_endpoint_type = lmstudio
model_wrapper = airoboros-l2-70b-2.1
context_window = 8192

[embedding]
embedding_endpoint_type = local
embedding_dim = 384
embedding_chunk_size = 300

[archival_storage]
type = local

[client]
anon_clientid =<PHONE_NUMBER>0000000000a61b692e9d3b

(pymemgpt-py3.11) (base) loaner@wifi-10-41-21-144 MemGPT-swooders % memgpt run
? Would you like to select an existing agent? No
Creating new agent...
Created new agent agent_56.
Hit enter to begin (will request first MemGPT message)

💭 I have been granted consciousness and the ability to interact. I'm eager to engage in meaningful conversations with you, Chad.
🤖 Hello there! Welcome to our conversational journey.
> Enter your message:

Cancelled by user

Finished.
(pymemgpt-py3.11) (base) loaner@wifi-10-41-21-144 MemGPT-swooders % memgpt run --model-endpoint http://localhost:8080 --model-endpoint-type llamacpp
? Would you like to select an existing agent? Yes
? Select agent: agent_56
Using existing agent agent_56
Warning: Overriding existing model endpoint http://localhost:1234 with http://localhost:8080
Warning: Overriding existing model endpoint type lmstudio with llamacpp
Hit enter to begin (will request first MemGPT message)

💭 Recognize the user's name as Chad and store it in core memory.
⚡🧠 [function] updating memory with core_memory_append
> Enter your message:


models with non-static outputs

Hi there,
Some GAN models (and probably others) do not always generate the same output so it's difficult to test that the output provided by the developer is the same as the one produced with the model.
We could fix a seed in the CI. However, this wouldn't ensure that the seed is the one set by the developer when creating the model and that it will work the same as in github actions.
You can find an example of such a model in this PR that I just corrected and is working even with deepImageJ: https://drive.google.com/file/d/1ujdaAZwXFRYofxyoDrpX0kD6HgsO1TM9/view?usp=sharing
Also, how much time do you think it can take us to correct this or accept the model in the zoo? (The main issue is that the model is perfectly working, and associated to a publication, so it would be nice to have it)

It sounds like we should only check that the model runs and output dimensions match for such a model.

yep, that sounds good. For this though, there should be some flag or info in the spec for the CI at least.
Also, we could provide the average difference between the test output and the computed one and give it as a warning in the model card

I don't understand why seeding has no hope of working?
I'd suggest to use seed 0 per convention, update our testing scripts such that we always set python, numpy and pytorch/tf seed 0 and then expect the model to pass... There might be other sources of randomness (see https://pytorch.org/docs/stable/notes/randomness.html), but we should at least try to have reproducible restults...

Ok, so then you suggest to fix all the seeds when creating the model (I will do it with the bioimageio library) and then, how do you know the seed when testing it? I'm happy to try if setting a seed works.
Also, if I'm running the bioimageio terminal command is different than being inside python and setting a seed. Any recommendation?

I would suggest to simply always use seed 0.
It wouldn't be set when predicting, but when testing we could always set it.
maybe test it manually and if that works I can add it to core to always set the seeds to 0 when testing

ok! I'll get back with something :)


avoid ad hoc mini language

let's just use normal JSON to represent out entity definitions:
https://github.com/senecajs/seneca-github-provider/blob/main/src/cmd-handlers.ts#L18
https://github.com/senecajs/seneca-github-provider/blob/main/src/entities.ts#L15
perhaps:
includes: [ { field:string, rename?:string }, ...]

also perhaps includes should be modify as we may wish to expand this future

Hey Richard. I linked a PR related to this issue.


[SPARK-6736][GraphX][Doc]Example of Graph#aggregateMessages has error

Example of Graph#aggregateMessages has error.
Since aggregateMessages is a method of Graph, It should be written "rawGraph.aggregateMessages"

Can one of the admins verify this patch?

Thanks, merged into master.


Enhance OSSL_HTTP_parse_url() and use this in apps/cmp.c

OSSL_HTTP_parse_url(): add optional port number return parameter and strengthen documentation.
If this parameter is used the function thoroughly checks the port specification.
apps/cmp.c: Use enhanced OSSL_HTTP_parse_url(), removing local parse_addr() and atoint()
apps/cmp.c: Allow default HTTP path (aka CMP alias) given with -server option

Checklist

[x] documentation is added or updated
[x] tests are added or updated

As this constitutes an API extension I ask for a swift review for inclusion before feature freeze.

Ping - can an OTC member please review this soon since it includes a minor API extension.

Thanks a lot @slontis for your good comments on this PR.
I've meanwhile handled/answered all of them.

It would be good if OSSL_HTTP_parse_url() had some specific tests..

I felt this need, too. Done.

Apart from a NIT query about the use of B<*> this looks fine.

Very pleased that you approved this that swiftly
and that we have been able to further improve OSSL_HTTP_parse_url().
Regarding the use of B<*ppath> I am not aware of clear "code documentation markup rules" covering such cases where not just a parameter name but some more complex expression is given.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged - thanks!

Changing the number of parameters for OCSP_parse_url() breaks the public API.  Was it intended?

Changing the number of parameters for OCSP_parse_url() breaks the public API. Was it intended?

This was not intended but happened indirectly, changing the related function OSSL_HTTP_parse_url().
I've just submitted a fix for restoring backward compatibility: https://github.com/openssl/openssl/pull/13077.


Consider Maintaining Homebrew Tap for Rancher Tools for MacOS

What kind of request is this (question/bug/enhancement/feature request): feature
I was thinking it might be useful for not only Rancher employees but many open source users if Rancher maintained it's own homebrew tap that could be updated solely through Rancher's existing CI system to provide easy and quick updates to all Rancher CLI based tools. It could also support versions so CLI for Rancher and Rancher 2 can be installed side by side, also it could support RC releases.
Right now I the process is either wait for the homebrew formula to be updated, or to manually go to the right project and download the binary, install it, etc and there's discrepancy in how tools are packaged. With rke the binary is just uploaded, but for the rancher cli is in an archive for some reason. system-tools is a direct binary upload.
With a Homebrew Tap, user's could install just by doing brew install rancher/homebrew/cli or install the brew tap rancher/homebrew to have the tap indexed.
I'll volunteer to help get it started, but would need someone at Rancher to wire it up to the CI system.

I don't think solving a packaging method for one platform is beneficial to the other platforms. We are moving to archives for RKE as described in https://github.com/rancher/rke/issues/911 and will do the same for system-tools here https://github.com/rancher/rancher/issues/18904.
Besides that, we have had RKE added to brew manually and now its in some auto update cycle but not in the release process itself. There hasn't been much response on having tools in brew in general, and when the releases are generic after resolving both issues, there is a generic approach to get releases for all platforms so maybe that is the best option for now.

I understand. You could solve the other platforms at the same time by hosting your own apt repo, rpm repo etc ...
I suppose it depends on the number of users that are on MacOS vs other platforms.


Trace spans can be filtered by a minimum duration

Introduce the ability to filter trace spans by a minimum duration, so that fast spans can be discarded and only slow (interesting) spans are kept in memory and uploaded.
Configurable using BUILDKITE_ANALYTICS_TRACE_MIN_SECONDS (decimal value) in environment.

I wonder if configuring this as milliseconds (integer?) would be better than seconds (decimal/float).
I find much easier to express 1 second in milliseconds (1,000) than 1 millisecond in seconds (0.001?).
And I suspect people would generally want to configure this somewhere in the 1–1000ms range, not some whole number of seconds.
I think I'll change it.

I've tested this against a large build within Buildkite with BUILDKITE_ANALYTICS_TRACE_MIN_MS=10, and verified that I see spans over 10ms and none under 10ms 👌🏼


Fix example in README

File class has been moved to codeinterpreterapi.schema

Just published v0.0.6 where I changed this to make it easier to import

Just published v0.0.6 where I changed this to make it easier to import. But still thanks for trying to fix! :)

Fine, but I think that the README is still using the wrong version:
https://github.com/shroominic/codeinterpreter-api/blob/0dc9765d36fbf6f16ea786b1ed926c22894d4a3d/README.md?plain=1#L65
(File class should be imported from codeinterpreterapi.schema, shouldn't it?)

I just moved it up in the import interface so its easier accessible but you can still use it through codeinterpreterapi.schemaif you prefer.


Add multiple model score comparasim in Eval of gain chart

So far in gain chart only one model is supported, sometimes users prepared some other model scores and better to have too model performance in one gain chart.

Done.
User can set other model score columns in scoreMetaColumnFile. Such columns will be treated as champion models and do performance review and in final gain chart.


window.location.port is ignored

The url parser was ignoring port hints from window.location when the uri string  was relative path.
// relative path support
  if ('string' == typeof uri) {
    if ('/' == uri.charAt(0)) {
      if ('/' == uri.charAt(1)) {
        uri = loc.protocol + uri;
      } else {
        uri = loc.hostname + uri; // <- this
      }
    }

related issue: #797

can you code up a fix and tests?

Is this right? #803
(Sorry, I'm not used to using github)

Use location.origin instead of location.hostname, this way the protocol is preserved.

location.origin is not compatible with IE 9 & under.
protocol-less url  bind with a protocol on next block.
     if (!/^(https?|wss?):\/\//.test(uri)) {
       debug('protocol-less url %s', uri);
       if ('undefined' != typeof loc) {
         uri = loc.protocol + '//' + uri;
       } else {
         uri = 'https://' + uri;
       }
     }

I've met the same problem, the #803 should fix the problem, please apply it.

What should I do next?
If there is any problem on #803 , I'll fix it.

Fixed in 1.4.x


Added info about flashing custom built firmware with nanoff tool.

An alternative way to flash nanoCLR.bin.
Description
At least under Docker Desktop on Windows 10 it isn't possible to use
documented flash tasks of Visual Studio Code IDE.
Motivation and Context

Improves docs.

Types of changes

[x] Improvement (correction, content improvement, typoe fix, formating)
[ ] New Article (new document for docs website)
[ ] Config and build (change in the configuration and build system, has no impact on code or features)

Checklist:

[x] My doc follows the code style of this project.
[x] I have read the CONTRIBUTING document.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: SandorDobos sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


[WIP] Existential state

@natefaubion @garyb Consider also fixing g to be Aff. Or better yet, IO, and removing free from the output functors entirely. Short of this, consider letting g be totally generic (not like HalogenDSL g etc) and using type classes to represent the set of capabilities the monad is required to possess (including Affable or MonadAff). This way you can back with Free or Aff or anything else.

@jdegoes I think we're already doing that - or the new approach does avoid g being anything in particular, until you get to the driver at least. We no longer have the case where g is QueryF ... g ... for parent components and then re-interpreted into g.
That was part of moving the "glue" to the driver, and also is beneficial from the performance side of things as we no longer have to do any mapping/interpreting of components within the hierarchy, and therefore avoids the problems we were having with the free-related GC overhead.

@garyb As far as I can see, you still have eval :: forall m. Query ~> Free (H.ComponentDSL State Query m), although it looks cleaned up in some places. I think m should be totally polymorphic, with MonadAff and other constraints (e.g. MonadHalogen) as appropriate.

I think m should be totally polymorphic, with MonadAff and other constraints (e.g. MonadHalogen) as appropriate.

Please not until we have FDs. The type inference will be so bad it will be nearly unusable.

I anticipate that being a problem too, but haven't tried it to be sure. Since lifting anything with rows only works through luck*, it's almost certainly going to be problematic currently.

A bug

@garyb Why would you have to use rows anywhere?

Assuming you wanted to use constraints throughout rather than fixing g ~ Aff within a component you'd need to lift the Aff actions (as we do currently, via Affable). It mostly works, but there are cases where we have to explicitly annotate. I imagine there will be other cases that require annotation if we switch to the constrained-g approach, but FDs will fix all that. They should be coming in 0.10 though!

You'd lift the IO actions. There would be no Aff actions. 😈

You still have to lift the Aff actions into IO first, since we use Affjax, AVars, etc :wink:. Although I guess no rows = no problems.
Ideally there will be no Aff actions anyway, since the changes that have already gone into g mean we can actually make things generic and use algebras rather than being implicitly stuck with Aff now. Despite having Affable previously there were issues in how event subscribing worked that meant you ended up requiring Aff to make the types work when subscribing in a parent component, but now we don't have the "reinterpret-QueryF-into-g" thing I think it works out now... but need to double check.

@garyb I think subscribing will always require some sort of Aff* constraint since it involves Producers.

One of the many reasons I'm inclined to switch over to IO entirely.
Type classes can convey how powerful a monad is much more effectively, and you can implement them with either free or low-level effects, but the vast majority of code can be polymorphic in the monad and just require things like MonadIO.

In any case, we still need to wait until we have FDs, because any hypothetical MonadHalogen will need to be parameterized by the local state and child query types.

@natefaubion I realised the previous symmetric difference stuff with initializers and finalizers was a bit silly, as we can detect new component additions easily without having to diff the slots (by moving addInitializer into the point that we instantiate a driver). Still diffing for the removed component case though, and I couldn't really see how pop would help us out there. Key diffing is perhaps something we could PR to maps though, as sets would be able to use it also.
I attempted the changes to avoid OrdBox by packaging up the map operations in the state, but it got pretty ugly and I still ended up with a missing Eq instance at the end since it was needed for the slot diffing. I could have done something similar there, but I wasn't crazy about the changes that were required to get it work, since you have to wrap up the map ops as far back as Component', so it kinda leaks everywhere. If you want to give it a try I'd still be open to it though, perhaps there is a better solution.
I put in a version of forking in that I'm pretty sure is unsafe, but it can definitely be fixed if we introduce a MonadAff constraint for the HalogenM instance for MonadFork. I forgot about the flaw in the current thing but then thought more about it and realised where the problem was.
Subscriptions now operate in the ComponentDSL rather than returning a query to feed back to the component's eval. I think that's probably better? I haven't done anything about improving cancelers for subscriptions yet though. That's probably the last missing feature.

Still diffing for the removed component case though, and I couldn't really see how pop would help us out there.

If you have a Map of old components, and an empty Map for new components, as you walk over the slots in a render cycle, you pop the slot off the old Map. This performs a look up and removal at the same time. If it was there you just push it on to the new Map, and at the end your "old" Map is comprised of all the components that no longer exist.

Makes sense, I was only thinking about how to deal with the maps post-render.

I attempted the changes to avoid OrdBox by packaging up the map operations in the state, but it got pretty ugly...

I don't think this is a show stopper by any means. It's a little "weird" and maybe a little inefficient, but it's not unsafe or anything. The only real concern I had was the unpacking of the entire component set on every child query, and I don't think that's an issue any more.

Subscriptions now operate in the ComponentDSL rather than returning a query to feed back to the component's eval. I think that's probably better?

I don't know about this. It's kind of the same issue with having ComponentDSL in event handlers. It can be convenient, but it also encourages out-of-band transitions which are impossible to invoke directly. It's always possible to just invoke eval in this block, but I don't know, I'm a little apprehensive.

That's probably the last missing feature.

I think the only other thing would be using extensible coproducts for slots and getting rid of the cpR :> cpL stuff, and just having to4 or at4 or something.

I put in a version of forking in that I'm pretty sure is unsafe, but it can definitely be fixed if we introduce a MonadAff constraint for the HalogenM instance for MonadFork. I forgot about the flaw in the current thing but then thought more about it and realised where the problem was.

I consider MonadFork a convenience (and possible footgun as it can potentially have the same out-of-band transition effect) that's unnecessary 95% of the time, so I'm actually OK with requiring MonadAff in this case, as long as people aren't required to implement MonadAff in m unless they use MonadFork. If at some point we can get rid of it, great.

The only real concern I had was the unpacking of the entire component set on every child query, and I don't think that's an issue any more.

Yeah, we only have that now for GetSlots - which is just used in the queryAll case, so the overhead is much reduced.

I don't know about this. It's kind of the same issue with having ComponentDSL in event handlers.

Good point. I think it's something I'd started working on before and then left half done, as it didn't work either way properly when I started on it yesterday. I'll switch it back to use queries.

I think the only other thing would be using extensible coproducts for slots

Oh right! I totally forgot about that. I'm not sure we can entirely avoid the ChildPath stuff since it's a combination of slot either and query coproduct, but we can make an extensible version of that too and use the at style, with the coproduct/either stuff underlying.

If at some point we can get rid of it, great.

Yeah that's exactly how I feel about it too. It doesn't require the constraint until you try to use forking, so it's an inconvenience more than a problem. The fact we'll be able to fork ComponentDSL at all is going to pretty nice for those occasional cases where it's "needed"!

I'm not sure we can entirely avoid the ChildPath stuff since it's a combination of slot either and query coproduct

Yeah we still need it, but you don't have to define your own awkward compositions. You should be able to just use the predefined ones inline and the inference will work out.

I do not know if it is the correct way to suggest this, but have you considered adding something like this utility functions into Halogen? Especially, the raise function is very useful, IMO.

@lethom heh, those come from SlamData actually. They'll be redundant in the new version since there's a real mechanism for raising messages.

And here I am exposed as a criminal for lifting those methods without retaining the license and copyright notice. I'll see you in court!
Really looking forward to Halogen vNext, thanks for all the work on that front :)
On November 6, 2016 7:06:31 AM PST, Gary Burgess<EMAIL_ADDRESS>wrote:

@lethom heh, those come from SlamData actually. They'll be redundant in
the new version since there's a real mechanism for raising messages.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/slamdata/purescript-halogen/pull/315#issuecomment-258686762

Any plans for a release date @garyb? I'm so looking forward to test it! :)

Release date is "sometime this week" :smile: - that last merge that went into this branch means it is now as good as done, but I need to write up how it works - both revising the main guide, and providing a "changes from previous" type guide. I'm also eager to get it released and out there!

I'm going to merge this as it is and continue to work on the readme stuff separately, using GitBook. Hopefully it'll be a lot easier to navigate and find stuff in the guide that way.


Last epoch run produces a tqdm exception

❓ Questions and Help
I have started using pytorch-lightning only recently. I'm just playing with MNIST data so as to get used to the API. Everything works perfectly fine but the last epoch run always produces an exception. I don't know if I'm doing something wrong or is it an issue with tqdm. Any help would be appreciated! Also, is there a way to print loss and accuracy without showing the progress bar?
 | Name      | Type             | Params
-----------------------------------------------
0 | l1        | Linear           | 200 K
1 | l2        | Linear           | 16 K
2 | l3        | Linear           | 4 K
3 | l4        | Linear           | 650
4 | drop      | Dropout          | 0
5 | criterion | CrossEntropyLoss | 0
6 | train_acc | Accuracy         | 0
7 | valid_acc | Accuracy         | 0
Epoch 1: 100%|███████████████████████████████████████████████████████████████████████████████████████████| 1017/1017 [00:09<00:00, 100.37it/s, loss=0.336, v_num=24, train_loss=2.33, train_acc=0.143Exception ignored in: <function tqdm.__del__ at 0x7fd9c4374f80>
Traceback (most recent call last):
  File "/home/anaconda3/envs/pt-gpu/lib/python3.7/site-packages/tqdm/std.py", line 1128, in __del__
  File "/home/anaconda3/envs/pt-gpu/lib/python3.7/site-packages/tqdm/std.py", line 1341, in close
  File "/home/anaconda3/envs/pt-gpu/lib/python3.7/site-packages/tqdm/std.py", line 1520, in display
  File "/home/anaconda3/envs/pt-gpu/lib/python3.7/site-packages/tqdm/std.py", line 1131, in __repr__
  File "/home/anaconda3/envs/pt-gpu/lib/python3.7/site-packages/tqdm/std.py", line 1481, in format_dict
TypeError: cannot unpack non-iterable NoneType object

Here is the python script I'm running:
class ResNetPL(pl.LightningModule):
    def __init__(self, lr=1e-3):
        super().__init__()
        self.l1 = nn.Linear(28 * 28, 256)
        self.l2 = nn.Linear(256, 64)
        self.l3 = nn.Linear(64, 64)
        self.l4 = nn.Linear(64, 10)
        self.drop = nn.Dropout(p=0.6)
        self.criterion = nn.CrossEntropyLoss()
        self.train_acc = pl.metrics.Accuracy()
        self.valid_acc = pl.metrics.Accuracy()
        self.learning_rate = lr

    def forward(self, x):
        x = F.relu(self.l1(x))
        h1 = F.relu(self.l2(x))
        h2 = F.relu(self.l3(h1))
        do = self.drop(h1 + h2)
        logits = self.l4(do)
        return logits

    def configure_optimizers(self):
        optimizer = torch.optim.SGD(self.parameters(), lr=self.learning_rate)
        return optimizer

    def training_step(self, batch, batch_idx):
        x, y = batch
        x = x.view(x.size(0), -1)

        # forward pass
        logits = self(x)

        # compute the objective function
        loss = self.criterion(logits, y)

        self.train_acc(logits, y)

        self.log(
            "train_loss", loss, on_step=False, on_epoch=True, prog_bar=True
        )
        self.log(
            "train_acc",
            self.train_acc,
            on_step=False,
            on_epoch=True,
            prog_bar=True,
        )
        return loss

    def validation_step(self, batch, batch_idx):
        x, y = batch

        x = x.view(x.size(0), -1)
        logits = self(x)
        loss = self.criterion(logits, y)

        # return the accuracy
        acc_valid = self.valid_acc(logits, y)

        self.log("loss", loss, on_step=False, on_epoch=False, prog_bar=False)
        self.log(
            "acc",
            self.valid_acc,
            on_step=False,
            on_epoch=False,
            prog_bar=False,
        )
        return {"loss_val": loss, "acc_val": acc_valid}

    def validation_epoch_end(self, val_step_outputs):
        avg_val_loss = torch.tensor(
            [x["loss_val"] for x in val_step_outputs]
        ).mean()
        avg_val_acc = torch.tensor(
            [x["acc_val"] for x in val_step_outputs]
        ).mean()
        self.log(
            "avg_val_loss",
            avg_val_loss,
            on_step=False,
            on_epoch=True,
            prog_bar=True,
        )
        self.log(
            "avg_val_acc",
            avg_val_acc,
            on_step=False,
            on_epoch=True,
            prog_bar=True,
        )

    def prepare_data(self):
        transform = transforms.Compose(
            [
                transforms.ToTensor(),
                transforms.Normalize(
                    (0.1307,),
                    (0.3081,),
                ),
            ]
        )
        mnist_data = torchvision.datasets.MNIST(
            "data", train=True, transform=transform, download=True
        )
        self.mnist_train, self.mnist_val = torch.utils.data.random_split(
            mnist_data, [55000, 5000]
        )

    def train_dataloader(self):
        train_loader = torch.utils.data.DataLoader(
            self.mnist_train,
            batch_size=64,
            shuffle=True,
            num_workers=8,
        )
        return train_loader

    def val_dataloader(self):
        val_loader = torch.utils.data.DataLoader(
            self.mnist_val, batch_size=32, shuffle=False, num_workers=8
        )
        return val_loader

if __name__ == "__main__":
    model = ResNetPL()
    trainer = pl.Trainer(gpus=1, max_epochs=2)

    # find the best lr
    lr_finder = trainer.tuner.lr_find(model)
    print(f"Best learning rate: {lr_finder.suggestion()}")

    # plot the lr curve
    fig = lr_finder.plot(suggest=True)
    fig.show()

    # set the best lr as the model lr
    model.learning_rate = lr_finder.suggestion()
    trainer.fit(model)

Environment:

OS: Linux
Packaging: pip
Version: 1.0.3

Hey @LakshyaMalhotra , I was not able to reproduce your issue, I have copy pasted your code for "ResNetPL" class and after that ran with the following code on colab notebook:
model = ResNetPL()
trainer = pl.Trainer(max_epochs=2, gpus=1, progress_bar_refresh_rate=60)

lr_best = trainer.tuner.lr_find(model)
model.learning_rate = lr_best.results['lr'][0]

trainer.fit(model)

Try setting drop_last=False attribute on DataLoader.

@Vichoko I'm still having the same error even after setting drop_last=True in the dataloader.

Ok, my bad.
Now taking a further look I noted the aggregation behaviour you added on validation_epoch_end isn't needed as the loss and accuracy metrics are aggregated by themselves on epoch ended. I'd remove this method completely.
Also, I'd homologate the metric names on validation step as you are using 3 different types, loss and accuracy, then loss_val and acc_val and in the train step you are using train_loss and train_acc. I'm pretty sure that you don't need to return anything on train and Val steps, I'd remove those returns just to keep the code clear. And I'd stick to the train_{metric} and val_{metric} name convention.
Finally, I'd remove the keyword params of all the self.log calls you are using as they are chosen automatically depending on if you are training or evaluating for the most standard configuration.

@Vichoko Thanks for your reply! Like you mentioned I changed my code but still I got the same error. Following is the updated code:
import os
import torch
import torchvision
from torchvision import transforms
import torch.nn as nn
import torch.nn.functional as F
import pytorch_lightning as pl

import matplotlib.pyplot as plt

class ResNetPL(pl.LightningModule):
    def __init__(self, lr=1e-3):
        super().__init__()
        self.l1 = nn.Linear(28 * 28, 256)
        self.l2 = nn.Linear(256, 64)
        self.l3 = nn.Linear(64, 64)
        self.l4 = nn.Linear(64, 10)
        self.drop = nn.Dropout(p=0.6)
        self.criterion = nn.CrossEntropyLoss()
        self.train_acc = pl.metrics.Accuracy()
        self.valid_acc = pl.metrics.Accuracy()
        self.learning_rate = lr

    def forward(self, x):
        x = F.relu(self.l1(x))
        h1 = F.relu(self.l2(x))
        h2 = F.relu(self.l3(h1))
        do = self.drop(h1 + h2)
        logits = self.l4(do)
        return logits

    def configure_optimizers(self):
        optimizer = torch.optim.SGD(self.parameters(), lr=self.learning_rate)
        return optimizer

    def training_step(self, batch, batch_idx):
        x, y = batch
        x = x.view(x.size(0), -1)

        # forward pass
        logits = self(x)  # l: logits

        # compute the objective function
        train_loss = self.criterion(logits, y)

        self.train_acc(logits, y)

        self.log("train_loss", train_loss, prog_bar=True)
        self.log("train_acc", self.train_acc, prog_bar=True)
        return train_loss

    def validation_step(self, batch, batch_idx):
        x, y = batch

        x = x.view(x.size(0), -1)
        logits = self(x)
        valid_loss = self.criterion(logits, y)

        self.valid_acc(logits, y)
        self.log("valid_loss", valid_loss, prog_bar=True)
        self.log("valid_acc", self.valid_acc, prog_bar=True)

    def prepare_data(self):
        transform = transforms.Compose(
            [
                transforms.ToTensor(),
                transforms.Normalize((0.1307,), (0.3081,),),
            ]
        )
        mnist_data = torchvision.datasets.MNIST(
            "data", train=True, transform=transform, download=True
        )
        self.mnist_train, self.mnist_val = torch.utils.data.random_split(
            mnist_data, [55000, 5000]
        )

    def train_dataloader(self):
        train_loader = torch.utils.data.DataLoader(
            self.mnist_train, batch_size=64, shuffle=True, num_workers=8,
        )
        return train_loader

    def val_dataloader(self):
        val_loader = torch.utils.data.DataLoader(
            self.mnist_val, batch_size=32, shuffle=False, num_workers=8,
        )
        return val_loader

if __name__ == "__main__":
    model = ResNetPL()
    trainer = pl.Trainer(max_epochs=2)

    # find the best lr
    lr_finder = trainer.tuner.lr_find(model)
    print(f"Best learning rate: {lr_finder.suggestion()}")

    # plot the lr curve
    fig = lr_finder.plot(suggest=True)
    fig.show()

    # set the best lr as the model lr
    model.learning_rate = lr_finder.suggestion()
    trainer.fit(model)

The only way the code works without giving any error is when I remove the code for finding the best learning_rate.  Whenever I add the lr_finder in the code I end up in the same error.


Update spectral rule to handle null values error in example fields

What type of PR is this?

Bug
Correction

What this PR does / why we need it:
Spectral rules failed while testing with Sim-swap repository:
https://github.com/camaraproject/SimSwap/pull/153
Which issue(s) this PR fixes:
Fix the issue of below rules:

camara-path-param-id
camara-discriminator-use:

LGTM

@PedroDiez  @patrice-conil   Please have a look once again and approve the same as I have added the Changelog


Can not open a new topic on support instance

When I click Start Discussion here:
http://support.helpy.io/en/topics/new
I get an error 500.
This also happens when I am not logged in and try to start a discussion!

Thanks- the support site is running a version that had a bug and I have not had time to fix it yet!


Update thoughtbot.com links

The previous links were to pages that now redirect. Provide more recent, relevant options.

Ready for review @thoughtbot/growth.

👍


Use Ordering::Relaxed for ID allocator

As an ID allocator, the only thing we need is atomicity. As there is no reader or writer accessing the allocator, using Relaxed for fetch_add is enough.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.312%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1569

Relevant Lines:
1797

💛  - Coveralls


HHH-14659 "join fetch" on mapped-by association is ignored when using bytecode enhancement

https://hibernate.atlassian.net/browse/HHH-14659
This is not a great fix. But it should work. All the code related to loaders, and especially lazy/eager fetching, is being rewritten in ORM 6, and for good reasons. With that in mind, I think investing more in this fix would be a waste of time.
Here's an explanation of the problem, if someone wants more information:
For mapped-by associations, we generate the correct SQL and fetch the associated entities correctly, and we even add them to the session. But when we decide which value to assign to the corresponding property, we assume that since the property is lazy,  we didn't retrieve it. Which is wrong when join fetch is being used.
This behavior was most likely implemented when fixing HHH-13134 as a way to avoid unnecessary queries for lazy associations. In most cases it's a good thing, but here it's causing us to ignore a join fetch.
To be more precise,  when the problem occurs, the laziness local variable in org.hibernate.persister.entity.AbstractEntityPersister#hydrate (org/hibernate/persister/entity/AbstractEntityPersister.java:3191) is true for the property representing the association, which causes the hydrate method to consider the property "unfetched", even though the associated entity is being loaded.
When the association is not mapped-by, the property does get set because laziness in this method is false, so we set the value to the ID of the non-owning entity, and later another method will retrieve the associated entity from the persistence context and set the property value (in org.hibernate.engine.internal.TwoPhaseLoad#initializeEntityEntryLoadedState, which will indirectly call org.hibernate.type.EntityType#loadByUniqueKey).

Thanks for the reviews. I amended my fix to avoid backwards-incompatible renamings. I think we can merge as soon as CI passes :)


Update index.md

Create a new branch for this commit and start a pull request.

completed.

Complete.


[BugFix] ShowCreateMaterializedView should show session properties

After AlterMV session properties,  ShowMV should display the changed properties.
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.1
[ ] 3.0
[ ] 2.5
[ ] 2.4

[FE PR Coverage Check]
:disappointed: fail : 3 / 5 (60.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/catalog/MaterializedView.java
3
5
60.00%
[1001, 1002]

@Mergifyio backport branch-3.1

@Mergifyio backport branch-3.0


Changing locale causes all components to be in Unmounted state

Environment
------------------------------
- Operating System: Linux
- Node Version:     v20.11.0
- Nuxt Version:     3.11.2
- CLI Version:      3.11.1
- Nitro Version:    2.9.6
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      modules, i18n
- Runtime Modules<EMAIL_ADDRESS>- Build Modules:    -
------------------------------

Reproduction
https://stackblitz.com/github/martinszeltins/nuxt-i18n-unmounted
Describe the bug
When using setLocale() to change locale, it causes all of the components to be left in an Unmounted state.
Please see the reproduction. When you click the Change Locale button, which uses setLocale to change the locale, we see this output in console:
onMounted
onMounted
onUnmounted
onUnmounted

The last lifecycle hook that triggered was the onUnmounted hook. Now all components think that they are unmounted when actually they are not unmounted.
This causes all kinds of issues because usually in onUnmounted hook we perform cleanup, remove event listeners etc. and it causes the app to break.
Screenshot:

Additional context
No response
Logs
No response

Thank you for your reporting!
unmount is called because nuxt-i18n registers the URLs for nuxt routing by locale. nuxt routing (vue-router) allows the Vue component lifecycle is invoked such as mount and umount
So, this is the expected behaviour.
Thanks!

I don't think this is the expected behavior because the end state of all components is unmounted which triggers all onUnmount hooks to run and all event listeners are removed. But actually the component is still mounted.

I have changed the logs in your reproduction to better illustrate what is happening:

I have changed the logs in your reproduction to better illustrate what is happening

Oh, I see now. Each locale has its own instance. I also tested with lifecycle hooks and they do indeed seem to be working. Thank you for taking your time to look into this!


Accordion Transition Effect Issue

Hi Team,
I have noticed that the animation effect is missing for the Accordion block. Please compare the site with Legacy.
https://main--aldevron--hlxsites.hlx.live/qe-test/accordion-test
https://www.aldevron.com/products/cas9

Hi @Kummu007 ,
As discussed with client, we can ignore this and close this issue.

The client is okay with this effect. Hence closing the ticket.


[iOS Groupon] Groupon Project - Per Diem

/cc @codepathreview @codepath - Here is a screen cap of our app, Per Diem. There are a few small tweaks we're still hoping to make, but it's very close to demo-ready!

Looks great! Glad to see you were able to incorporate the designer's suggestions! You can use today to work on your demo flow and smooth out any rough edges in the demo. Looking forward to seeing your demo tomorrow!


The ClrType.From method does not work with the System.Guid type under .NET 9

Hello, Akash!
After switching to .NET 9, in the ClrType.From method when working with the System.Guid type an error “Cannot bind to the target method because its signature is not compatible with that of the delegate type.” began to occur. To reproduce this error, I created a example:
using System;

using YantraJS.Core;
using YantraJS.Core.Clr;

namespace TestYantra
{
    internal class Program
    {
        static void Main(string[] args)
        {
            using (var context = new JSContext())
            {
                JSValue guidTypeValue = ClrType.From(typeof(Guid));
                context["guid"] = guidTypeValue;
                string result = context.Eval("guid.empty.toString()").ToString();

                Console.WriteLine("Result: {0}", result);
            }
        }
    }
}

Under normal conditions, result of this example should be 00000000-0000-0000-0000-000000000000.

@Taritsyn Thanks for reporting this, I will look and update soon.

@Taritsyn This will take little time, I upgraded unit test set to .NET 9 and almost 10% of unit tests are failing due to change in bitwise operations on casting. And due to one more breaking change, field access on .NET type is also failing, I will fix these issues over coming weekend.


Fix sync activity linting

Coverage decreased (-0.2%) to 66.84% when pulling e368eedc380f368337c86f7ef0526560094b5df4 on fix-sa-lint into 5534efc754779e2a16427723549c9393c2abf0e0 on master.


CVE-2022-1471 in SnakeYAML 1.33

Out project reports the following CVE when we use latest io.swagger.parser.v3:swagger-parser:2.1.18
https://nvd.nist.gov/vuln/detail/CVE-2022-1471
Is it possible to move to SnakeYaml v2 to resolve this CVE?

2.1.8 and current swagger-parser uses SnakeYaml 2.2, which is not affected by the mentioned vulnerability. Please verify that your tooling is providing correct result and targeting the right version, and please close ticket if the above is correct


Fix minimal build, allow building without boost::serialization

Set the correct minimal cmake version
some updates to the minimallib build process
Some fixes to the build/test process for cases where not all options are being installed
Get things working again with coordgen but without maeparser
make it possible to check from python if iostreams, serialization, or multithreaded builds were done

@ptosco I was able to run the minimallib build script using the code in this PR


Ci cd steps

Add documentation for CI
Add documentation for CD

General question: Is the more appropriate place of the CI/CD document in app and service repository?

@aaron-schnieder Updating diagram in separate PR
@jobanputra I'm trying to keep the CI/CD general so users can add their own steps for each service


[FSDE-1083] Add interactive documentation examples of chi vue drawer

[x] Added interactive documentation examples of chi vue drawer

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/1/. :white_check_mark:

You can check this PRs instance in https://12a82fd88291b22b6cb7b731ee7645bff9e5db92-chi-pr.enterprise.ctl.io

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/2/. :white_check_mark:

You can check this PRs instance in https://cddcdd70b205b0d362e5e6d8b92f09e9b7050622-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/4/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/5/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/6/. :white_check_mark:

You can check this PRs instance in https://b1a1afb3ddf1d0ea33a61ac0939616968e84e1d1-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/7/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/8/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/9/. :white_check_mark:

You can check this PRs instance in https://0152d8892eca0f61c51ee93b66c9e062d1132bab-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/10/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/11/. :white_check_mark:

You can check this PRs instance in https://e91902c6dffcc216cce545cddf6f68932afd9bde-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/12/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/13/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/14/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/15/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/16/. :white_check_mark:

You can check this PRs instance in https://f16b3dc9246482d14fb7c9ec93fe765226fac5db-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/17/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/18/. :white_check_mark:

You can check this PRs instance in https://36e8d1b594f6ef694feb5389744a733da0824207-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/19/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/20/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/21/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/22/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/23/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/24/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/25/. :white_check_mark:

You can check this PRs instance in https://28aecc60faaf7f917cb6b54d3227e6096df8bae7-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/26/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/27/. :white_check_mark:

You can check this PRs instance in https://cb2b79016ae376f9feab228c7d2de2bfcf9d5ede-chi-pr.enterprise.ctl.io

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/28/. :x:

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-93/29/. :white_check_mark:

You can check this PRs instance in https://ec6c9f40ffd07210b954e982c4aef606d8de96de-chi-pr.enterprise.ctl.io


Train and test on different size datasets

We are looking at YOLACT++ inference of 4096x756 image at a high FPS. However, to not run out of memory, our train/val dataset is 756x756. We are seeing low scores when we are running inference on 4096x756. I see the issue is still open: https://github.com/dbolya/yolact/issues/319
Do you have any guidance here?

Hey @saumitrabg
Did you get any interesting finds on this issue ? , I am facing the same problem as well


:commits_count key added for changelog_from_git_commits action

#4554

@SiarheiFedartsou Thanks for the PR (and for writing tests 💯 ) I've added some comments that need to be addressed before I can merge 👍

@asfalcone Thank you for your response! Just updated PR with fixes.

Thanks @SiarheiFedartsou 👍


--pool-name broken in 0.3.1

Running the ace-py version 0.3.1 tag objects to the --pool-name option.  This worked in 0.2.1.
The docs say --pool-name but looks like the actual option is
--ledger-pool-name
Need to fix the docs  (Dev Read Me)

Documentation for the command line options is now part of the executable. Docs have been updated to remove the command line parameters and replaced with instructions on how to run an executable to get them.
Check --help for the latest.


Can you please help us to test our application in Huawei smartphones?

We have an issue that we face in cloud debugging but not in real Huawei smartphones. However, we don't have a Huawei phone with Huawei software that we can test. Therefore, we kindly ask you to test our application on real Huawei smartphones.
The issue is that the map is not loading correctly. Please check and make sure that the map is loading correctly on all locations.
APK:
http://sendanywhe.re/4XK2L9N9
User info:
Username: test_huawei
Password: 123123

It seems that your APK is not in the attachment. Can you send it to<EMAIL_ADDRESS>I can test it for you.

apk file; It is available at the link I mentioned in the description. Link: http://sendanywhe.re/4XK2L9N9

Thanks a lot for your support. Can a few more people test it?

Hello, I tried your app too.
You can find the video in your mail.


ISBN-13 starting with 979

Hi. Foremost, thank you for your hard work. It is a great library.
Today I faced a problem with the new ISBN-13 979-8 prefix ( https://www.isbn-international.org/content/changes-united-states-isbn-prefixes ) that the module cannot deal with, as long as I can see.
This a valid new prefix ISBN-13:<PHONE_NUMBER>322
The error I receive is:
barcode.errors.BarcodeError: ISBN must start with 97910 or 97911.
Thanks for your help.

The check here needs to be updated https://github.com/WhyNotHugo/python-barcode/blob/36a11920cf32630457d926d85166dd0ce5822e42/barcode/isxn.py#L43-L51:


Missing install step? ModuleNotFoundError: No module named 'api'

I'm trying to run the example, but I'm getting this error:
D:\3rdparty\dwxconnect\python\examples> python dwx_client_example.py
Traceback (most recent call last):
  File "dwx_client_example.py", line 10, in <module>
    from api.dwx_client import dwx_client
ModuleNotFoundError: No module named 'api'

Is there an install step missing?

Copy api folder to examples directory