Use proper UID encoding

Fixes #76
Also uses correct token generator for checking the token

See https://github.com/iMerica/dj-rest-auth/pull/266/


Dg update misc

Update PPP for @chao890 and myself.

Codecov Report

Merging #265 (6e2a4fc) into master (fc7a325) will not change coverage.
The diff coverage is n/a.

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

@@            Coverage Diff            @@
##             master     #265   +/-   ##
=========================================
  Coverage     65.21%   65.21%
  Complexity      604      604
=========================================
  Files            93       93
  Lines          2199     2199
  Branches        271      271
=========================================
  Hits           1434     1434
  Misses          687      687
  Partials         78       78

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Return bytes written for timestamp/decimal encoding

Issue #, if available: #283
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This does make for a nicer API, but the perf nerd in me laments the small amount of overhead it adds to the encoders. Prior to this, the writer would simply check the buffer length before/after encoding and take the delta. 🤷

It also sucks that I have to manually instrument it. I wonder if there is a way (e.g. via a trait) to codify "write and count" and then have an option to disable counting.


Fix/heroku

After deploying the project to Heroku, there was a problem loading the images in the article. Currently, local image storage is specified in the configuration file. When remote storage via AWS is configured, these changes will be made to the configuration file.
https://trello.com/c/YKFibl4w/81-fix-uploader-for-images-in-articles

Fix uploader for images in articles


update ADOPTERS.md to add KubeSphere as an adopter for KubeVirt

What this PR does / why we need it:
update ADOPTERS.md to add KubeSphere as an adopter for KubeVirt
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
KubeSphere added to the adopter's file!

/lgtm

/approve


mbedtls: fix build for Darwin

Motivation for this change
mbedtls was not building on Darwin despite platforms.all. Now it does. This is one of the failing packages listed in https://github.com/NixOS/nixpkgs/issues/18067.
cc @wkennington @fpletz
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[x] macOS
[x] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@LnL7 thanks for the review! I fixed it in latest commit, and re-tested.


Install or Defer prompting users to install Sonoma when it is deferred by MDM

Good morning @mpanighetti,
Even though we're deferring Sonoma with forceDelayedMajorSoftwareUpdates and enforcedSoftwareUpdateMajorOSDeferredInstallDelay, there are instances where the endpoint does not respect this, and shows Sonoma as an available update in Software Update.
Would it be possible to add an if statement to the UPDATE_CHECK function that excludes Sonoma on Macs running Ventura or below, similar to what was added for Ventura on Macs running Monterey?
    if [[ "$OS_MAJOR" -lt 14 ]]; then UPDATE_CHECK=$(echo "$UPDATE_CHECK" | /usr/bin/grep -v "macOS Sonoma")     fi
Thanks a lot,
Justin.

Thank you so much. We have switched to manual updates across the board, so the aim is to prevent Sonoma from being displayed in the dialog.
As always, much appreciated.


Add slack integration so that we can receive the slack notification once any new release published

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Right now, there is no slack integration for this neo4j/helm-charts repo, we cannot get the new release by slack.
Describe the solution you'd like
A clear and concise description of what you want to happen.
The repo admin can add slack integration for external developers.
Like this: https://github.com/integrations/slack
Thanks!
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This is resolved now @zhangtbj
The IT team at Neo4j have added integrated this repo with slack
Firing the below command should work
/github subscribe neo4j/helm-charts

It works now.
Thanks!


OPTIONS request doesn't return delete method

I don't know what is wrong, sorry for maybe stupid question but here we go=)
I created a basket detail API endpoint and serializer.
Now when I request OPTIONS its return me only PUT method in action without delete or get, I  really don't know what I done wrong
Here is
https://github.com/HelgiBergmann/InvenTree/blob/32d39c60a43f4304cc666c09c321bd798de5cf5d/InvenTree/basket/api.py#L99

Kill all day to delete the basket....)

I think that the issue here is that you have not assigned the new models to a permission group:
https://github.com/HelgiBergmann/InvenTree/blob/32d39c60a43f4304cc666c09c321bd798de5cf5d/InvenTree/users/models.py#L57
@matmair this makes me wonder how we are going to handle "permissions" in plugins where we don't want the plugin to have to touch base code.
Users must be in the correct "group" to have the required permissions to perform API actions such as "DELETE".

There is something more going on, I found that already but it still does not work right.
@SchrodingersGat my idea is that the plugin writer should run has_permissios before outputting. also the permissions can be mutaded after startup.

@SchrodingersGat thanks


Verify telemetry still works

We have to do quite a bit of repackaging due to the problems caused by kotlin and okhttp and this has the potential to break OTP.
Verify with the new server setup that telemetry is still sent correctly.

Telemetry is properly sent:


DisableBoosterRecipe not working

After setting DisableBoosterRecipe to true the recipe is still in JEI and it is possible to craft the item.
MC: 1.12.2
Forge: <IP_ADDRESS>47
AE2:   rv6-stable-7
AE2WTLib:   1.0.34
p455w0rdslib:   2.3.161
WirelessCraftingTerminal:   3.12.97
WirelessFluidTerminal:   1.0.4
WirelessInterfaceTerminal:   1.0.2
WirelessPatternTerminal:   1.0.3
If you need any other informations, let me know.

I am also having this problem.


Status "info" is not working with type 3 or type 2

Hi!
The status "info" is not working when selecting type 3 or 2, as well as the icon returns as "undefined".
Is this intended or a oversight when you created the library?
Other than that, awesome library! I'm using it in a few Laravel-projects I'm working on :)

The "Info" Palette ist is not implemented.
It's easy to extend the "simple-notify.min.js" and "simple-notify.min.css" files with a little code.

hi folks. I haven't worked on this project for a long time and the last time I was working on version 1.0.0 but I never got it published. You can see that the latest avaiable version is 0.5.5. It's nice to see that there are people using this package and I will be releasing version 1.0.0 later this week.

v1.0.0 is just released.


alembic.ini and env.py have old module path

alembic.ini and env.py have the old import fractal.server, change it to fractal_server

Fixed with #18
Closing.


How to exclude specific folder from validation?

I want to exclude node_modules folder from validation as it has a lot of compilation errors. My project  looks like:

But unfortunately I can't find TypeScript validator in the validator's list. This looks like a defect.

Eclipse version is 4.5,
Plugin versions:
TypeScript	1.5.0.v20150727-0436	com.palantir.typescript.feature.feature.group	Palantir Technologies, Inc.

Eclipse supports a mechanism for excluding entire folders directly.
In addition, the TypeScript plug-in allows folders to be listed on a per-project basis for inclusion so you could just list the folders to include there.

@derekcicerone what is this mechanism? How can entire folders be excluded from validation?


[BUG] Troubles with DynamoDB integration

Describe the bug
I'm attempting to setup memory with the DynamoDB Chat Memory integration.
However, it does not seem to create any entries in the database. I have attached a couple screenshots to help visualise the issue.
As shown, there is indeed Scan and DeleteItem (odd?) activity, which means that the connection is live.
What am I doing wrong here?
Related to #370 and #454
@govind-kumarr
Expected behavior
I expect some sort of Chatlog record to be stored in the appointed Table.
Screenshots

Experienced the same thing. The conversation is stored to the local SQLite but not in DynamoDB.

the issue is related to:
https://github.com/FlowiseAI/Flowise/blob/main/packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts
line 182:

mapChatHistory returns ChatMessageHistory interface but BufferMemoryExtended is expected. which means connection is dropped and DynamoDB does not save anything. I'm building knowledge around langchain-js so need some time to fix it but at least root cause was identify.
BufferMemoryExtended {
  chatHistory: DynamoDBChatMessageHistory {
    lc_serializable: false,
    lc_kwargs: {},
    lc_namespace: [ 'langchain', 'stores', 'message', 'dynamodb' ],
    tableName: 'flowise',
    sessionId: '123',
    client: DynamoDBClient { middlewareStack: [Object], config: [Object] },
    partitionKey: 'id',
    sortKey: undefined,
    messageAttributeName: 'messages',
    dynamoKey: { id: [Object] }
  },
  returnMessages: true,
  inputKey: 'question',
  outputKey: 'text',
  humanPrefix: 'Human',
  aiPrefix: 'AI',
  memoryKey: 'chat_history',
  isSessionIdUsingChatMessageId: true,
  sessionId: '123'
}

result:

this PR should fix that - https://github.com/FlowiseAI/Flowise/pull/1025
try to update to latest v1.3.8, feel free to re-open if issue persist


[WIP]Consumption Labor Model with a discrete unemployment state.py

Please ensure your pull request adheres to the following guidelines:

[ ] Tests for new functionality/models or Tests to reproduce the bug-fix in code.
[ ] Updated documentation of features that add new functionality.
[ ] Update CHANGELOG.md with major/minor changes.

You have made two commits, first creating and then deleting your file.  Please provide a more descriptive title for the PR, and an initial comment that describes what you've done.
Your file should be ConsLaborModel.py, not [WIP]ZhongliZhang.py

In this unemployment search model, agents are expected lifetime utility maximizes with CRRA preferences over consumption. He derives utility from consumption and disutility from searching for employment. When he is unemployed, he will decide his probability of becoming re-employed. When he is employed, he is influenced by permanent and transitory shock and exogenous probability of becoming unemployed. In particular, unemployment benefits can depend on how long the person has been unemployed.


Tweaks to main vignette

Fixes rendering to specify mathjax. Worked locally, but so did katex. Otherwise, will revert back to using $R(t)$ for now.
Also fixing plot sizing.

Ooh yeah I don't love the way the R(t) looks...


CL Auguest release prep with sample fix

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


Message_bus threads inside initializer and multi-threaded server

I have hit this situation described on #91 by derekyau:

... when running message bus inside an initializer (like its done in the chat app example), since my web server is threaded (unicorn, etc.) I'm running into this issue where when a message comes in, multiple threads receive and process it at the same time. This often happens in the same action being called multiple times. I know I could guard in the code against this, but is there a better way of having only one thread take it and the rest don't receive it? Alternatively I guess I can setup a side process that is single threaded... whats best practice here?

The problem is reproducible running this repo branch
I cannot understand why running this:
def expire_old_sessions
        $online.each do |name, time|
            if (Time.now - (5*60)) > time
                puts "SESSION EXPIRED FOR [#{name}] - #{time}"
                MessageBus.publish "/presence", {leave: name}
            end
        end
end
Thread.new do
    sleep 5
    while true
        expire_old_sessions
        sleep 2
    end
end

Leads to 2 callbacks calls at:
MessageBus.subscribe "/presence" do |msg|
        if user = msg.data["enter"]
            $online[user] = Time.now
            puts "/PRESENCE ENTER: #{user}"
        end
        if user = msg.data["leave"]
            if $online[user]
                puts "/PRESENCE LEAVE: #{user}"
                $online.delete user
            end
        end
end

Run Output:

/home/fer/.rvm/rubies/ruby-2.0.0-p451/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/fer/.rvm/gems/ruby-2.0.0-p451/gems/ruby-debug-ide-0.4.23.beta1/bin/rdebug-ide --disable-int-handler --port 43547 --dispatcher-port 56329 -- /home/fer/RubymineProjects/messagebus-chat/bin/rails server -b <IP_ADDRESS> -p 3000 -e fake_production
Fast Debugger (ruby-debug-ide 0.4.23.beta1, debase 0.0.9) listens on <IP_ADDRESS>:43547
=> Booting Puma
=> Rails 4.1.15 application starting in fake_production on http://<IP_ADDRESS>:3000
=> Run rails server -h for more startup options
=> Notice: server is listening on all interfaces (<IP_ADDRESS>). Consider using <IP_ADDRESS> (--binding option)
=> Ctrl-C to shutdown server
[27346] Puma starting in cluster mode...
[27346] * Version 3.3.0 (ruby 2.0.0-p451), codename: Jovial Platypus
[27346] * Min threads: 1, max threads: 1
[27346] * Environment: fake_production
[27346] * Process workers: 1
[27346] * Phased restart available
[27346] * Listening on tcp://<IP_ADDRESS>:3000
[27346] Use Ctrl-C to stop
Fast Debugger (ruby-debug-ide 0.4.23.beta1, debase 0.0.9) listens on <IP_ADDRESS>:60480
========= ON WORKER BOOT ==============
[27346] - Worker 0 (pid: 27360) booted, phase: 0
SESSION EXPIRED FOR [donald] - 2016-04-26 00:30:35 -0300
/PRESENCE LEAVE: donald
SESSION EXPIRED FOR [hilary] - 2016-04-25 00:30:35 -0300
/PRESENCE LEAVE: donald
/PRESENCE LEAVE: hilary
/PRESENCE LEAVE: hilary
SESSION EXPIRED FOR [jeffey] - 2016-04-27 00:25:45 -0300
/PRESENCE LEAVE: jeffey
/PRESENCE LEAVE: jeffey
SESSION EXPIRED FOR [joseph] - 2016-04-27 00:25:55 -0300
/PRESENCE LEAVE: joseph
/PRESENCE LEAVE: joseph

I have tested it with redis and postgres backends.
Any clues?

What is the message_id on these messages ? you getting duplicate message_ids?

Yes. Dup message_ids :
[28832] Puma starting in cluster mode...
[28832] * Min threads: 1, max threads: 1
[28832] * Environment: fake_production
[28832] * Process workers: 1
[28832] * Phased restart available
========= ON WORKER BOOT ==============
[28832] - Worker 0 (pid: 28863) booted, phase: 0
SESSION EXPIRED FOR [donald] - 2016-04-26 09:15:03 -0300
/PRESENCE LEAVE: donald => msg: #<struct MessageBus::Message global_id=120, message_id=33, channel="/presence", data={"leave"=>"donald"}>
/PRESENCE LEAVE: donald => msg: #<struct MessageBus::Message global_id=120, message_id=33, channel="/presence", data={"leave"=>"donald"}>
SESSION EXPIRED FOR [hilary] - 2016-04-25 09:15:03 -0300
/PRESENCE LEAVE: hilary => msg: #<struct MessageBus::Message global_id=121, message_id=34, channel="/presence", data={"leave"=>"hilary"}>
/PRESENCE LEAVE: hilary => msg: #<struct MessageBus::Message global_id=121, message_id=34, channel="/presence", data={"leave"=>"hilary"}>
SESSION EXPIRED FOR [jeffey] - 2016-04-27 09:10:13 -0300
/PRESENCE LEAVE: jeffey => msg: #<struct MessageBus::Message global_id=122, message_id=35, channel="/presence", data={"leave"=>"jeffey"}>
/PRESENCE LEAVE: jeffey => msg: #<struct MessageBus::Message global_id=122, message_id=35, channel="/presence", data={"leave"=>"jeffey"}>
SESSION EXPIRED FOR [joseph] - 2016-04-27 09:10:23 -0300
/PRESENCE LEAVE: joseph => msg: #<struct MessageBus::Message global_id=123, message_id=36, channel="/presence", data={"leave"=>"joseph"}>
/PRESENCE LEAVE: joseph => msg: #<struct MessageBus::Message global_id=123, message_id=36, channel="/presence", data={"leave"=>"joseph"}>

I have noticed that when I comment MessageBus.after_fork on Rails config/puma/fake_production.rb I don't get duplicated callback calls.
#!/usr/bin/env puma
threads 1,1
workers 1
#preload_app!

on_worker_boot do
  ####MessageBus.after_fork
  puts '========= ON WORKER BOOT =============='
end

Output:
[24347] Puma starting in cluster mode...
[24347] * Version 3.3.0 (ruby 2.0.0-p451), codename: Jovial Platypus
[24347] * Min threads: 1, max threads: 1
[24347] * Environment: fake_production
[24347] * Process workers: 1
[24347] * Phased restart available
[24347] * Listening on tcp://<IP_ADDRESS>:3000
[24347] Use Ctrl-C to stop
Fast Debugger (ruby-debug-ide 0.4.23.beta1, debase 0.0.9) listens on <IP_ADDRESS>:33150
========= ON WORKER BOOT ==============
[24347] - Worker 0 (pid: 24362) booted, phase: 0
SESSION EXPIRED FOR [donald] - 2016-04-26 16:46:49 -0300
SESSION EXPIRED FOR [hilary] - 2016-04-25 16:46:49 -0300
/PRESENCE LEAVE: donald => msg: #<struct MessageBus::Message global_id=360, message_id=150, channel="/presence", data={"leave"=>"donald"}>
/PRESENCE LEAVE: hilary => msg: #<struct MessageBus::Message global_id=361, message_id=151, channel="/presence", data={"leave"=>"hilary"}>
SESSION EXPIRED FOR [jeffey] - 2016-04-27 16:41:59 -0300
/PRESENCE LEAVE: jeffey => msg: #<struct MessageBus::Message global_id=362, message_id=152, channel="/presence", data={"leave"=>"jeffey"}>
SESSION EXPIRED FOR [joseph] - 2016-04-27 16:42:09 -0300
/PRESENCE LEAVE: joseph => msg: #<struct MessageBus::Message global_id=363, message_id=153, channel="/presence", data={"leave"=>"joseph"}>

I can also reproduce the problem with original examples/chat/chat.rb:
$ cat ../../../messagebus-chat/config/puma/fake_production.rb
#!/usr/bin/env puma

threads 1,20
workers 2
# preload_app!

require 'message_bus'

on_worker_boot do
  MessageBus.after_fork
  puts '========= ON WORKER BOOT =============='
end

inside chat.rb:
MessageBus.subscribe "/presence" do |msg|
  puts "PRESENCE: #{msg}"

$ bundle exec puma -C ../../../messagebus-chat/config/puma/fake_production.rb
[5565] Puma starting in cluster mode...
[5565] * Version 3.4.0 (ruby 2.0.0-p451), codename: Owl Bowl Brawl
[5565] * Min threads: 1, max threads: 20
[5565] * Environment: development
[5565] * Process workers: 2
[5565] * Phased restart available
[5565] * Listening on tcp://<IP_ADDRESS>:9292
[5565] Use Ctrl-C to stop
========= ON WORKER BOOT ======================= ON WORKER BOOT ==============

[5565] - Worker 1 (pid: 5574) booted, phase: 0
[5565] - Worker 0 (pid: 5570) booted, phase: 0
PRESENCE: #<struct MessageBus::Message global_id=566, message_id=250, channel="/presence", data={"leave"=>"DRI"}>
PRESENCE: #<struct MessageBus::Message global_id=566, message_id=250, channel="/presence", data={"leave"=>"DRI"}>
PRESENCE: #<struct MessageBus::Message global_id=567, message_id=251, channel="/presence", data={"enter"=>"DRI"}>
PRESENCE: #<struct MessageBus::Message global_id=567, message_id=251, channel="/presence", data={"enter"=>"DRI"}>
^C[5565] - Gracefully shutting down workers...
[5565] === puma shutdown: 2016-04-27 19:07:43 -0300 ===
[5565] - Goodbye!
$ ^C

From what I can understand, the on_worker_boot puma method only applies when you config workers, what leads to MessageBus.after_fork so that MessageBus code can be re-set on the new forked process.
That way, it is understandable that a new $online presence hash will be created on the new forked process and there will be no thread safety issues. Those duplicated presence hashes will be syncronized by one of the processes publishing to /presence channel, since all of then subscribe to that channel and update their own presence hash.
I've made tests with puma config threads 1,1  workers 1 where I can confirm by inspecting objects and threads
/PRESENCE LEAVE: user_26 => Thread:#<Thread:0x00000005211858> => $online:40236000 => $online[user]:50470540 => global/msg id:6395/5989
/PRESENCE LEAVE: user_26 => Thread:#<Thread:0x00000004cbe5e0> => $online:40236000 => $online[user]:48672400 => global/msg id:6395/5989

I just don't understand how come $online object_id be the same on different workers ( I see two puma Linux process on ps):
ps ax | grep puma
 5772 ?        Sl     0:03 puma 3.3.0 (tcp://<IP_ADDRESS>:3000) [message_bus-chat-example]
 5788 ?        Sl     0:06 puma: cluster worker 0: 5772 [message_bus-chat-example]

But threads 1,16 on puma config may cause thread safety issues because they will be accessing a same copy of $online which is not thread safe. One solution would be to make it thread-safe what implies filling the code that read/write $online with mutexes.

I think you are calling the initializer after fork, message bus maintains all subscriptions after fork.
Simplest fix is to only subscribe if you are not already subscribed (setting a global after you subscribe)

But, wait... isn't true that:

when puma forks, 2 processes run isolated (one doesn't see the global vars of another) ?
the only way those 2 processes would communicate would be thru subscribing to message_bus channels ?

 Children can not amend master, master can no longer amend children once forked.

Well, as I said, I dont think that matters where I call the code actually on an initializer, because both puma workers need to run the initializer code or they won't work!
In fact, what I thought was a bug, is just normal behaviour, because at server, when a worker is forked, it needs to have the exactly code its parent has running. In fact there will be as many copies of $online presence hashes as the number of workers and all of those copies get in sync thru REDIS or Postgres (whatever backend you choosed to run).
When a JS-Client pools the server, it will get connected to one of the puma workers and there will be no duplicated messages. Dup messages only appear on the server code, because of the forked code.
I think I am done understanding this, sorry for the newbie question and thank you for your comments.
If you'd like to add anything... or you can close this.

np, glad you worked it out


Enhancements to purefa_alerts_open, collect additional fields.

We would like to see if a request for additional data can be collected to the Alerts_Open endpoint.  We would like to use the data to send alerts to Prometheus's Alert manager, but would like to have the additional data to manage the alerts, to silence the alerts and to have additional documentation when an alert is sent to a pager or MS-Teams channel.   I reviewed the API of the data available and would like to have at least the data that is shown in the GUI (green), plus the "ID" field so that the alert can be managed.
This is what I found available in the REST-API:
The “green” highlighted fields are what is in the GUI, the Promethes fields are the yellow one and the “Severity” field.

Hi @lehatdst !
Thank you for opening this issue, and I agree that we could add a lot of metadata into some of our alerts.
Is this something that you would be interested in submitting a PR for? If not, we can assign someone to take a deeper look into this feature request. Thanks!

I would welcome someone well versed in the PR/coding process.  I would be available to discuss any questions that might arise.

This was close by mistake.

Let’s keep this open as issues track our backlog. We will assign someone from our team to manage this issue.

@lehatdst this fix has been included in the v1.0.12 release.


Swgs panels indications

Mostly this is adding in a page to display panels and indications, and to edit the comment on the panels.
Also I've changed any database fields where the id wasn't just a numerical primary key to a numerical primary key. For live SVD, this is going to mean deleting the data currently in there (not an issue there's no analysis and I can just upload it again), and redoing the migrations from scratch. But should futureproof from ever needing to do this again.
Long term will make the GUI nicer for panel approval and build in checks so we can do it all in SVD but for now it's an update comment then bioinformatics tick a box kinda deal.

Closing this as its all in #144


Cannot insert youtube video into redactor editor

Is it possible to insert youtube video inside redactor editor? When i use "insert image" option, asset explorer has option "embed", but pasting youtube link doesnt create new asset on list.

Same here.

No, it should not be possible to add an embedded asset into a Redactor field using the add image modal; the embed button appearing there was a bug, and the button will be removed in the upcoming Embedded Assets 2.3.0.


Allow loading of local proto definitions as well as from S3.

server.go is getting busy, I'll split it up into digestible chunks soon.

Logs confirm this loaded the pentops protobufs. 👍


Enforcing unique constraint upon table creation

This PR solves issue #714
The CreatePlan wasn't checking for unique constraints and no action was taken even with the constraint defined. Therefore the constraint is added and an index is created alongside the table.

Coverage increased (+0.003%) to 72.926% when pulling e0030edea740e061c8f374d1976624d443ab6ff2 on PauloAmora:issue_714 into dcac90d9d5db592cf50b3613c2022a7371afa482 on cmu-db:master.


HTTPError should have a handle method to set resp.status, resp.body before middleware runs

(This issue was moved from #391 per @kgriffs' comment.)
Following on the updates to HTTPError and subclasses described in #776, #777, #778, we have also found that the current error handling happens after all the middleware has run. In other words, after all other middleware has run, the generic catch for HTTPErrors sets the status and body of the response. It would be preferable to set this before all the middleware has run, in case some additional action need to happen in certain error cases.
For instance, in our case we wrote a request logging middleware that grabbed useful data from all requests, including response status codes and bodies.
class RequestLogging:

    def process_response(self, req, res, resource):
        user = req.context.get('auth_user')
        user_id = user['id'] if user else None

        request = req.context.get('data')
        if request:
            if 'password' in request:
                request['password'] = REDACTED

        response = req.context.get('result')
        if response:
            if 'token' in response:
                response['token'] = REDACTED

        origin = req.get_header('X-Forwarded-For')
        msg = {
            'environment': ENVIRONMENT,
            'origin': origin,
            'status': res.status[:3],
            'method': req.method,
            'endpoint': req.relative_uri,
            'user_id': user_id,
            'request': request,
            'response': response
        }
        logger.info(json.dumps(msg))

However, the standard error handling meant we weren't getting this data for 4xx or 5xx conditions, since those were set after our logging middleware had run. To address this, we made a subclass of HTTPBadRequest with a custom handle method that set the response status and body before middleware could process it.
class APIError(HTTPError):
    """
    This is a subclass of falcon's HTTPError that automatically
    sets the title to the text of the `status`. It also has a handler
    that will set the `resp.status` to match and the `resp.body` to a
    JSON representation of the error, e.g. the validation errors
    generated by Cerebus validators. Critically, it does this within the
    nested try/except block inside `api`, which will set status and body
    _before_ midddleware executes any `process_request()` methods, so
    all error responses can be logged via middleware.

    Args:
        status (str): HTTP status code and text, e.g. falcon.HTTP_BAD_REQUEST
        description(str or dict): An optional useful error message

    All other HTTPError kwargs can be passed in as well.
    """

    def __init__(self, status, description=None, **kwargs):
        super(APIError, self).__init__(status, title=status[4:], description=description, **kwargs)

    @staticmethod
    def handle(ex, req, resp, params):
        resp.status = ex.status
        req.context['result'] = ex.to_dict()

Note: we set the result of any call as the result in request.context. We have another middleware that then renders that based on the content-type of the request, e.g. JSON. Instead of writing there this could be to response.body directly. Also, this already uses the default title as mentioned in #778.
Another use case that comes off the top of my head is devops alert middleware that contacts sysadmins whenever certain errors arise. I'm sure there are other reasons to catch errors in middleware and do something to handle them.
Thoughts?

It sounds reasonable to make sure a raised error is composed into the response before passing it along to middleware. Looks like we need to make sure API._compose_error_response() is called before https://github.com/falconry/falcon/blob/master/falcon/api.py#L214. But we need to be careful we don't introduce other bugs since the error handling logic is starting to get crufty (esp. when you consider that an error handler or middleware component may, itself, raise an error). This may be a good time to clean all that up.

Perhaps the response object needs a standard property that collects errors as they are generated? Hrmmmmm, not sure what the best interface is for this, but it seems as though it would be really useful to have some way for middleware to be able to interact with and react to errors before an error response is returned to the client.

I reworked the middleware handling logic (now merged to master) so that error handlers (including the default ones for HTTPError and HTTPStatus) will be called (and have the opportunity to set resp.status, etc.) before calling middleware process_response() methods. Give it a try and let me know if that helps!

Going to go ahead and close this. Please reopen if 1.1 doesn't meet your needs. Thanks!


handleIFrameLoadingEvent

Added description of new prop
Boolean that sets whether IFrame Loading Events should be fired. For Android only. This allows the detection of URLs for technologies like AMP. The default value is false.
Thank you for the PR! Contributors like you keep React Native awesome!
Please see the Contribution Guide for guidelines:
https://github.com/facebook/react-native-website/blob/master/CONTRIBUTING.md
If your PR references an existing issue, please add the issue number below:

We moved the webview project out into a separate repository here: https://github.com/react-native-community/react-native-webview so I'm going to close this PR.


Error with self-upload model

Hello, thank you for sharing this amazing tool.
I wonder if I can use my own model as the init model. I tried mine on Kaggle notebook, here is my version. Is there any requirement (like vertices count) for a model...?
my notebook
It came up following issues when running main.py:
The size of tensor a (3) must match the size of tensor b (4) at non-singleton dimension 2
full error:

/opt/conda/lib/python3.7/site-packages/clip/clip.py:23: UserWarning: PyTorch version 1.7.1 or higher is recommended
warnings.warn("PyTorch version 1.7.1 or higher is recommended")
ModuleList(
(0): FourierFeatureTransform()
(1): Linear(in_features=515, out_features=256, bias=True)
(2): ReLU()
(3): Linear(in_features=256, out_features=256, bias=True)
(4): ReLU()
(5): Linear(in_features=256, out_features=256, bias=True)
(6): ReLU()
(7): Linear(in_features=256, out_features=256, bias=True)
(8): ReLU()
(9): Linear(in_features=256, out_features=256, bias=True)
(10): ReLU()
)
ModuleList(
(0): Linear(in_features=256, out_features=256, bias=True)
(1): ReLU()
(2): Linear(in_features=256, out_features=256, bias=True)
(3): ReLU()
(4): Linear(in_features=256, out_features=3, bias=True)
)
ModuleList(
(0): Linear(in_features=256, out_features=256, bias=True)
(1): ReLU()
(2): Linear(in_features=256, out_features=256, bias=True)
(3): ReLU()
(4): Linear(in_features=256, out_features=1, bias=True)
)
0%|                                                   | 0/750 [00:00<?, ?it/s]/opt/conda/lib/python3.7/site-packages/torch/nn/functional.py:1628: UserWarning: nn.functional.tanh is deprecated. Use torch.tanh instead.
warnings.warn("nn.functional.tanh is deprecated. Use torch.tanh instead.")
0%|                                                   | 0/750 [00:00<?, ?it/s]
Traceback (most recent call last):
File "main.py", line 481, in
run_branched(args)
File "main.py", line 167, in run_branched
update_mesh(mlp, network_input, prior_color, sampled_mesh, vertices)
File "main.py", line 407, in update_mesh
sampled_mesh.faces)
RuntimeError: The size of tensor a (3) must match the size of tensor b (4) at non-singleton dimension 2

My model is here:
ufo.zip
Vertices: 90600
Faces: 90598
Triangles: 181196

Getting the same error when exporting a model from Blender as an obj - wondering if there is an issue with the export settings? It seems that some information is not getting exported which is why the tensor size is lower (3 rather than 4).
Did you ever manage to fix this?

Exporting the same mesh as a .obj file from MeshLab solved this issue for me. It'd be nice to update code to understand .obj files not only came from MeshLab

I got same error.
I have verified that the system input must be a triangle mesh, and the normals must be per vertex.
Blender exports quad mesh as standard, so you need to change it to triangle mesh.
The first image is quad mesh, the seconds mesh is tri mesh.

You can change it in the export settings.

Then, when using blender, the normals of each face are exported. I solved this problem by exporting an obj file without normals and using MeshLab to export normals per vertex.


Polish Translation

If you can, please include polish translation in next version of picotorrent. It's verry important to me and my friends.

I've added it to the next version in #672. Thanks!


Add lang auto-detection in a separate call.

Exposed WaveParser
Added C++ Native debugging
Added lang auto detection for samples in a separate call for Processor

Waiting for https://github.com/ggerganov/whisper.cpp/pull/474


download (Does not work) W3C Web Content Accessibility Guidelines (WCAG) 2.1 Conformance Statement for Power Apps portals

/// URL not works -> https://celaaatprod.blob.core.windows.net/public/2ada9a2e-66df-430a-94f7-559b51e07f4e/a1a8f896-f531-4e0b-b5b3-0ccac477d1e5/Power Apps portals.Web.WCAG.docx (Blob error message)

This XML file does not appear to have any style information associated with it. The document tree is shown below.

ResourceNotFound
The specified resource does not exist. RequestId:ef23a4c1-c01e-0064-1ba2-f571be000000 Time:2021-12-20T13:03:58.4586088Z

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b8e40af7-ba15-42f8-b9e1-3d1c5ae73285
Version Independent ID: d63fa884-aa15-e95d-f44b-8ce6eabf7142
Content: Accessibility in Power Apps portals - Power Apps
Content Source: powerapps-docs/maker/portals/admin/accessibility.md
Service: powerapps
Sub-service: portals
GitHub Login: @neerajnandwana-msft
Microsoft Alias: nenandw

Thank you for bringing this issue to our attention. The topic has been updated with links to the Microsoft Accessibility Conformance Reports to download these documents.


add startle gifs to general.py

solved issue(#25 )

Could you add gifs from giphy online? The gifs from other site are not visible

i have added this time only from giphy

Thank you so much for contributing!

@all-contributors please add @divyanshu887 for videos

@all-contributors please add @divyanshu887 for video


[llvm] mlir-tblgen not included with the installed tools

Describe the bug
Compiling the following project with with vcpkg containing llvm (vcpkg install llvm[enable-mlir-python-bindings])
https://github.com/jmgorius/mlir-standalone-template
Fails due to mlir-tblgen not being found
Environment

OS: Linux (Fedora 39)
Compiler: gcc-13

To Reproduce
Steps to reproduce the behavior:

vcpkg install llvm[enable-mlir-python-bindings]
git clone https://github.com/jmgorius/mlir-standalone-template
build mlir-standalone-template with -DCMAKE_TOOLCHAIN_FILE=<vcpkg.cmake>

Repro code when
Expected behavior
The sample standalone project should build
Failure logs
-(please attached failure logs)
Additional context
mlir-tblgen should be included in the list of tools installed when "mlir" is in the list of FEATURES.

@ankurvdev Thanks for posting this issue.
Sorry, I'm not familiar with mlir-standalone-template.
Did you pass the correct macro to the CMakeLists.txt? eg: {LLVM_DIR} , ${LLVM_BUILD_LIBRARY_DIR}

The binary (mlir-tblgen) isnt copied over (cmake-installed) at all.
So dont think any of the macros will help
I manually copied it (mlir-tblgen exe) over from my buildtrees to the installed/../tools and it got past 1 issues but i ran into
another (potentially ) llvm issue
https://github.com/llvm/llvm-project/issues/51676
and looks like its "installing" the wrong MLIRTargets.cmake
I'm trying a fix here
https://github.com/microsoft/vcpkg/commit/5a9e669ba9c0f2d93be75d834d21158e13ae8f5f
I still dont know how to fix the missing exe issue but both these steps seem to help it build properly.
The mlir-standalone-template is just a tiny sample mlir project to illustrate creating mlir extensions.
I added some steps to use that in the description.
It'd seems perfect to onboard as a port-test-case

I'm hitting this error trying the fix in the commit i mentioned above
Absolute paths were found in the following files:
  /home/ankurv/vcpkg.ort/packages/llvm_x64-linux/share/mlir/MLIRTargets.cmake
error: Found 1 post-build check problem(s). To submit these ports to curated catalogs, please first correct the portfile: /home/ankurv/vcpkg.ort/ports/llvm/portfile.cmake

Is there like a helper method i can call to transform the cmake file and eliminate the absolute paths.
Its a cmake generated file and i'm assuming this is a solved common problem with vcpkg ports.

Try vcpkg_cmake_config_fixup(PACKAGE_NAME mlir)

Looks like all that was needed was adding the utils feature which enabled a flag that was missing from the mlir features that enabled tblgen binary installations


[CELEBORN-117] refactor CommitManager, implements M/R Partition Commi…

…tHandler to handle specific shuffle partition type.
[BUG]/[FEATURE] title
Why are the changes needed?

What are the items that need reviewer attention?
Related issues.
Refactor CommitManager
Related pull requests.
How was this patch tested?
/cc @AngersZhuuuu
/assign @waitinfuture @AngersZhuuuu @FMX

result link: https://github.com/apache/incubator-celeborn/actions/runs/3656345004

how about current @AngersZhuuuu @waitinfuture

ping @waitinfuture


Add default branch

Closes #4

@balena-ci I self-certify!

thanks again @lordspite! Check out the docs/testing I added.

@20k-ultra thanks!


Add all Azure Functions x Azure Developer CLI samples are added to the gallery

fix #101

@paulyuk in case you want to take a look!


[BGP] cilium agent ignore services updated when using multiple BGP Instance (virtualRouters)

Is there an existing issue for this?

[X] I have searched the existing issues

Version
higher than v1.16.0 and lower than v1.17.0
What happened?
When deploying a BGP configuration with multiple instance on the same node, for instance, on bgp instance to advertise pod IPs, and on to advertise services, only the first instance detects the services changes. Other instances do no detect services update and do not update their configuration.
This bug it present in both CiliumBGPPeeringPolicy and CiliumBGPClusterConfig
I'm using the BGPPeeringPolicy version here because it is simpler:
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPPeeringPolicy
metadata:
 name: 01-bgp-peering-policy
spec:
 nodeSelector:
   matchExpressions:
     - key: node-role
       operator: In
       values: [ storage ]
 virtualRouters:
 - localASN: 65101
   exportPodCIDR: true
   neighbors:
    - peerAddress: '<IP_ADDRESS>/32'
      peerASN: 65102
 - localASN: 65200
   neighbors:
    - peerAddress: '<IP_ADDRESS>/32'
      peerASN: 65201
   serviceSelector:
     matchLabels:
       group: internal

Using that configuration, any Service update will be ignored by the cilium-agent, and only forcing a full refresh will update advertised addresses for the second router.
Note: If the order of the routers is change to put the router exposing the service first, it works, as the first router/instance properly get the changes.
How can we reproduce the issue?
Deploying a simple kind cluster with cilium and BGP.
cilium install \
    --version v1.16.0 \
    --set ipam.mode=kubernetes \
    --set tunnel=disabled \
    --set ipv4NativeRoutingCIDR="<IP_ADDRESS>/8" \
    --set bgpControlPlane.enabled=true \
    --set k8s.requireIPv4PodCIDR=true

Configure BGP advertisement to expose LoadBalancer pods. Setup some services, and see that the advertisements are not updated.
Cilium Version
cilium v1.16.0
Kernel Version
not relevant
Kubernetes Version
reproduced at least on 1.29 and 1.30
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Duplicate of https://github.com/cilium/cilium/issues/33076


Build and install lib/libcaf_openmp.a

The CMake scripts have been updated so that the new libcaf_openmp.a gets build and installed in the lib subdirectory of the installation directory.

Looks OK.


Homework

[x] I looked at nativefier --help and https://github.com/nativefier/nativefier/blob/master/API.md
[x] I checked the Troubleshooting section of the README.
[x] I searched existing issues, open & closed. Yes, my bug is new.
[x] I'm using the latest version available at https://github.com/nativefier/nativefier/releases

Bug description
A clear and concise description of what the bug is.
So, I want to use nativefier to make a webapp, but when I want to commit the built version of it, I can't because the main executable (APP.exe) is greater than 100mb.
Steps to reproduce

Create a webapp. I used nativefier --name "<name>" -i "<path of the ico file>" "<website>"
Try to commit the folder that was created to Github. I use Github Desktop.

Give your full nativefier command and its logs, with the --verbose flag, on a public site:
nativefier --verbose --some-option https://mysite.com

I don't think that logs are necesary on this issue, but if you see that you still need them, don't close this issue, I'll upload them if you say so.
Expected behavior
That the APP.exe file is smaller than 100mb so I can upload it.
Actual behavior
What happened instead.
See the Bug Description section.
Debug info
File
Sorry, my censoring is awful...
Context

Nativefier: 45.0.8
Node.js: 13.5.0
Npm: 6.13.4
OS: Windows 7 7601

By the way, I know that I could use git-lfs, but I want to discard this.

GitHub isn't really designed for binaries (especially large binaries). From the command line you can try using git large file storage to commit it:
https://git-lfs.github.com/

You also could use GitHub releases if you are trying to share binaries of an app made with nativefier.
https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
This is how I publish my app based on nativefier.
https://github.com/mattruzzi/Nativefier-YouTube-on-TV-for-Desktop
https://github.com/mattruzzi/Nativefier-YouTube-on-TV-for-Desktop/releases

I already have an installer for it but I want to share the compiled folder
on the repo.
Thanks for your help anyway!
El El lun, 13 dic 2021 a las 8:30 p. m., Matthew Ruzzi <
@.***> escribió:

You also could use GitHub releases if you are trying to share binaries of
an app made with nativefier.
https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
This is how I publish my app based on nativefier.
https://github.com/mattruzzi/Nativefier-YouTube-on-TV-for-Desktop
https://github.com/mattruzzi/Nativefier-YouTube-on-TV-for-Desktop/releases
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nativefier/nativefier/issues/1327#issuecomment-992800769,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP646AVIS3MCR4ZGEM2IYMLUQZCWNANCNFSM5J56DMXA
.

--
Desarrollador Fullstack y freelancer.
Correos: @.*** y @.***

What is your use case for this?
What is the repo?

nevermind, I answered via email and I couldn’t see the entire message.
the solution that you have is great, but I have an installer that I created with InstallSimple that I’ll upload to the releases tab of the repo.
The thing that I want to do is to decrease the size of the main app executable, so I can upload the compiled folder to the main github repository, and the installer to the releases page.
sorry for my bad english (if it has typos) and my typing (I’m on my phone!)

Is there any reason you couldn't upload both as release assets?
What do you mean by this?:

By the way, I know that I could use git-lfs, but I want to discard this.

Yeah, i’m going to release both things.
thank you for your help


Generating bounding boxes with UDOP

Hi,
by reading the UDOP paper,  my understanding is that during pre-training the model is taught to predict the layout of a target (textual) sequence using special layout tokens.
I was wondering if it is possible to exploit such capability also during finetuning e.g. to finetune the model using target sequences such as: <key> Name <loc_100> <loc_200> <loc_150> <loc_250> </key> <value> Jane Doe <loc_110> <loc_210> <loc_160> <loc_260> </key>
Ideally, could this approach allow to have a correspondence between the generated text (e.g. the name) and its position within the page document?

We have some similar objectives. For example, question answering, the answer will be followed by its bounding box. So, this is possible indeed as long as the format follows "[text sequence]    "

Hi @sromoam,
for inference you can use the standard generate() method:
model = UdopForConditionalGeneration.from_pretrained("udop_model")
outputs = model.generate(input_ids=input_ids,
                                      bbox=bbox,
                                      attention_mask=attention_mask,
                                      pixel_values=pixel_values,
                                   max_length=512,
                                   use_cache=False,
                                   num_beams=1,
                                   return_dict_in_generate=True)

You can obtain input_ids, bboxes, attention_mask and pixel values using the UdopProcessor:
processor = UdopProcessor.from_pretrained("udop_model", apply_ocr=True)
encoding = processor(images=image, return_tensors="pt").to(device)

For finetuning, you can follow the Pix2Struct tutorial. Just be sure to also include words and bboxes in your dataloader, as Pix2Struct only takes images as input.

Hi @sromoam, for inference you can use the standard generate() method:
model = UdopForConditionalGeneration.from_pretrained("udop_model")
outputs = model.generate(input_ids=input_ids,
                                      bbox=bbox,
                                      attention_mask=attention_mask,
                                      pixel_values=pixel_values,
                                   max_length=512,
                                   use_cache=False,
                                   num_beams=1,
                                   return_dict_in_generate=True)

You can obtain input_ids, bboxes, attention_mask and pixel values using the UdopProcessor:
processor = UdopProcessor.from_pretrained("udop_model", apply_ocr=True)
encoding = processor(images=image, return_tensors="pt").to(device)

For finetuning, you can follow the Pix2Struct tutorial. Just be sure to also include words and bboxes in your dataloader, as Pix2Struct only takes images as input.

can you please provide which libraries did you import for UdopForConditionalGeneration as i am getting error like this
error : ImportError: cannot import name 'UdopForConditionalGeneration' from 'transformers'

Hi @sromoam, for inference you can use the standard generate() method:
model = UdopForConditionalGeneration.from_pretrained("udop_model")
outputs = model.generate(input_ids=input_ids,
                                      bbox=bbox,
                                      attention_mask=attention_mask,
                                      pixel_values=pixel_values,
                                   max_length=512,
                                   use_cache=False,
                                   num_beams=1,
                                   return_dict_in_generate=True)

You can obtain input_ids, bboxes, attention_mask and pixel values using the UdopProcessor:
processor = UdopProcessor.from_pretrained("udop_model", apply_ocr=True)
encoding = processor(images=image, return_tensors="pt").to(device)

For finetuning, you can follow the Pix2Struct tutorial. Just be sure to also include words and bboxes in your dataloader, as Pix2Struct only takes images as input.

can you please provide which libraries did you import for UdopForConditionalGeneration as i am getting error like this error : ImportError: cannot import name 'UdopForConditionalGeneration' from 'transformers'

solved the issue we need to have transformers version = "4.39.0.dev0"
which can be cloned from here  https://github.com/huggingface/transformers/blob/main/src/transformers/init.py
the commit on  Mar 18, 2024

zinengtang I want to use the processor with my own OCR. What should be the format of the bouding boxes? 1. Normalized with heigh and width? 2. Normalized with height and width * 1000 3. Other option?


Cardano Block examples fail to roundtrip via FlatTerm

When testing the roundtrip property for the Cardano examples, all Cardano blocks fail to roundtrip via FlatTerm.
By inspecting the input it seems that some fields such as "blockAnnotation" are not preserved.
The failure can be reproduced by running:
cabal test ouroboros-consensus-cardano:cardano-test --test-option='-p /Example/' --test-show-details=direct

blockAnnotation is Byron specific. There is nothing we can do about Byron serialization.
If you think I am wrong, please reopen the issue and we can discuss it.

Alright. We'll see what we can do on the Consensus side. Thank you @lehins


Velocity of Sound in SingleSensorSelect

There is no possibility to get the velocity of sound with SingleSensorSelect. One might just add Medium.velocityOfSound(state) to getQuantity.

You mean TFS.Sensors.SingleSensorSelect, right? Just to be sure.


Documentation update on max_concurrency behaviour in download_blob due to urllib3 connection pool limit

Type of issue
Missing information
Description
The Azure Storage SDK’s download_blob method allows users to set the max_concurrency parameter to enable parallel downloads for blobs larger than 64MB. By increasing max_concurrency, developers can potentially speed up blob downloads by using multiple connections simultaneously.
However, the underlying implementation of download_blob relies on urllib3, which has a default connection pool size of 10. When max_concurrency is set to a value higher than the default pool size, this triggers a warning:
Connection pool is full, discarding connection
This behaviour can lead to inefficiencies and confusion, as developers may assume max_concurrency controls the number of connections directly, without realising that the connection pool size needs to be adjusted accordingly.
Suggested Improvements:
1.	Documentation Update: It would be helpful if the official documentation for `download_blob` clearly stated that increasing `max_concurrency` beyond the default connection pool size requires explicitly configuring the connection pool (e.g., through requests.Session() or a similar method).
2.	Proactive Guidance: Adding a note or example in the documentation on how to configure the `BlobServiceClient` to adjust the pool size based on the intended `max_concurrency` would prevent potential issues and improve user experience.

This small clarification can prevent warnings and ensure that users get the expected performance when downloading large blobs with high concurrency.
Page URL
https://learn.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.blobclient?view=azure-python#azure-storage-blob-blobclient-download-blob
Content source URL
https://github.com/MicrosoftDocs/azure-docs-sdk-python/blob/main/docs-ref-autogen/azure-storage-blob/azure.storage.blob.BlobClient.yml
Document Version Independent Id
9ee6555a-aaca-243f-409e-1ac5881e3dbc
Article author
@lmazuel
Metadata

ID: 2a557056-1da5-6c2d-fcee-e4e246a7a221
Service: azure-storage

Hi @anuragverma65 Anurag, thanks for bringing this to our attention. Could you please send us your sample code which triggers this warning: Connection pool is full, discarding connection?

Hi @weirongw23-msft Thank you for looking into it. Sure here is a sample code which would trigger this warning (The blob should be large enough for the max concurrency is triggered, in my case, I tried it with a 1GB blob):
def download_blob(storage_account_url, credential, container_name, blob_name, max_concurrency=10):
    blob_service_client = BlobServiceClient(account_url=storage_account_url, credential=credential)
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

    stream_downloader = blob_client.download_blob(max_concurrency=max_concurrency)

    with open("downloaded_blob", "wb") as file:
        stream_downloader.readinto(file)

if __name__ == "__main__":
    STORAGE_ACCOUNT_URL = "STORAGE_ACCOUNT_URL"
    CREDENTIAL = "CREDENTIAL"
    CONTAINER_NAME = "CONTAINER_NAME"
    BLOB_NAME = "BLOB_NAME"

    download_blob(STORAGE_ACCOUNT_URL, CREDENTIAL, CONTAINER_NAME, BLOB_NAME, max_concurrency=20)

If we set the concurrency to 10 it does not trigger the warning because it adheres to the default urllib3 connection pool limit.
To handle this issue, I am creating a session with increased pool_maxsize equal to the max_concurrency
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(pool_maxsize=20)
session.mount("https://", adapter)

and passing it to the the BlobServiceClient

Hi @anuragverma65 Anurag, thank you for being patient and for your feedback. We've updated the documentation to include the connection pool note for all upload/download APIs across the Storage SDK, and we will consider providing a sample for how to configure the underlying connection pool size in the future.

@weirongw23-msft Peter, thank you so much for your quick resolution of this issue!


Component extensions use == null instead unity's Object.bool

Overview
Same in: https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/3691
Changes:

Fixes: #...

Breaking Changes:

Breaks...

PR has wrong assumptions. Closing.


Remove dead code in ReasonPhrases.

More cleanup? Not sure if we want to keep as a public API though.
We should probably unify this with https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.WebUtilities/ReasonPhrases.cs.
cc @halter73 @mikeharder @Tratcher

:shipit:


Make string type easier to view in debugger

Right now the String type holds a single pointer to a reference-counted copy-on-write payload of type StringBuffer. To minimize the number of allocations, the char data of the string is stored directly after the bytes of the StringBuffer.
This works well enough, but it means that when debugging (without a custom .natvis file) the text content of a string isn't visible without either calling a method on it, or doing a messy (char*) (str.buffer.pointer + 1)
A better design (for debugging) would make the String type point to the storage directly, and then access the extra fields in the buffer as ((StringBuffer*) ptr) - 1.
The big change here would be doing all the reference-count update logic directly, rather than relying on RefPtr to do it.

Note: I thought this could potentially be solved using .natvis files, but even though they can be embedded in a .pdb, visual studio will not load them in a project that links against Slang. It is worth it to improve this as much as possible.


It possible to use hev-sock5-tunnel in macos developer id ?

because when I using hev-sock5 in developer id it print this error and macos packet tunnel not starting
NESMVPNSession[Primary Tunnel:zVPN Xray :(null)]: failed to set the MTU to 9000

Emm. Is it a macos limitation?

I set MTU 1500 but still I received this error


RHOAIENG-2519 Service Mesh Test Case

There are two primary purpose for this PR:

Add new Service Mesh test case 140__service_mesh.robot
Move reusable Platform/Operator test case Keywords into common resources.

All tests passed in Jenkins.

Latest changes pass in Jenkins.


[WIP] Documenting

mirin template

eh, template.xml is already good enough, since you want to merge that asap


Support config file

Description
Currently the number of command arguments for ank-server, ank-agent and ank is increasing. For better configuration management it would be good to also support a config file which is read by the commands. The priority for parameters should be

Command arguments
Environment variables
Config file

The config file could also contain parameters which we do not want to pass as arguments, like max. retry period or similar. In any case the config file should be optional.
For the server we could support a config file at /etc/ankaios/server.toml.
For the agent maybe we can pass the location of the config file as command argument.
For the CLI a config file could be located at $HOME/.config/ankaios/ank.toml. Here contexts might be useful such that the user can switch the context for different clusters.
We should choose a format that can be parsed easy and fast. Maybe TOML is suited for that. I have tried the toml crate and it seems to be quite fast.
Goals
Support config files as an additional method to configure ank-server (prio 1), ank-agent (prio 2) and ank (prio 3).
Final result

Summary
To be filled when the final solution is sketched.
Tasks

[ ] Task 1
[ ] Task 2
[ ] ...

I can tackle this one.

A first variant of the server config file would be:
# This is a server config file with multiline strings

title = "Server Config File v1"

[server]
startup_config = './server/resources/startup_config.yaml'
# For the eventual consistency
MAX_RETRIAL_PERIOD = "300"

[server.mTLS]
mTLS_enabled = "true"

# TODO:
# INSTEAD OF THIS
# SHOULDN'T I ACTUALLY IMPLEMENT THE CREATION OF CERTIFICATES AND KEYS AS SEEN IN:
# https://eclipse-ankaios.github.io/ankaios/latest/usage/mtls-setup/

ANK_CA_PEM = '''-----BEGIN CERTIFICATE-----
MIHkMIGXAhRrcu4Zx8sBdvQZ53KiUCAV2/DSzjAFBgMrZXAwFTETMBEGA1UEAwwK
YW5rYWlvcy1jYTAeFw0yNDEyMTIwODE3MjJaFw0yNTAxMTEwODE3MjJaMBUxEzAR
BgNVBAMMCmFua2Fpb3MtY2EwKjAFBgMrZXADIQBiiJvCIsEl4yf1Iz2e30Fd/wDT
rxivpuUR8Fvf7VzW8zAFBgMrZXADQQAbyzE6hUvTfQoTcsw3WAsKzyPMlDNhRCLT
PSyvp3Pom3z7CEDlD9Oxya7j2DGBuMNN/tkcKv97KPKDg7cuVhEK
-----END CERTIFICATE-----'''
ANK_CRT_PEM = '''-----BEGIN CERTIFICATE-----
MIIBaTCCARugAwIBAgIUHLruy912SYY8oZSFN7HtOgunNgEwBQYDK2VwMBUxEzAR
BgNVBAMMCmFua2Fpb3MtY2EwHhcNMjQxMjEyMDgyMDE4WhcNMjUwMTExMDgyMDE4
WjAOMQwwCgYDVQQDDANhbmswKjAFBgMrZXADIQDU5eExO94Jp9Tz24DF0djfmSWk
FXWVGGKj9DEikvXUsKOBgzCBgDAOBgNVHREEBzAFggNhbmswEwYDVR0lBAwwCgYI
KwYBBQUHAwIwHQYDVR0OBBYEFCvA2yzJ4bntoNZ556TS3Y6MZKS6MDoGA1UdIwQz
MDGhGaQXMBUxEzARBgNVBAMMCmFua2Fpb3MtY2GCFGty7hnHywF29BnncqJQIBXb
8NLOMAUGAytlcANBAJ47m3nM6sLOMpivewGTAwsHvioTxun16pqWKD5huuKdOfpb
fAmc6cpIsiVE1cIVKU7T0fZnDpu657PpQ6r7TAE=
-----END CERTIFICATE-----'''
ANK_KEY_PEM_PATH = '${XDG_CONFIG_HOME:-$HOME/.config}/ankaios/ank-key.pem'

[server.grpc]
CHANNEL_CAPACITY = "20"
DEFAULT_SOCKET_ADDRESS = "<IP_ADDRESS>:25551"
DEFAULT_SERVER_ADDRESS = "http[s]://<IP_ADDRESS>:25551"

Another variant is:
# This is a server config file with multiline strings

title = "Server Config File v1"

[server]
startup_config = './server/resources/startup_config.yaml'

[server.mTLS]
mTLS_enabled = "true"
ANK_CA_PEM_PATH = '/etc/ankaios/certs/ca.pem'
ANK_CRT_PEM_PATH = '${XDG_CONFIG_HOME:-$HOME/.config}/ankaios/ank.pem'
ANK_KEY_PEM_PATH = '${XDG_CONFIG_HOME:-$HOME/.config}/ankaios/ank-key.pem'

[server.grpc]
CHANNEL_CAPACITY = "20"
DEFAULT_SOCKET_ADDRESS = "<IP_ADDRESS>:25551"
DEFAULT_SERVER_ADDRESS = "http[s]://<IP_ADDRESS>:25551"

Also commandArgs and commandOptions could be added.
Regarding the certificates, we could automatically generate them and insert in the config file.
Personally, I think that the private key should not be visible in the config file.

TODOs:

[ ] actual implementation
[ ] update the release script
[ ] update the install script
[ ] update documentation

On the implementation side:

[ ] implementation itself
- addition of another Config object that parses the config file and sets the initial attributes
- do the parsing of the config file before any CLI argument or parsing of environment variables so it might have the least priority
[ ] unit tests
[ ] 1 system test
- check for the according level of priority


How to create a typed dict in Numba dict[str] = list

I am trying to create a dictionary in nopython mode. This is what I have:
import numba

@numba.njit()
def func():

    d = numba.typed.Dict.empty(
        key_type=numba.types.unicode_type,
        value_type=numba.ListType(np.float64)
    )

    d["a"] = [1, 1]

    return d

print(func())

Error:
Invalid use of Function(<class 'numba.types.containers.ListType'>) with argument(s) of type(s): (Function(<class 'float'>))
 * parameterized
In definition 0:
    TypeError: typer() takes 0 positional arguments but 1 was given

@6Hhcy thanks for asking about this, how about:
import numba

@numba.njit()
def func():

    d = numba.typed.Dict()
    d["a"] = numba.typed.List((1.0, 1.0))

    return d

print(func())

You'll need at least 0.49.0RC1 to do the List constructor, but it should get you what you want.

@6Hhcy haven't heard back from you yet, was just wondering if my comment was of use at all?

Closing this issue as it seems to be resolved. If this is not the case please re-open with a comment about any item that appears to be unresolved. Many thanks.

Apologies for the late reply. I'm using v0.48...is there no way to do it in this version? Regards

@6Hhcy thanks for following up and yes, there is. But you need to set the list up in several steps.
import numba

@numba.njit()
def func():

    d = numba.typed.Dict()
    l = numba.typed.List()
    for i in (1.0, 1.0):
        l.append(i)
    d["a"] = l

    return d

print(func())

thank you


Horrible performance on a good PC

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.77.3
OS Version: 22H2

Not only VS Code, other applications made with Electron also suffer from the same problem. It turns out that animations, text selection... everything is very laggy, how can I fix this, is there a way to identify what causes these problems? My PC is high-end so I don't  understand why I'm having these performance issues on Electron based apps.
PS: I've tried the Insiders version, the same, laggy.

/needsMoreInfo
Please use this guide to provide more information: https://github.com/Microsoft/vscode/wiki/Performance-Issues#read-the-startup-timers. Thanks.

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

@sergiohzph Please hit F1 and select "Startup Performance." This will open an editor with performance marker. Please copy-paste everything from it here

@sergiohzph Thanks for the extra info. According to the numbers VS Code starts in 0.5 seconds (started until rendering text and a blinking cursor). Is that different from what you perceive (visually) or doesn't that time meet your expectations of fast?

Can you enable the FPS-meter when running the steps shown above. F1 > Toggle Dev Tools and select Rendering from the bottom overflow menu. Enable the meter and see what FPS you reach while your scenario runs

Do you see similar lag when using https://vscode.dev on Chrome or edge browser ?

Closing per above comment, can reopen if the issue persists.


Chia Plots Check "Option"

Would you add the ability to disable "chia plots check"?  Not all situations require it, and having the option to disable it would be preferred.

No problem, use plots_check_analyze_skip environment variable.  Set value true.  Already available in :test images for v0.6.7.  Released soon.

Great to hear.  Appreciate all your hard work.  Thanks for the quality apps.


Add option to select consul node name as Erlang hostname instead of ip address

This PR adds option to select node name from consul response instead of ip address. It can ce useful for applications which build its erlang node names using application@host pattern instead of application@ip.

I’m not sure. When using names instead of IPs, remote nodes still need to connect each other, which means they will need to resolve names, certainly through Consul DNS.
So basically you reach out to Consul the first time through the API, and a second time happens when you resolve names. It doesn’t seem reasonable.
Nodes can use IPs and you still can connect via their names and vice-versa AFAIK. Just the cookie must match.
So I believe this was required to easily identify each node in the cluster. Is it the reason?

Closing, something similar was implemented in #6


feat: split collections to have server and client versions

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Code quality

What is the current behavior? (You can also link to an open issue here)

We have all the mongodb collections defined in meteor/lib/collections. These are then used by both the server and the client.
They expose both async and sync methods, even though we only want to use sync methods on the client (for now), and async methods on the server (to prepare for removal of fibers). in shared code, we need to decide on a strategy.

What is the new behavior (if this is a feature change)?

By splitting the collection object so that each of the server and client have their own versions. This will let us control what methods are available in each place separately, and continue to identify and remove usages of the sync methods on the server collections. (We don't need to rush to do this, but it will be needed for Meteor 2.11)
Some collections are not being published to the client, and this isolation allows us to see that more clearly as we can skip defining those client versions.
For now the client collections reside in meteor/lib, so that the shared code in lib can use them. We will likely want to move them eventually, but that will be a much smaller and easier change.
It currently looks a bit unclear as to whether the sync methods will be usable on the client in later versions of meteor, so in the future these may need to become async too, but this lets us approach that independently to the server side.
Minimongo is fine with these being defined like this, any 'collections' used by custom publications have their definitions scattered somewhere in the ui code for a while.

Other information:

So far this is prototyped on a couple of collections, to allow for evaluating how it looks and whether to progress on it.
Most of this change is updating imports. The files containing the new definitions are of the most interest:

https://github.com/nrkno/sofie-core/blob/feat/seperate-server-client-collections/meteor/server/serverCollections.ts
https://github.com/nrkno/sofie-core/blob/feat/seperate-server-client-collections/meteor/lib/clientCollections.ts
These could be broken out to more files if necessary. I am not sure that either will get long enough to justify it.

This allows us to remove a lot of the meteor/lib/collections/* files, as most of them are simply re-exporting types that moved to corelib a while ago as well as defining the collections which are being moved as part of this.
There is an object containing all of the collections currently. I think this will not be necessary in the future, so can be removed, or at least refactored. It is being broken by this change so far
Status

[ ] Code documentation for the relevant parts in the code have been added/updated by the PR author
[ ] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

Codecov Report
Base: 68.09% // Head: 72.51% // Increases project coverage by +4.41% :tada:

Coverage data is based on head (32e9c43) compared to base (875e9ee).
Patch has no changes to coverable lines.

Additional details and impacted files
@@              Coverage Diff              @@
##           release47     #768      +/-   ##
=============================================
+ Coverage      68.09%   72.51%   +4.41%
=============================================
  Files            278       97     -181
  Lines          34706    24784    -9922
  Branches        4639     2386    -2253
=============================================
- Hits           23634    17971    -5663
+ Misses         10631     6782    -3849
+ Partials         441       31     -410

Impacted Files
Coverage Δ

meteor/lib/api/pubsub.ts

meteor/lib/collections/RundownPlaylists.ts

meteor/lib/collections/Rundowns.ts

meteor/lib/collections/Workers.ts

meteor/lib/collections/lib.ts

meteor/lib/collections/optimizations.ts

meteor/lib/main.ts

meteor/server/api/blueprints/api.ts

meteor/server/api/buckets.ts

meteor/server/api/cleanup.ts

... and 162 more

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 at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Chain after writeFile?

Some example code for this would be this:
    image.batch()
      .resize(width, height)
      .crop(biggestSize, biggestSize)
      .writeFile('big.jpg', function(err){
        // ...
      })
      .resize(mediumSize, mediumSize)
      .writeFile('medium.jpg', function () {
        // ...
      })
      .resize(smallSize, smallSize)
      .writeFile('small.jpg', function () {
        // ...
      });

This would allow me to create the sizes I need and upload them as they finish and also not require reopening each file. Right now my code is much more janky since I have to write the file and then open the new square one and resize that and resave.

writeFile is async, which makes it impossible to make in chainable in the way you described. When calling writeFile on a batch object, it first executes all the batched operations, and then writes the resulting image to disk.
Let me suggest an alternative:
// assume 'image' exists.
// avoid re-opening the image from disk by cloning the original.

// big:
image.clone(function(err, big){
    big.batch()
        .resize( /* big size */)
        .crop( /* big size */)
        .writeFile('big.jpg', function(){ /* ... */});
});

// medium:
image.clone(function(err, medium){
    medium.batch()
        .resize( /* medium size */)
        .crop( /* medium size */)
        .writeFile('medium.jpg', function(){ /* ... */});
});

// smal:
image.clone(function(err, small){
    small.batch()
        .resize( /* small size */)
        .crop( /* small size */)
        .writeFile('small.jpg', function(){ /* ... */});
});

Async should be totally fine since I don't care about the response of writeFile or expect it to be sync. All I care about is writing the current image state to a file and continuing on. I imagine writeFile's code would do something like, when called, takes the state of image caches it in memory, and starts writing it but it continues down without interrupting or caring about the previous writeFile outcome.
Your code is sort of what I have, but the main issue is that it's cloning and cropping for each size. I only need to crop it once and from that crop I can make 3 sizes of that crop. I was hoping to save a bit of CPU and speed it up by cropping and loading the image only once and only needing to resize all the other sizes based on the crop.


How to improve multilingual ocr outcome?

I need to OCR some poor quality documents which contain different alphabets e.g. german/polish/english.
I did OCR with all of the alphabets at first because I thought it would be faster (I mean: -l deu+pol+eng ).
I noticed that some characters were misidentified so I thought that result will be better after reducing the number of alphabets to those that de facto appear in the document (I checked it manually).
But after the reduction of languages, there are characters replaced incorrectly with other characters even though the first identification was correct.
Example:
Current Behavior:
-l eng+pol+deu
the result: DÖNĘR
-l eng+deu
the result: DONER
Expected Behavior:
The correct spelling: DÖNER
Is there anything what I possibly could do to improve the outcome? any additional parameters which I could use?

Environment

Tesseract Version: Tesseract Version: 4.1.1

I suggest to use the supported latest version 5.2 with a model which supports all Latin based languages, for example script/Latin (or script/Fraktur for historic texts).

Why do you think using scripts it's better then single language? How is that work? Those are models for whole alphabets?

Yes, script/Latin is basically a combination of all languages which use Latin script (English, Spanish, Italian, French, German and more).

Is there any list where I can check what languages are covered by which script?

See here:  https://github.com/tesseract-ocr/tessdata/issues/62#issuecomment-319442674
AFAIK, there is no full detailed list.
You can extract any traineddata file by using:
combine_tessdata -e ...
Then you can examine the unicharset file and the dawg file.

Isn't that answer on my own question then?
https://github.com/tesseract-ocr/langdata_lstm/blob/main/script/Latin.langs.txt

Do you possible know why script could be better then combination of single languages? (I mean, why script/Latin could be better then -l eng+deu+pol ? ) I mean some technical explanation :) how tesseract works?

Isn't that answer on my own question then?

https://github.com/tesseract-ocr/langdata_lstm/blob/main/script/Latin.langs.txt

I was not aware of this file :)
The other scripts does not have a langs.txt file.

All scripts have it :)
https://github.com/tesseract-ocr/langdata_lstm/tree/main/script
(at the bottom of the page)

:)
I didn't notice it. I entered into a few folders and didn't see langs.txt like the Latin folder has.


Successor Merkle Tree Writeup

Update the notebook to have a full outline of the successor trees that can be used as documentation and easy testing of properties.
Related to #161, as the logic is the same.

Closing because moved to 'Done'


Pass Records by reference in Report 5881 "Make Phys. Invt. Recording" and 5880 "Calc. Phys. Invt. Order Lines"

Describe the request
Hello, please, pass these parameters by reference:

"Phys. Invt. Order Line" by reference in the Event OnCheckOrderLineOnAfterSetFilters, Report 5881 "Make Phys. Invt. Recording".

"Phys. Invt. Record Header", "Phys. Invt. Record Line" by reference in the Event OnPhysInvtOrderLineOnAfterInsertRecordingLine,
Report 5881 "Make Phys. Invt. Recording".

"Item" by reference in the Event OnAfterSetWhseEntryFilters, Report 5880 "Calc. Phys. Invt. Order Lines".

Report 5881 "Make Phys. Invt. Recording"
OnCheckOrderLineOnAfterSetFilters

Current:

[IntegrationEvent(false, false)]
local procedure OnCheckOrderLineOnAfterSetFilters(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; PhysInvtOrderLine: Record "Phys. Invt. Order Line")
begin
end;

Should be:

[IntegrationEvent(false, false)]
local procedure OnCheckOrderLineOnAfterSetFilters(var PhysInvtRecordLine: Record "Phys. Invt. Record Line";
var PhysInvtOrderLine: Record "Phys. Invt. Order Line")
begin
end;
Report 5881 "Make Phys. Invt. Recording"
OnPhysInvtOrderLineOnAfterInsertRecordingLine

Current:

[IntegrationEvent(true, false)]
local procedure OnPhysInvtOrderLineOnAfterInsertRecordingLine (PhysInvtOrderHeader: Record "Phys. Invt. Order Header"; PhysInvtOrderLine: Record "Phys. Invt. Order Line"; PhysInvtRecordHeader: Record "Phys. Invt. Record Header"; PhysInvtRecordLine: Record "Phys. Invt. Record Line")
begin
end;

Should be:

[IntegrationEvent(true, false)]
local procedure OnPhysInvtOrderLineOnAfterInsertRecordingLine (PhysInvtOrderHeader: Record "Phys. Invt. Order Header"; PhysInvtOrderLine: Record "Phys. Invt. Order Line";var PhysInvtRecordHeader: Record "Phys. Invt. Record Header";
var PhysInvtRecordLine: Record "Phys. Invt. Record Line")
begin
end;
Report 5880 "Calc. Phys. Invt. Order Lines"
OnAfterSetWhseEntryFilters

Current:

[IntegrationEvent(false, false)]
local procedure OnAfterSetWhseEntryFilters(var WhseEntry: Record "Warehouse Entry"; ItemLedgEntry: Record "Item Ledger Entry"; Item: Record Item)
begin
end;

Should be:

[IntegrationEvent(false, false)]
local procedure OnAfterSetWhseEntryFilters(var WhseEntry: Record "Warehouse Entry"; ItemLedgEntry: Record "Item Ledger Entry";var Item: Record Item)
begin
end;
Additional context
This is necessary to enable the ability to receive record filters when subscribing to the event.
Internal work item: AB#497995

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 18608.


postgres: Comments on check doesn't work. If the check expression has AND, even if they are exactly the same, atlas still will delete and recreate the constraints

Atlas version: 0.29.0
Postgres version: 17
Example hcl:
schema "public" {
  comment = "standard public schema"
}

table "test_table" {
	schema = schema.public

	column "id" {
		type = int
	}
	primary_key {
		columns = [column.id]
	}

	column "value" {
		type = int
	}

	check "value_check" {
		comment = "This is a comment"
		expr = "value > 0 AND value < 1000"
	}
}

What I saw after running atlas schema apply：
Planning migration statements (1 in total):

  -- modify "test_table" table:
    -> ALTER TABLE "public"."test_table" DROP CONSTRAINT "value_check", ADD CONSTRAINT "value_check" CHECK (value > 0 AND value < 1000);

Hey! Do you use a dev-database in your commands? See: https://atlasgo.io/concepts/dev-database

Ok, this fix issue.

And if i change the name of the check, will still show the message: "Schema is synced, no changes to be made"

I think some better info is needed here:
For example: ”If the dev database is not set, Atlas cannot validate the check constraints, which causes Atlas to drop and recreate them.“

What command do you use?

atlas schema apply -u $env:DATABASE_URL --to=file://schema.pg.hcl --dev-url $env:DEV_DATABASE_URL

Digging a little deeper, Atlas only detects changes if I change the check expression.

Yes, this was intentional some time ago (before the dev-database was added to Atlas). We will change this in the upcoming release.


Why??

Gameserver.js had this config set to 0, so why not set this to 0? Makes it realistic anyways.

I forgot to change it after testing.


[ci] run CI on pull requests targeting release/ branches

Based on @guolinke 's suggestion in https://github.com/microsoft/LightGBM/pull/5525#issuecomment-1272332768, I'd like to try targeting PR #5525 at a branch, release/v3.3.2, which only contains:

v3.3.2 of LightGBM
CI scripts and configs from master

That would allow us to try to run all of LightGBM's CI over the potential v3.3.3 release (we'll see if that works!).
This PR proposes modifying the configs for GitHub Actions and Azure Devops so that CI jobs will be triggered on all ~branches~ PRs targeting branches with a name like release/*.
Once this is merged, I'll update #5525.
Notes for reviews
Documentation for how these configs work:

GitHub Actions: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
Azure: https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/pr?view=azure-pipelines#pr-branchfilter-list

It isn't necessary to modify the Appveyor config....I believe it just builds for all branches automatically.

thanks so much for the quick review, @jmoralez !


Redux action creators?

https://medium.com/@tannerlinsley/jumpsuit-jumpstate-level-up-with-new-thunk-saga-killing-features-f3d7760f5477

or jumpsuit idk


v0.3.1 Manual tests

to #740
I cant perform the guided tour tests.
How do I reenable the guided tour?
Basics

[ ] I added a line to /doc/CHANGELOG.md
[x] The PR is rebased with current master.

[x] References to issues, e.g. close #X, are in the commit messages.
[ ] The buildserver is happy.

Checklist

[ ] I have installed and I am using pre-commit hooks
[ ] I fully described what my PR does in the documentation
(not in the PR description)
[ ] I fixed all affected documentation
[ ] I fixed the introduction tour
[ ] I wrote migrations in a way that they are compatible with already present data
[ ] I fixed all affected decisions
[ ] I added unit tests for my code
[ ] I added code comments, logging, and assertions as appropriate
[ ] I translated all strings visible to the user
[ ] I mentioned every code or binary not directly written or done by me in reuse syntax
[ ] I created left-over issues for things that are still to be done
[ ] Code is conforming to our Architecture
[ ] Code is conforming to our Guidelines
(exceptions are documented)
[ ] Code is consistent to our Design Decisions

Review

[ ] I've tested the code
[ ] I've read through the whole code
[ ] Examples are well chosen and understandable

Thx for doing the tests :rocket:, you are a super-early :clock11:, not everything for the release is merged yet: see https://github.com/ElektraInitiative/PermaplanT/milestone/4
Note: In #714 I modified one test so that it succeeds now.

I cant perform the guided tour tests.

Wait a bit until #735 is merged.

How do I reenable the guided tour?

Either resetting the DB or using a different user.  #738 will hopefully provide a (partial) fix.

I cant perform the guided tour tests.
How do I reenable the guided tour?

@4ydan It is currently not possible, either you use local deployment, pr.permaplant.net or you create a new user.
For future: you could abort in the last step and tell that you want to continue next time.

I tested the tour on localhost.


arity of PositionalParamSpec

Hello,
I'm trying picocli instead of groovy CliBuilder because of nice subcommands feature ☺
I have issue with help, i.e. i don't know how to say that there should be only one required value at the end of args. Like $ tool ./my_file.txt
I've used this configuration and help says that FILE is array
static void main(String[] args) {
        CommandSpec cmdSpec = CommandSpec.create()
                .mixinStandardHelpOptions(true)
                .name('tool')
                .version('0.0.0')
                .addPositional(
                PositionalParamSpec.builder()
                        .paramLabel('FILE')
                        .arity('1')
                        .type(String)
                        .description('Path to file')
                        .build())

        CommandLine cmdLine = new CommandLine(cmdSpec)
        ParseResult pr = cmdLine.parseArgs(['-h'] as String[])

        CommandLine.printHelpIfRequested(pr)
    }

Usage: tool [-hV] FILE...
      FILE...     Path to file
  -h, --help      Show this help message and exit.
  -V, --version   Print version information and exit.

expected
Usage: tool [-hV] FILE
      FILE     Path to file
...

Is such behaviour an issue or I misconfigured my picocli
p.s.
And in would be nice to have next for .arity('0..1')
Usage: tool [-hV] [FILE]
      FILE     Path to file
...

Thanx

The default index range is “0..*”, so multiple arguments can be captured by this PositionalParamSpec.
Try setting builder.index(“0”) to match only the argument at the first position.

@remkop thank you for the quick reply.
Thank you ! That is what i was looking for. I guess I didn't catch relation between arity and index for PositionalParamSpec

You’re very welcome! Enjoy using picocli!
I’ll close this one but feel free to create more tickets.


Add metal back into CI

@flaub - You can ignore the Amplify Web Preview failure for now and merge if all other tests pass. I disabled the app that was working and am testing the one created with Terraform.


Can someone help me debug my code for this event listener & say function?

Hey all! I'm new to this package and have been working on a slackbot to auto-reply to all posts in a specific channel. I've been trying this for like 5 hours now and am not making any progress, so I figured I'd share with this community & see if anyone had some pointers. It says that the bolt app has been working in the terminal.
Reproducible in:
pip freeze | grep slack
python --version
sw_vers && uname -v # or `ver`

The slack_bolt version
slack-bolt==1.13.0
slack-sdk==3.15.2
Python runtime version
Python 3.8.5
OS info
ProductName:	macOS
ProductVersion:	11.5.2
BuildVersion:	20G95
Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))

Enable socket mode on the app
allow slackbot to have access to message.channels event
Run app.py file (see below)

import os
# Use the package we installed
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
import re

# Initializes your app with your bot token and signing secret
app = App(
    token=os.environ["SLACK_BOT_TOKEN"]
)

# Add functionality here

@app.event("message.channels")
def auto_reply(event, say):
    try:
        if event['channel'] == 'C03DB6U9U8Y': #if statement clarifying channel to watch for
            say("An IL specialist will be with you shortly")
    except Exception as e:
        logger.error(f"Error publishing home tab: {e}")

# Start your app
if __name__ == "__main__":
    SocketModeHandler(app, os.environ["SLACK_APP_TOKEN"]).start()

Expected result:
Error log telling me what's going on or a successful auto-reply to the messages
Actual result:
No error logged in the terminal, no auto-reply.
Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

@irrational-labs Can you turn on debug logging and share the output that you see when you trigger this event in your workspace?

@srajiang thank you for the super fast reply! here you go :)
'''DEBUG:slack_bolt.App:Sending a request - url: https://www.slack.com/api/auth.test, query_params: {}, body_params: {}, files: {}, json_body: None, headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': '(redacted)', 'User-Agent': 'Bolt/1.13.0 Python/3.8.5 slackclient/3.15.2 Darwin/20.6.0'}
DEBUG:slack_bolt.App:Received the following response - status: 200, headers: {'date': 'Fri, 22 Apr 2022 22:13:24 GMT', 'server': 'Apache', 'x-powered-by': 'HHVM/4.153.1', 'access-control-allow-origin': '*', 'referrer-policy': 'no-referrer', 'x-slack-backend': 'r', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload', 'access-control-allow-headers': 'slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, x-b3-sampled, x-b3-flags', 'access-control-expose-headers': 'x-slack-req-id, retry-after', 'x-oauth-scopes': 'app_mentions:read,channels:history,channels:join,channels:manage,channels:read,chat:write.customize,chat:write.public,chat:write,files:read,files:write,groups:history,groups:read,groups:write,im:history,im:read,im:write,links:read,links:write,mpim:history,mpim:read,mpim:write,pins:read,pins:write,reactions:read,reactions:write,reminders:read,reminders:write,team:read,usergroups:read,usergroups:write,users:read,users:write,users.profile:read', 'expires': 'Mon, 26 Jul 1997 05:00:00 GMT', 'cache-control': 'private, no-cache, no-store, must-revalidate', 'pragma': 'no-cache', 'x-xss-protection': '0', 'x-content-type-options': 'nosniff', 'x-slack-req-id': '62406de6621cf3cba0afa3292e9944b4', 'vary': 'Accept-Encoding', 'content-type': 'application/json; charset=utf-8', 'x-envoy-upstream-service-time': '17', 'x-backend': 'main_normal main_bedrock_normal_with_overflow main_canary_with_overflow main_bedrock_canary_with_overflow main_control_with_overflow main_bedrock_control_with_overflow', 'x-server': 'slack-www-hhvm-main-iad-wadv', 'x-slack-shared-secret-outcome': 'no-match', 'via': 'envoy-www-iad-gn7k, envoy-edge-iad-k0yh', 'x-edge-backend': 'envoy-www', 'x-slack-edge-shared-secret-outcome': 'no-match', 'connection': 'close', 'transfer-encoding': 'chunked'}, body: {"ok":true,"url":"https://behavioral-design-bc.slack.com/","team":"Behavioral Design Bootcamp","user":"il_autoreply_coach","team_id":"T018T2H4T1T","user_id":"U03C5Q4BSB1","bot_id":"B03CZ1A20JV","is_enterprise_install":false}
INFO:slack_bolt.App:⚡ Bolt app is running! (development server)'''

@srajiang this was the initial debug screen, when I trigerred the event from the workspace nothing happened :(
I'm using the bot & app tokens I was given, so not too sure what the issue is

Okay let's check that you've subscribed to the message.channels event. Can you head to your Slack App configuration page > Event Subscriptions and check that you're subscribed to the event that you want to listen for?
Sarah

hmm i tried doing that as well and it still didn't work or show a bug on the log. my workplace is the free version, do you think that would affect anything? @srajiang

@srajiang i made a rookie mistake and accidentally was drawing from a blank template file... used the real code and it works now. thanks for your help!

@irrational-labs - Oh sweet, glad to know you were able to get it working!


refactor: add c_like_utils

Codecov Report

Merging #92 (c0f986e) into master (0096705) will not change coverage.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff            @@
##            master       #92   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           13        14    +1
  Lines          434       435    +1
  Branches        49        49
=========================================
+ Hits           434       435    +1

Impacted Files
Coverage Δ

string_to_code/c_like_utils.py
100.00% <100.00%> (ø)

string_to_code/to_c.py
100.00% <100.00%> (ø)

string_to_code/to_cpp.py
100.00% <100.00%> (ø)

string_to_code/to_java.py
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.


Fix the example and some minor typos

Fix the command name and some minor typos

LGTM! Thanks for cleaning up my hasty docs.

LGTM! Thanks for cleaning up my hasty docs.

Great job! Should this module also support Brave browser? Brave is also based on Chromium.

Great job! Should this module also support Brave browser? Brave is also based on Chromium.

@alexandair yes, you can specify the path vault parameters to point it to any chromium-based browser, I can add it to the autodiscovery list too if you can give me the path where it lives.
The vault parameter configuration I plan to expose an additional cmdlet since it is not very discoverable at the moment and there are no plans within SecretManagement to make it easier.

@alexandair yes, you can specify the path vault parameters to point it to any chromium-based browser, I can add it to the autodiscovery list too if you can give me the path where it lives.
The vault parameter configuration I plan to expose an additional cmdlet since it is not very discoverable at the moment and there are no plans within SecretManagement to make it easier.

@JustinGrote I don't have a clue where Brave stores the secrets. I don't see anything related to the vault in "User Data" folder under BraveSoftware in AppData.

@JustinGrote I don't have a clue where Brave stores the secrets. I don't see anything related to the vault in "User Data" folder under BraveSoftware in AppData.

@alexandair this worked for me.

File it as a separate issue and I'll look into adding autodetection.

@alexandair this worked for me.

File it as a separate issue and I'll look into adding autodetection.


Too much "over-abstraction" in early version.

We are still in the early stages, and the number of lines of code I envision should be much fewer than what we have now. From an abstract perspective, one important consideration is to focus on what parts of the system are likely to change. We only need to make appropriate abstractions for things that might change, rather than making all "concepts" extensible at once. Doing so would greatly increase the complexity of the system and obscure its core issues. This reminds me of some terrifying meetings in the past, dominated by Java frameworks: reading the code made it almost impossible to intuitively understand any flow, because every function was just an interface definition. After half an hour of reading, I still didn't understand "how the system iterates or safely completes a backup task with exception handling."
From the perspective of our goals, the core design of the backup_suite is to solve the following key issues:

BackupTarget is extensible (this is the main direction of extension).
The extensibility of BackupSource is limited; implementing one LocalDirSource should be almost sufficient.
task_mgr / engine hardly needs to be extended. Most of the other components in the system are passive components, and task_mgr should act as a driver, managing various details and processes (it doesn't always have to be elegant). This will clarify the boundaries of other components, and we can refactor this gradually.
Meta (the name isn't great, it's too generic; I understand it as BackupTaskDb) doesn't need to be considered for extensibility. As long as correctness is ensured, implementing one based on MetaDB is enough.
Integration with buckyos. I understand that many of the extensibility designs in Meta are for future integration with buckyos, but I don't think it's necessary to think about that at this early stage. We should focus on building a solid and standalone backup product first. A simple and reliable implementation can be easily reused in another system.

Keeping things simple is not easy. It requires a deep understanding of the system's critical complexities.

Our abstraction primarily focuses on Source and Target. The Traits related to Engine, Task, and CheckPoint are mainly to clearly outline their interfaces and functional boundaries during the design phase. Storage is mainly considered for potentially supporting different databases in the future.

Additionally, the database records various transmission-related information. I hope that plugin developers can easily extend functionalities based on these features. They should focus only on the target storage providers they want to support, without worrying about the storage and recovery of transmission states. In the Engine, there are several steps at each stage:

Preprocess to obtain a state (implemented by the plugin)
Save the state (implemented by the Engine)
Execute a process using this state (implemented by the plugin)
Move to the next state

This approach can guide plugin developers to consciously break down the process into several steps, thereby reducing the risks associated with process re-entry.
A classic scenario is blockchain transactions:

Generate tx
Save tx
Deliver tx

However, this also introduces a lot of complexity. Once this part is introduced into the Engine, it becomes very abstract. Several tables in the database are used to save the state of the Target plugin:

task_source_state: Saves the original state and mirror state of the Source when initiating a backup, for state recovery upon backup completion.
checkpoint_transfer_map: Saves the Map of each data block to the Target transfer address.
checkpoint_key_value: The Target might have some items to store.

I understand the problem the current design aims to solve. My primary concern is that the design is not well-balanced at this stage:

At this stage of the code, the priority should be on achieving a simple (simple is definitely reliable) and high-performance solution for completing a typical backup task.
In terms of extensibility, it should be enough for us to focus on extending the backup target. I believe there won't be much demand for extending the backup source in the short term (if we can support directories backup source well, that would be great).
We don't need to make the entire framework extensible everywhere when the overall structure is not yet fully determined. In practice, providing some simple components and later combining them for new scenarios is much simpler and more intuitive than solving problems within a framework using various post/pre/hooks.

Our abstraction primarily focuses on Source and Target. The Traits related to Engine, Task, and CheckPoint are mainly to clearly outline their interfaces and functional boundaries during the design phase. Storage is mainly considered for potentially supporting different databases in the future.

Sorry, I have lost something, In my design, Source, Engine, and Target are three independent processes that interact with each other via HTTP protocol. Consequently, the implementation of Engine, Task, and CheckPoint resides within the Engine itself, with no abstraction layers. However, for Source, Target, and the integrated product, an HTTP client implementation is required to remotely call the corresponding interfaces in the Engine.
The need for abstraction arises from the implementation requirements rather than from an extensibility design perspective.
@waterflier