fix: __filename is not defined in ES module scope when using eslint.config.mjs

Oversight from #569
Oops!

@veritem tagging you for visibility. I messed up 😂.

Currently, getting an error with eslint 😢
ReferenceError: __filename is not defined in ES module scope


Update drafts on topic name changes.

Fixes #22068.
Manually tested that topic name changes and timestamp doesn't change. Manually tested that timestamps still update for normal draft updates.

Thanks for working on this @evykassirer! I posted a couple comments.
I guess given the comments above, it's worth testing some corner cases around the stream name -- e.g. streams created with the stream field empty as well as with a different stream.

can you explain more what you mean by:

streams created with the stream field empty

Are there existing tests for renaming or resolving topics? I looked a bit and couldn't find any so far and thought there might be a reason (e.g. it's hard to write tests for this part of the code). Do you have a recommendation for where/how to set up tests around this?

Nice! Looks like the topic name in the drafts UI doesn't live-update, which I don't think is a big deal, but figured I'd mention it in case it's easy to address.

I don't see anywhere where it doesn't live update -- I might be looking in the wrong place? Can you share more details on what you're seeing?

I had the drafts UI open in one Zulip window, and edited the topic name in another window. The topic name in the list of drafts didn't change, but when I clicked on the draft, it did go to the right place.

Ah yeah, I'm pretty sure that would involve a more involved change which wouldn't be worth it imo.

Are there existing tests for renaming or resolving topics?

I don't think we have good tests for this. frontend_tests/node_tests/message_events.js is the main test module that exists for this. (Usually we'll name test modules after the module that actually does the thing). If I were to add a node test for this code path, I'd add it there, by having that test setup a draft first. Could be a good follow-up but I think not a blocker for this.

@evykassirer I did a review of this and ended up pushing back with a few extra commits; can you test the updated version (and review my new commits)? I think this should be correct and fixes a few bugs, but it could definitely benefit from an additional read.
If you're interested, both the BUG comment noted in the last commit and the TODO comment in the block just above it are both reasonable follow-ups while we're working in this codebase. I think the BUG is likely easy to fix (you can likely reproduce, at least at a console.log level, by using the browser console to mark one browser offline while another does multiple edit operations). But the TODO one is I think much more impactful -- in that probably 90%+ of rerender calls that happen in that code path is a waste of time, because none of the messages that were edited could possibly appear in the relevant view.

Yeah these changes seem reasonable to me and I'm pretty sure they "work", other than the bug, locally (it's a bit tricky to keep my eyes on the right places at the right times).
How would you feel about merging at least the drafts part, since that seems pretty separate from this bug, or this whole PR, and I can work on the BUG and TODO in a followup PR?

Yeah I phrased it as "reasonable follow-ups while we're working in this codebase" because I think we should merge this as-is without blocking on that. I just wanted you to check my work before merging, since I didn't manually test myself while writing the above refactor.
Merged, thanks @evykassirer!

@evykassirer just to check, have you had a chance to work on the follow-ups discussed above, or should we file an issue to make sure we don't lose track of them?

Ah yes lets file issues! I can do that whenever I next sit down to do a chunk of work if you haven't already. I decided to focus on more common-UI-facing stuff instead, since that's what most motivates me and also it seems helpful to focus my time there.

#22879


Disable gstreamer in sitl gazebo.

Please rebase, thanks!

This was a test to try to fix sitl, going to close.


Showing the tag status to help contributor's decision

I believe it would be helpful to show the status(P6) of each tag as below somewhere when selecting/upgrading a tag so that people can concider if they would use it or not.

Undefined
Draft
Proposal
Voting
Abandoned
Canceled
Rejected
Approved
In use
De facto
Discardable
Obsolete
Deprecated

I suppose these values may be able to get thru Sophox though uncertain about details.
https://wiki.openstreetmap.org/wiki/Property:P6

@higa4 Hmmm I don't see us doing this. The wiki can be chaotic and contradictory. iD mappers should feel confident that all tags suggested by iD are okay to use. I'm not saying that iD's presets are perfect, but I wouldn't want to put the burden of parsing tag status onto users. Feel free to open issues for any tags you feel iD handles incorrectly!

Agree, and #6370 is a good example.


Fix/no maps to choose

With this PR the Choose Map preference in the SettingsActivity gets updated when connecting to Tango.
Fixes #225.

@mcopejans ptal

@mcopejans It does not work for the first run. In this case we start the app with the settings activity and connect to Tango only when going to the running activity.
I will make an issue for it to keep track of this.


SSB: Remove VXN

Seeing as everyone want me gone, I removed all global auth.

@DeathlyPlays I'm no longer global auth, I shouldn't be even in Sgssb

@vxxn As far as I know retired staff get to keep their staffmon according to @HoeenCoder. But I will leave this up to him.

"Since everyone wants me gone" since when?

Mystifi spammed SG with "Hoeenhero sucks" and crashed SG for 6 hours, so do you really think we want you gone dude?

Ive managed to duplicate every user on the server x30...
Userlist was a mess and i had to restart to fix it. Were people happy with me? no. Did they get over it because it was just a mistake? yes. And I didn't let it make me quit SG either, your going to make mistakes, I make them all the time. On SG and main, even Zarel screws up, sometimes really bad.

Cough cough fs refractor cough cough

Mystifi used eval to spam SG with "Hoeenhero sucks" and crashed SG for 6 hours, so do you really think we want you gone dude?

That's true, I forgot to set an interval for setInterval, so we were stuck in an infinite loop. Breaking stuff is part of the coding process, and it's part of learning as well. Toying around with /eval isn't the best thing to do, but as long as you don't abuse it too much/break any rules or the server too much, you'll be fine - especially if you apologize after doing so and learn from your mistakes.

Seeing as everyone want me gone, I removed all global auth.

As far as I know, no one wants you gone. You're a good person who has contributed to so many communities in both the chat and to the server, and that takes a lot of brain power. I understand that depression makes everything seem so one-sided; it's literally tunnel-vision. Don't get too sucked into it. If you ever need to talk to me about stuff like this, @vxxn, feel free. I've helped Hiro a couple of times, and I help people every day in The Happy Place on main.
I can't pretend to understand your situation because I've been heavily inactive as of late due to personal reasons. However, don't beat up yourself for something that isn't going to matter in a month or so.

I broke Exiled for a whole day just failing my fs refractor @vxxn THEN upon that I ddosed Exiled on accident xD you good fam


Tracking issue for peer blacklisting

What is wrong?
In working on #24 I have found that we need to first implement better blacklisting.  Without this, we end up with a pool filled with lots of mediocre or bad peers.  Loose evaluation looks like the following end up being problems.

Malicious peers:  Sends provably invalid or wrong responses.
Useless peers:

Predominantly incomplete responses.
Announced HEAD is too far behind our local HEAD

Poorly connected peers: always times out
Lazy peers: does not respond to queries they should be able to respond to.

Announced HEAD block number N, doesn't respond to query for block/header at height <= N.
Announced HEAD block number N, doesn't respond to GetNodeData for state root from block within range(N - X, N) blocks of 100, where X is somewhere in the range 64 <-> 128

How can it be fixed
I'm looking at doing the following.
First: New internal plugin that runs the blacklist tracker as a service over the event bus.  This is needed because we need to communicate with this service from many different parts of the codebase and it's not really viable to pass around a reference to the tracker to all of these different code locations.
Then, I plan to implement some version of the following rules.
Malicious peers
Immediate disconnect and put on blacklist for some appropriate amount of time.
Useless peers
Mark them as useless and blacklist for appropriate amount of time.  Disconnect oldest/random useless peer if pool is full.
Poorly connected, Lazy
Use token bucket based approach.  If token bucket is empty, disconnect and blacklist for appropriate amount of time.

Poorly connected, Lazy
Use token bucket based approach. If token bucket is empty, disconnect and blacklist for appropriate amount of time.

Here, you're measuring something like timeouts per second? So they get some leeway to have some timeouts all in a row, but their average has to stay below some watermark. Interesting. The appropriate timeout rate might be something that is worth adapting to the pool average. Maybe you have a terrible network connection and it's your fault the timeouts are happening so we don't want to churn our peers in that case? Just a thought...

Yes, I think we need a aggregate pool statistics for this to be meaningful for exactly that reason.  This also extends in the other direction towards determining what a good peer is since throughput in isolation is meaningless.

Thinking about database size, I went reaching for a mechanism to get the following two things.

Records become stale when we have not  seen that node after some period (2 weeks?)
Once a record is stale it may expire resulting in all information about it being removed from the database.
The likelihood of a given record being removed increases from 0% -> 100% across some time period (2 weeks -> 6 months?)
The distribution of this probability is such that

a value very close to the lower bound has close to zero chance of expiration
probability grows super-linearly towards 100% as time goes by

Looking to achieve this by adding an expires_at to each of the Remote table entries that gets updated everytime we touch the record in some way.  The value will be randomly picked according to the above distribution.  We can then occasionally sweep the database for records which are expired and remove them.

What's the rationale for the probabilistic expiration? No objection, just didn't follow.
It seems like a first draft that just expires everything after a month is okay, it gets something out the door that doesn't leak disk space too badly. (probably by tracking the last modified date instead of an expiration date in the DB, so that changing the expiration algorithm is trivial)

There are assumptions here so I'll measure before I run with anything.
The motivation is disk footprint and keeping the sqlite database at a reasonable size.  6 month expiration window seems like too long.  A node that is online for a continuous 6 months seems like it could build up a very large database (need to measure).  My thought is to handle the following two cases gracefully.

long running node that is online consistently doesn't build up too much data.
node that only comes online occasionally, maybe even with some long-ish offline periods still maintains some network data to facilitate quick startup.

So I want to prune data from this database, but do it such that it thins the data out over time rather than a hard cuttoff to allow for a long tail of historical data that should still be able to facilitate the node re-connecting quickly.
Mechanism may sound complex but implementation should be as simple as a single small function like expire_seconds = TWO_WEEKS + SIX_MONTHS * (1 - random.random(0, 1)**4) and an occasional task that sweeps the database of any records who's expiration has passed.
I mostly wrote this down to remember it.  I'm not convinced it is necessary but the mechanism seems simple enough and should behave in a manner that satisfies the two edge cases above nicely.

So I want to prune data from this database, but do it such that it thins the data out over time rather than a hard cuttoff to allow for a long tail of historical data that should still be able to facilitate the node re-connecting quickly.

Ah, so maybe the goal is to thin out the old nodes, but only thin them out if we have enough nodes in the DB to connect to. Maybe as simple as a rule to only thin out if there are fewer than 1000 entries, or something like it.

Mechanism may sound complex but implementation should be as simple as a single small function like expire_seconds = TWO_WEEKS + SIX_MONTHS * (1 - random.random(0, 1)**4) and an occasional task that sweeps the database of any records who's expiration has passed.

My concern isn't that the code is difficult, but wanting to make it easier to answer the question "why am I not trying to reconnect to this node anymore."
:+1:


Change the access level of class PoolThreadLocalCache to private

Motivation:
The inner class PoolThreadLocalCache is only used within the class PooledByteBufAllocator, so it's better to change its access level to private.
Modification:
Change the access level of class PoolThreadLocalCache to private.
Result:
Change the access level of class PoolThreadLocalCache to private.

@laosijikaichele thanks!


Fix issues with compiling on other platforms.

riscv64gc-unknown-linux-gnu has this issue - --target will not work when compiling natively on RISC-V with Clang.

Thanks for the PR! This isn't only used for cross compilation, however, because sometimes the target that we pass to clang will configure other target features. I think i586 vs i686 is one example, but the ARM targets I believe are another example.

yeah but this ONLY if target triple != host triple

Hm I don't think I was clear, but even if the Rust host and the Rust target is the same that does not mean that the C compiler's default target will match the host. The reason we pass --target is to guide clang to match the default codegen options of the Rust target as much as we can, ensuring that target features and such all agree between the Rust code and the C code. This is primarily needed, for example, between soft and hard float ARM targets.

   Compiling tiny-skia v0.1.0 (/home/bananaduck/tiny-skia)
The following warnings were emitted during compilation:

warning: error: unknown target triple 'riscv64gc-unknown-linux-gnu', please use -triple or -arch
warning: error: unknown target triple 'riscv64gc-unknown-linux-gnu', please use -triple or -arch

error: failed to run custom build command for `tiny-skia v0.1.0 (/home/bananaduck/tiny-skia)`

Caused by:
  process didn't exit successfully: `/home/bananaduck/tiny-skia/target/debug/build/tiny-skia-bd7270553045d8f9/build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-env-changed=SKIA_DIR
  cargo:rerun-if-env-changed=SKIA_LIB_DIR
  TARGET = Some("riscv64gc-unknown-linux-gnu")
  OPT_LEVEL = Some("0")
  HOST = Some("riscv64gc-unknown-linux-gnu")
  CXX_riscv64gc-unknown-linux-gnu = None
  CXX_riscv64gc_unknown_linux_gnu = None
  HOST_CXX = None
  CXX = Some("clang++")
  CXXFLAGS_riscv64gc-unknown-linux-gnu = None
  CXXFLAGS_riscv64gc_unknown_linux_gnu = None
  HOST_CXXFLAGS = None
  CXXFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  running: "clang++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=riscv64gc-unknown-linux-gnu" "-I" "skia" "-I" "skia/include/third_party/skcms" "-I" "skia-c" "-Wall" "-Wextra" "-std=c++17" "-fPIC" "-fno-exceptions" "-fno-rtti" "-fstrict-aliasing" "-fvisibility=hidden" "-fdata-sections" "-ffunction-sections" "-fvisibility-inlines-hidden" "-Wno-unused-function" "-Wno-unused-parameter" "-Wno-unused-private-field" "-DSK_DEBUG=1" "-o" "/home/bananaduck/tiny-skia/target/debug/build/tiny-skia-4bef71dec26abd79/out/skia/src/core/SkAAClip.o" "-c" "skia/src/core/SkAAClip.cpp"
  cargo:warning=error: unknown target triple 'riscv64gc-unknown-linux-gnu', please use -triple or -arch
  exit code: 1
  running: "clang++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=riscv64gc-unknown-linux-gnu" "-I" "skia" "-I" "skia/include/third_party/skcms" "-I" "skia-c" "-Wall" "-Wextra" "-std=c++17" "-fPIC" "-fno-exceptions" "-fno-rtti" "-fstrict-aliasing" "-fvisibility=hidden" "-fdata-sections" "-ffunction-sections" "-fvisibility-inlines-hidden" "-Wno-unused-function" "-Wno-unused-parameter" "-Wno-unused-private-field" "-DSK_DEBUG=1" "-o" "/home/bananaduck/tiny-skia/target/debug/build/tiny-skia-4bef71dec26abd79/out/skia/src/core/SkAlphaRuns.o" "-c" "skia/src/core/SkAlphaRuns.cpp"
  cargo:warning=error: unknown target triple 'riscv64gc-unknown-linux-gnu', please use -triple or -arch
  exit code: 1

  --- stderr

  error occurred: Command "clang++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=riscv64gc-unknown-linux-gnu" "-I" "skia" "-I" "skia/include/third_party/skcms" "-I" "skia-c" "-Wall" "-Wextra" "-std=c++17" "-fPIC" "-fno-exceptions" "-fno-rtti" "-fstrict-aliasing" "-fvisibility=hidden" "-fdata-sections" "-ffunction-sections" "-fvisibility-inlines-hidden" "-Wno-unused-function" "-Wno-unused-parameter" "-Wno-unused-private-field" "-DSK_DEBUG=1" "-o" "/home/bananaduck/tiny-skia/target/debug/build/tiny-skia-4bef71dec26abd79/out/skia/src/core/SkAAClip.o" "-c" "skia/src/core/SkAAClip.cpp" with args "clang++" did not execute successfully (status code exit code: 1).

@luxxxxy that's just a paste of something where I don't know what's going on, can you take some time to explain that to me?

@alexcrichton Compilation on a RISC-V host with Clang fails due to it passing --target, which errors.
This specific package using cc-rs requires clang over gcc, too.

@luxxxxy sorry but I think you're not understanding my comments. I understand that for your particular platform --target causes errors. What I am explaining is that this patch cannot be accepted by simply removing --target for all platforms. There are platforms like Arm where the Rust toolchain may differ in default features from the C toolchain, so --target is required to get the two to align.

@alexcrichton I understand, I was just hoping that you'd have a better solution if I explained better.


Stale Content?

In the "What not to do" section the document says not to have "Have too many top-level parent portal site collections". Isn't this what MS now recommends? And the solution is to manage some of those Site Collections with Hub Sites?
I am worried that this page may be confusing to new SP Architects.

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

ID: 8babdc28-eedd-9d34-076d-1a7bf3aed73a
Version Independent ID: 0e50151b-2d9c-1838-7c2b-6cc01723222c
Content: Information architecture guidance for SharePoint Online portals
Content Source: docs/solution-guidance/portal-information-architecture.md
Product: sharepoint
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Good catch... I think it's best to follow this guidance for now: https://docs.microsoft.com/en-us/sharepoint/information-architecture-modern-experience
I'll raise this internally to see if we need to retire this page... as it seems like a stale dupe...


Adding Inferentia AI/ML Module to Workshop

What this PR does / why we need it:
Adding the AIML Module to the work shop with Inferentia lab
Which issue(s) this PR fixes:
Fixes #
Quality checks

[x] My content adheres to the style guidelines
[x] I ran make test or make e2e-test and it was successful

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Updated the pull request to resolve your comments.


How to prevent fullscreen in vim?

I've read through this https://github.com/junegunn/fzf/wiki/Configuring-FZF-command-(vim) and https://github.com/junegunn/fzf/wiki/Examples-(vim). My goal was to show fzf in bottom of my vim screen (not fullscreen). Here is my setup:
let g:fzf_height = 40
nmap <silent> <leader>p :FZF<CR>

fzf always come in fullscreen. Is there any step I miss?

You have to be on tmux, or use neovim for that. fzf is an ncurses program and basically runs in fullscreen.


feature/TECH 400 migrate to black formatter

This PR attempts to finish https://github.com/Vandebron/mpyl/pull/106
It branches from https://github.com/Vandebron/mpyl/pull/149, so best to merge that one first.

[x] Integrates format check into linting process
[x] Adds black[d] dependency to pipenv, which should set people up for using the black plugin in IntelliJ as per the instructions https://black.readthedocs.io/en/stable/integrations/editors.html#as-local-server. After pipenv install -d, the plugin was able to set up the Local instance automatically.
[x] Filter reformat commit from blame
[x] Fix some pylint warnings resulting from the reformat

Instead of me scrolling through the entire pr, I believe the only blocker @koeves mentioned is pylint. That seems to be fixed now, so we can actually push this forward Daniel or was there something else?

Instead of me scrolling through the entire pr, I believe the only blocker @koeves mentioned was pylint. That seems to be fixed now, so we can actually push this forward Daniel or was there something else?

No that was it, this PR should have everything I believe

https://github.com/Vandebron/mpyl/pull/152#discussion_r1245374830
@Jorg88, that might well be the case. I'm not a repo admin either, maybe @koeves is?
I think it would make sense to set Deploy as job for merge requirement, since it depends on the success of all other jobs.
I think you better merge https://github.com/Vandebron/mpyl/pull/149 first. Since this is PR is a follow-up


Documentation: please don't autoplay a video with sounds

The documentation for Scene contains an example video called SoundExample, which as the name suggests is an example of using sounds in Manim. However, this video is set to autoplay and loop. This confused me at first since I didn't know what produced the sound. You have to scroll down a fair bit to see that there's an audio example. This is annoying if you just want to read that page in the documentation.
It doesn't always autoplay: In Firefox, it seems to never autoplay. In Chrome, it doesn't autoplay if you go directly to the page, but it does autoplay if you come from the parent page and click Scene, for me.
The behavior might differ further between browsers. But the HTML code does request the video to be autoplayed, so it will be autoplayed sometimes in various browsers. Please make sure that this and any other example videos in the documentation that play sound don't autoplay.
<video class="manim-video" controls loop autoplay src="./SoundExample-1.mp4"></video>

I think this is a reasonable request.
Currently, there is no way for finer control of whether individual videos autoplay or not: https://github.com/ManimCommunity/manim/blob/cd40bc3baf2dfa3e46d7f2817275282200fd464f/manim/utils/docbuild/manim_directive.py#L385
The way to go is to add a new option, noautoplay to the directive that modifies the template accordingly. The option should then be set for the Scene.add_sound example.

Perhaps a simpler option that doesn't require special casing in the template is to add the muted attribute to the tag?

This issue has been fixed in #2911 but I do not know how to close it


Consider supporting VFS POST requests

Per https://github.com/c9/vfs-http-adapter#post-pathtotarget, POST requests are used for adhoc commands such as rename and copy. We could expand our current VFS implementation to support these commands.

Hi
Kudu will continue to run in Azure App Service. However, this repo will no longer be maintained.
If the problem persists and is related to running on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Add an additional prompt after the tests have been generated

Ask the user if they want to run the generated tests

vendor/bin/pest --group="filament-tests"

It should be opt-out'able

php artisan make:filament-test --dontRun (or something similar)

This might help sometimes, but it could also be really annoying. You might just want to make a couple of tests, but it keeps asking you run them. And having to specify not to ask again feels a bit weird.

Optionally could make it opt-in php artisan make:filament-test --run

Sounds like a better option yes.


Move label to the middle

Hi!
Help me please, how can i move single label to the middle of the chart?

like

Hello, today I am closing all issues that are only affecting version 1 of Chart.js as WONTFIX.
If this issue does affect version 2 as well, I apologize for the error. Please create a test case against Chart.js 2 using on of the below websites and we will be happy to reopen the issue and update its classification:

http://jsbin.com/
http://jsfiddle.net/
http://codepen.io/pen/
Premade template: http://codepen.io/pen?template=JXVYzq


feat(migration-graph-ember): when migrating a package, provide a list of unknown services or unresolved to the user

When migrating a package, provide a list of unknown services or unresolved to the user.
Add this data to a summary or a report from the migration graph.

@wonderslothets include this with #957

@wondersloth @lynchbomb I think this is a good feature (though don't think it will be very popular) to show those missing services / types / config settings in advance, before starting migration... but I think this can be implemented as a separate command (not build in graph).


Canonicalize and dedup URLs in to_rb

JSON::LD::Context#parse will only look in the PRELOADED hash with a fully canonicalized URL including replacing https with http. This means that any preloads or aliases under non-canonicalized names won't work and can't be used and will just waste memory.
This commit fully canonicalizes both the base and alias URLs (including changing https to http) and removes any duplicates.
I considered adding error checking or canonicalization in add_preloaded and alias_preloaded as well, but I'll propose that separately as compatibility is tricky.

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


Parametrize field boundary line width

This makes the field boundary line width a parameter, since 0.02 can be too small to see on a MSL field, for example.

Thanks @Flova !


CONNECT_TO is not informative and is used incorrectly

The CONNECT_TO variable is used for the NSM URL. It is not informative and should be replaced with something better, e.g "NSM_URL". This goes for all NSM modules where "CONNECT_TO" is used.
In this particular module, as a consequence of the poor naming, CONNECT_TO is incorrectly used to connect to the registry.
https://github.com/networkservicemesh/cmd-forwarder-vpp/blob/1e88454bf3b95072b3be932923aead1b24d3b351/main.go#L175-L185
I use this fix for the problem;
--- a/main.go
+++ b/main.go
@@ -56,6 +56,7 @@ type Config struct {
        NSName           string        `default:"xconnectns" desc:"Name of Network Service to Register with Registry"`
        TunnelIP         net.IP        `desc:"IP to use for tunnels" split_words:"true"`
        ConnectTo        url.URL       `default:"unix:///connect.to.socket" desc:"url to connect to" split_words:"true"`
+       RegistryURL      url.URL       `default:"tcp://nsm-registry-svc:5002" desc:"url to registry" split_words:"true"`
        MaxTokenLifetime time.Duration `default:"24h" desc:"maximum lifetime of tokens" split_words:"true"`
 }

@@ -178,8 +179,9 @@ func main() {
        now = time.Now()
        registryCreds := credentials.NewTLS(tlsconfig.MTLSClientConfig(source, source, tlsconfig.AuthorizeAny()))
        registryCreds = grpcfd.TransportCredentials(registryCreds)
+       logrus.Infof("NSM: Connecting to NSE registry %v", config.RegistryURL.String())
        registryCC, err := grpc.DialContext(ctx,
-               config.ConnectTo.String(),
+               grpcutils.URLToTarget(&config.RegistryURL),
                grpc.WithTransportCredentials(registryCreds),
                grpc.WithBlock(),
        )

Hmm... we do want the best possible naming here to provide clarity.   It happens that the Forwarder connects to the same URL for both Registry and NetworkService services...
What was the underlying bug you were seeing?  I don't quite follow.

It happens that the Forwarder connects to the same URL for both Registry and NetworkService services

Oh, sorry I was mislead by the comment. Closing

So... lets talk a bit about why you got confused.


Manage utPLSQL core compatiblity explicitely

In version v0.6 a part of the extension depends on functionality introduced with utPLSQL version 3.0.4.
It is expected that an official API will be introduced in a future utPLSQL version (>3.1.2) to replace the functionality provided by the UT_ANNOTATION_MANAGER package.
The following version numbers are used in released versions of utPLSQL:

Date
Name
Value of UT.VERSION

2017-01-18
v<IP_ADDRESS>-Alpha1

2017-05-15
v3.0.0-beta
utPLSQL - Version v<IP_ADDRESS>8-beta

2017-05-18
utPLSQL v3.0.0
utPLSQL - Version v3.0.0

2017-06-14
utPLSQL v3.0.1
utPLSQL - Version v<IP_ADDRESS>8

2017-07-18
utPLSQL v3.0.2
utPLSQL - Version v<IP_ADDRESS>8

2017-08-30
utPLSQL v3.0.3
v<IP_ADDRESS>6

2017-11-03
utPLSQL v3.0.4
v<IP_ADDRESS>2

2018-04-25
utPLSQL v3.1.0
v<IP_ADDRESS>9-develop

2018-04-29
utPLSQL v3.1.1
v<IP_ADDRESS>8

2018-07-22
utPLSQL v3.1.2
v<IP_ADDRESS>4

...
...
...

Instead of querying for the existence of UT_ANNOTATION_MANAGER the return value of the function UT.VERSION should be used to determine if a certain feature is available or not. Versions of utPLSQL without a UT.VERSION function are not supported (e.g. v<IP_ADDRESS>-Alpha1).
Features are disabled if not available in a version (context menus, oddgen generators) and a error message is written to the error log (visible in the logging pane). If not feasible an error message is shown when executing an enabled but not supported feature.

We already have a solution for "Optional Features" in java-API:
https://github.com/utPLSQL/utPLSQL-java-api/blob/develop/src/main/java/org/utplsql/api/compatibility/OptionalFeatures.java
Would be easy to add ANNOTATION_MANAGER which requires <IP_ADDRESS>2 or higher.
You can also use the Version-Object (https://github.com/utPLSQL/utPLSQL-java-api/blob/develop/src/main/java/org/utplsql/api/Version.java) for easier Version comparison/handling.
They can either be instantiated with a String or you can use DatabaseInformation.getUtPlsqlFrameworkVersion() to get the Version-Object from given Connection.

I think we should provide make a wrapper of UT_ANNOTATION_MANAGER part of the the core API first. Providing internals should not become part of the Java API.
I'd like to get rid of the use of UT_ANNOTATION_MANAGER a.s.a.p. Once an adequate functionality is available in the core, I will adapt this extension accordingly. Then I will decide if I base the solution on the Java API (additional dependency) or the PL/SQL API.
However, the getUtplsqlFrameworkVersion() is nice.


FileSystem destructor is not being called when done

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): CentOS 7
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): v1.13.1
Python version: Python 3.6.3
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

When a FileSystem is registered it is allocated in the heap, but not destroyed on exit when using a Python script.
The FileSystem destructor (~FileSystem()) must be called on exit.
Code to reproduce the issue
--- /opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/platform/file_system.h	2019-04-05 10:05:27.253673315 +0200
+++ /test/tensorflow/tensorflow/core/platform/file_system.h	2019-04-05 10:22:15.999269084 +0200
@@ -225,7 +225,7 @@

   FileSystem() { printf("create FileSystem\n"); }

-  virtual ~FileSystem();
+  virtual ~FileSystem() { printf("destroy FileSystem\n"); }
 };

Then we run python and load our FileSystem plugin:
[alexey@workstation test]$ python -c "import tensorflow as tf; tf.load_library('build/lib/libfilesystem_tensorflow.so')"
create FileSystem
[alexey@workstation test]$

Other info / logs
It is necessary for our custom FileSystem plugin to call some functions on destruction. It seems that C-style pointers are used when registering a FileSystem:
https://github.com/tensorflow/tensorflow/blob/6612da89516247503f03ef76e974b51a434fb52e/tensorflow/core/platform/env.h#L450-L457
https://github.com/tensorflow/tensorflow/blob/6612da89516247503f03ef76e974b51a434fb52e/tensorflow/core/platform/file_system.h#L336
The scheme is actually mapped to a unique pointer to the class:
https://github.com/tensorflow/tensorflow/blob/6612da89516247503f03ef76e974b51a434fb52e/tensorflow/core/platform/env.cc#L64
But I suspect that move could be the issue:
https://github.com/tensorflow/tensorflow/blob/6612da89516247503f03ef76e974b51a434fb52e/tensorflow/core/platform/env.cc#L114

(I'm not a good assignee for this issue.)

@mihaimaruseac recently looked through all of filesystem code.
Maybe he can help.

@gunan since you've looked at filesystems recently do you know who could look into this issue? A cursory reading of the code shows the right destructors all in the right places and nothing which would be able to prevent the destructors from running.
This will be a more serious problem once we make a C API for file systems, I think.

I assigned it to myself. I hit this same issue while preparing the filesystem API proof of concept so I have some idea about what's happening.
I'll run some tests tomorrow and update.

Sorry for the delay. I confirmed that the destructors are not properly called by doing the following changes:
diff --git a/tensorflow/core/platform/env_test.cc b/tensorflow/core/platform/env_test.cc
index 593727e8..19865268 100644
--- a/tensorflow/core/platform/env_test.cc
+++ b/tensorflow/core/platform/env_test.cc
@@ -284,6 +284,16 @@ TEST_F(DefaultEnvTest, SleepForMicroseconds) {

 class TmpDirFileSystem : public NullFileSystem {
  public:
+  TmpDirFileSystem() {
+    buff = malloc(42);
+    printf("TmpDirFileSystem created\n");
+  }
+
+  ~TmpDirFileSystem() {
+    free(buff);
+    printf("TmpDirFileSystem deleted\n");
+  }
+
   Status FileExists(const string& dir) override {
     StringPiece scheme, host, path;
     io::ParseURI(dir, &scheme, &host, &path);
@@ -316,6 +326,7 @@ class TmpDirFileSystem : public NullFileSystem {

  private:
   bool flushed_ = false;
+  void *buff;
 };

 REGISTER_FILE_SYSTEM("tmpdirfs", TmpDirFileSystem);

And then bazel test //tensorflow/core:platform_env_test. The constructor message is printed, but not the destructor. Curiously, there's no memory leak either.
I'll investigate further

Sorry for the delay. I confirmed that the destructors are not properly called by doing the following changes:
diff --git a/tensorflow/core/platform/env_test.cc b/tensorflow/core/platform/env_test.cc
index 593727e8..19865268 100644
--- a/tensorflow/core/platform/env_test.cc
+++ b/tensorflow/core/platform/env_test.cc
@@ -284,6 +284,16 @@ TEST_F(DefaultEnvTest, SleepForMicroseconds) {

 class TmpDirFileSystem : public NullFileSystem {
  public:
+  TmpDirFileSystem() {
+    buff = malloc(42);
+    printf("TmpDirFileSystem created\n");
+  }
+
+  ~TmpDirFileSystem() {
+    free(buff);
+    printf("TmpDirFileSystem deleted\n");
+  }
+
   Status FileExists(const string& dir) override {
     StringPiece scheme, host, path;
     io::ParseURI(dir, &scheme, &host, &path);
@@ -316,6 +326,7 @@ class TmpDirFileSystem : public NullFileSystem {

  private:
   bool flushed_ = false;
+  void *buff;
 };

 REGISTER_FILE_SYSTEM("tmpdirfs", TmpDirFileSystem);

And then bazel test //tensorflow/core:platform_env_test. The constructor message is printed, but not the destructor. Curiously, there's no memory leak either.
I'll investigate further

Reduced all the code to
#include<memory>
#include<unordered_map>

class FileSystem {
 public:
  FileSystem() { std::cout << "FileSystem constructor called\n"; }
  ~FileSystem() { std::cout << "FileSystem destructor called\n"; }
};

class FileSystemRegistry {
 public:
  typedef std::function<FileSystem*()> Factory;

  FileSystemRegistry() { std::cout << "FileSystemRegistry constructor called\n"; }
  ~FileSystemRegistry() { std::cout << "FileSystemRegistry destructor called\n"; }

  bool Register(const std::string& scheme, Factory factory) {
    return registry_.emplace(std::string(scheme), std::unique_ptr<FileSystem>(factory())).second;
  }

 private:
  mutable std::unordered_map<std::string, std::unique_ptr<FileSystem>> registry_;
};

class Env {
 public:
  Env() : file_system_registry_(new FileSystemRegistry) { std::cout << "Env constructor called\n"; }
  ~Env() { std::cout << "Env destructor called\n"; }

  static Env* Default() {
    static Env* default_env = new Env;
    return default_env;
  }

  bool RegisterFileSystem(const std::string& scheme, FileSystemRegistry::Factory factory) {
    return file_system_registry_->Register(scheme, std::move(factory));
  }

 private:
  std::unique_ptr<FileSystemRegistry> file_system_registry_;
};

int main () {
  Env::Default()->RegisterFileSystem("x", []() -> FileSystem* { return new FileSystem; });
  return 0;
}

and of course the destructors don't get called. Valgrind reports still reachable memory bytes as it should.
I think I have an idea of the root cause of this, will run one more experiment and be back in at most an hour or so.

Ok, so the Env destructor is not called and that causes all the other relevant destructors to not be called either. The Env destructor is not called because of the static instance.
I have a fix incoming, but we also need to consider if we want to call Env destructor (as now it is marked as illegal to delete Env instance)

Also, @reflectored, since you're working with filesystems, you might want to also look at a proposed modularization C API for them as feedback is welcomed.

@mihaimaruseac Yeah I actually stumbled upon that in your profile. I will take a look at that.

So, there is an issue with forcing Env destructor to be called: we will surely get into fiascos based on the order of calling static destructors. Instead, it is better if you use atexit to directly call the destructor/resource deinitializer of the filesystem, instead of relying on the destructor chain.

I think we should close this, as solution and reasoning behind why destructor is not called are given above.


fix and clean up intervention saving to act more like model config

Description

Include a summary of the changes and the related issue.
Include relevant motivation and context.

Resolves #(issue)

closing in for rework in the save/save as functionality


⚠ ClamAV has degraded performance

In 7177fdf, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in c32d15c after 536 days, 4 hours, 10 minutes.


Publishing to pypi doesn't work because of missing tags

The official documentation recommends using startsWith(github.ref, 'refs/tags/') to see if there is a release, and we follow this practice. However, it no longer works, or at least not consistently.
Running echo ${{ github.ref }} on a tagged release now gives refs/heads/main, at least in my testing.
Alternatives to this practice:

Use github.event.release.tag_name or just triggering on the "publish" event. Would require triggering release events.
Using tags that always start with v, combined with a reliable way to get the tag name.

Workaround for now is to push to pypi manually. The testpypi action runs fine.

fixed as of 9ee47efb8072303cf6476d873f392c7753d98082


Sidebar Reorganization Implementation

Description (required)

This PR aims to implement the changes proposed in #6845. The changes made include:

Contribute Section was removed from the RightSideBar.
The Translate option was moved beside the Edit Page option at the bottom of the page above the Pagination.
A new References component was created to hold the links to the Contribute, Give Feedback, and Community pages.
A custom Footer component created to override the default Starlight Footer. The Pagination, EditLinks, & References components were added to this component (as before). The LastUpdated component was also added (commented out) for possible future development.
Added custom icons for Give Feedback and Community options.

Related issues & labels (optional)

Closes #6845
Suggested label: site-improvement

Preview of changed:
Current Implementation:

Proposed Changes:

Special thanks to @delucis for coming up with the design and guidance throughout this implementation.

Thank you for putting this together @SatanshuMishra! Really appreciate you picking it up. I’ve left some initial feedback.
There are probably also two details to discuss:

Are we happy with this also being added to the homepage? (My gut instinct is yes, it’s nice.)

Whether we want any extra space between the pagination links and the new footer links. Curious what others think on this one.

I think this looks good too! Certainly nice to give people to learn about how to contribute, give us feedback or see the amazing community page we have.

Here's the translation snippets for the untranslated strings

Hey @TheOtterlord! I'm not sure if translation suggestions should be submitted on this PR. They may need to be their own PRs since this PR focuses on generating the new structure. Feel free to correct me if I'm wrong through!

The suggestions apply our existing translations from the old structure, so we're not introducing any new translations.


Update failed

Version
23.10.09 (XFCE)
Explain the issue and what happens
The update, using Update station fails.
The last two lines in the log are
[414/1338] Upgrading llvm15 from 15.0.7_6 to 15.0.7_7...
[414/1338] Extracting llvm15-15.0.7_7: ln: /usr/local/share/icons/hicolor/pixmaps/pixmaps: File exists
I tried deleting that file (it's actually a link) and run Update Station again. That just caused another similar error for some other file.
I rolled back to the backup environment and tried again with the same result.
Near
update.txt
the top of the log was
Checking integrity... done (3 conflicting)

perl5.34-5.34.1_3 conflicts with perl5-5.34.1_3 on /usr/local/bin/perl5.34.1
ghostscript10-10.02.0 conflicts with ghostscript9-agpl-base-9.56.1_12 on /usr/local/bin/dvipdf
ghostscript10-10.02.0 conflicts with ghostscript9-agpl-base-9.56.1_12 on /usr/local/bin/dvipdf
Cannot solve problem using SAT solver, trying another plan
Checking integrity... done (0 conflicting)
The following 1338 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
ghostscript9-agpl-base: 9.56.1_12
Explain how to reproduce the bug?
Do an update.
What is the Expected behavior (if applicable)
No response
Additional context (if applicable)
No response

I noticed there is a llvm15-lite so I tried installing that. Doing so caused an upgrade to llvm15 and an error stating it couldn't install llvm15-lite because it installs files in the same place.
I now have llvm15-15.0.7_7 so hopefully when I try system update again it should work.

Now ends with
[217/1338] Upgrading kf5-breeze-icons from 5.110.0 to 5.111.0...
[217/1338] Extracting kf5-breeze-icons-5.111.0: ..ln: /usr/local/share/icons/hicolor/pixmaps/pixmaps: File exists

Pardon me for recording this here. I helps me keep track of it. The PC with the problem is not very fast and it's a big update.
After pre-updating the problem packages it now ends at
[87/1338] Reinstalling gdk-pixbuf2-2.42.10_1...
ln: /usr/local/share/icons/hicolor/pixmaps/pixmaps: File exists
Will now roll back and pre-update this package.

Change of plan. Renamed the pixmaps link to pixmaps_not.

Different error this time!
[418/1338] Upgrading ffmpeg from 6.0_3,1 to 6.0_5,1...
[418/1338] Extracting ffmpeg-6.0_5,1: .......... done
xmlcatmgr: entry already exists for /usr/local/share/xml/xmlcharent/catalog' of type CATALOG'

This is odd. I wonder what is causing this?

This time
[188/1338] Reinstalling gtk3-3.24.34_1...
[188/1338] Extracting gtk3-3.24.34_1: .........xmlcatmgr: entry already exists for /usr/local/share/xml/xmlcharent/catalog' of type CATALOG'

Each one seems to work fine using pkg upgrade.
Maybe it's because I might have got behind in updates although I didn't think I was that far behind.
Maybe something to do with the fact that this was a standard MATE install and I added XFCE. This PC and my laptop were XFCE installs from the beginning.
Hopefully I will come to an end to these cycles eventually.

I will probably reinstall on this particular PC. It's not my main PC (I have 2 other GhostBSD PCs).
It was an early experiment in installing and using GhostBSD and I've probably installed a lot of unnecessary stuff along the way.
My intent was for it to replace my 'staff web site' machine that staff members use to search for articles that are no longer on our live web site for possible reuse.

I was came across this page https://easylinuxtipsproject.blogspot.com/p/fatal-mistakes.html and one of the tips is "Don't mix desktop environments".
I think I have illustrated this point on this system!

I tried to install GhostBSD 22.06.18 XFCE on this PC using the DVD I already have. I've used this on a laptop recently and it worked fine - I just had to run all the updates.
Previously I installed GhostBSD MATE. Don't recall which version but it was during this past year. My notes about the install say ‘monty’ has onboard graphics Intel 82Q35 Express GMA 3100 – pkg install xf86-video-intel. I couldn't get X to work this time.
I tried fixing the current install and at present it is working and Update Station says it is up to date. I've had to crash out of pkg and Update Station a few times.
`Uninstalled all MATE stuff (Don’t try to run multiple DEs on one system)
pkg autoremove
pkg delete “anything suspicious – in this case gtk2”
pkg update -f
pkg upgrade -f`
Now when I run pkg update -f  I get
`[1146/1217] Reinstalling ghostbsd-xfce-settings-3.7.3...
[1146/1217] Extracting ghostbsd-xfce-settings-3.7.3: 100%
/bin/sh: update-alternatives: not found
...
[1156/1217] Reinstalling xfce4-notifyd-0.9.2_1...
[1156/1217] Extracting xfce4-notifyd-0.9.2_1: 100%
[1157/1217] Reinstalling xfce4-timer-plugin-1.7.2_1...
[1157/1217] Extracting xfce4-timer-plugin-1.7.2_1: 100%
[1158/1217] Reinstalling xfce4-taskmanager-1.5.6...
[1158/1217] Extracting xfce4-taskmanager-1.5.6: 100%
[1159/1217] Reinstalling os-generic-userland-23.10.1...
[1159/1217] Extracting os-generic-userland-23.10.1: 100%
[1160/1217] Reinstalling beadm-1.3.5...
[1160/1217] Extracting beadm-1.3.5: 100%
[1161/1217] Reinstalling agame-1577_13...
[1161/1217] Extracting agame-1577_13: 100%
[1162/1217] Reinstalling pkg-1.20.9...
[1162/1217] Extracting pkg-1.20.9: 100%
[1163/1217] Reinstalling epson-inkjet-printer-escpr-1.7.26...
[1163/1217] Extracting epson-inkjet-printer-escpr-1.7.26: 100%
[1164/1217] Reinstalling libmypaint-1.6.1_2...
[1164/1217] Extracting libmypaint-1.6.1_2: 100%
[1165/1217] Reinstalling os-generic-kernel-23.10.1,1...
[1165/1217] Extracting os-generic-kernel-23.10.1,1: 100%
[1166/1217] Reinstalling ghostbsd-icons-1.8...
[1166/1217] Extracting ghostbsd-icons-1.8: 100%
Child process pid=2297 terminated abnormally: Killed    [After a very long time!]
[tim@monty /var/log]$ cat messages | grep reinstalled | tail
Dec 21 10:22:40 monty pkg[2297]: xfce4-notifyd reinstalled: 0.9.2_1 -> 0.9.2_1
Dec 21 10:22:40 monty pkg[2297]: xfce4-timer-plugin reinstalled: 1.7.2_1 -> 1.7.2_1
Dec 21 10:22:41 monty pkg[2297]: xfce4-taskmanager reinstalled: 1.5.6 -> 1.5.6
Dec 21 10:22:41 monty pkg[2297]: os-generic-userland reinstalled: 23.10.1 -> 23.10.1
Dec 21 10:22:41 monty pkg[2297]: beadm reinstalled: 1.3.5 -> 1.3.5
Dec 21 10:22:41 monty pkg[2297]: agame reinstalled: 1577_13 -> 1577_13
Dec 21 10:22:45 monty pkg[2297]: pkg reinstalled: 1.20.9 -> 1.20.9
Dec 21 10:22:46 monty pkg[2297]: epson-inkjet-printer-escpr reinstalled: 1.7.26 -> 1.7.26
Dec 21 10:22:47 monty pkg[2297]: libmypaint reinstalled: 1.6.1_2 -> 1.6.1_2
Dec 21 10:22:55 monty pkg[2297]: os-generic-kernel reinstalled: 23.10.1,1 -> 23.10.1,1
tail messages
Dec 21 10:43:46 monty kernel: pid 2297 (pkg), jid 0, uid 0, was killed: failed to reclaim memory
I think there is a problem with gtk-update-icon-cache
`
Could the missing update-alternatives have something to do with it? Is that something that comes with the XFCE version?

I think I've fixed it!
Previously I renamed /usr/local/share/pixmaps to /usr/local/share/pixmaps_not and then the system recreated /usr/local/share/pixmaps
This file is a link to /usr/local/share/pixmaps - ie recursive. It would seem gtk-update-icon-cache is somehow aware of this but not pixmaps_not
I just ran pkg upgrade -f ghostbsd-icons and the only error was
Generating GTK icon cache for /usr/local/share/icons/Vivacious-Colors
gtk-update-icon-cache: The generated cache was invalid.
Full code:
sudo pkg upgrade -f ghostbsd-icons
Updating GhostBSD repository catalogue...
GhostBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be REINSTALLED:
ghostbsd-icons-1.8
Number of packages to be reinstalled: 1
Proceed with this action? [y/N]: y
[1/1] Reinstalling ghostbsd-icons-1.8...
[1/1] Extracting ghostbsd-icons-1.8: 100%
gtk-update-icon-cache: Cache file created successfully.
==> Running trigger: gtk-update-icon-cache.ucl
Generating GTK icon cache for /usr/local/share/icons/Qogir
Generating GTK icon cache for /usr/local/share/icons/Vivacious-Colors
gtk-update-icon-cache: The generated cache was invalid.
Generating GTK icon cache for /usr/local/share/icons/Vivacious-Colors-Dark
Generating GTK icon cache for /usr/local/share/icons/Qogir-dark
Generating GTK icon cache for /usr/local/share/icons/Vivacious-Colors-Full-Dark
Generating GTK icon cache for /usr/local/share/icons/ghostbsd

Lesson learnt!


Cannot run score_texts_emojis.py

I get a few errors when I run score_text_emojis.py
I'm using pytorch-cpu=0.4.0=py35_cpu_1 and master of torchMoji (b3dd91958ba2a752e0fdee2fd1839ae2bbea549a)
It seems the errors are caused by changes to PyTorch.
e.g.
$ python score_texts_emojis.py

Tokenizing using dictionary from /home/dev/Downloads/torchMoji/model/vocabulary.json
Loading model from /home/dev/Downloads/torchMoji/model/pytorch_model.bin.
/home/dev/Downloads/torchMoji/torchmoji/model_def.py:159: UserWarning: nn.init.uniform is now deprecated in favor of nn.init.uniform_.
  nn.init.uniform(self.embed.weight.data, a=-0.5, b=0.5)
/home/dev/Downloads/torchMoji/torchmoji/model_def.py:161: UserWarning: nn.init.xavier_uniform is now deprecated in favor of nn.init.xavier_uniform_.
  nn.init.xavier_uniform(t)
/home/dev/Downloads/torchMoji/torchmoji/model_def.py:163: UserWarning: nn.init.orthogonal is now deprecated in favor of nn.init.orthogonal_.
  nn.init.orthogonal(t)
/home/dev/Downloads/torchMoji/torchmoji/model_def.py:165: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_.
  nn.init.constant(t, 0)
/home/dev/Downloads/torchMoji/torchmoji/model_def.py:167: UserWarning: nn.init.xavier_uniform is now deprecated in favor of nn.init.xavier_uniform_.
  nn.init.xavier_uniform(self.output_layer[0].weight.data)
TorchMoji(
  (embed): Embedding(50000, 256)
  (embed_dropout): Dropout2d(p=0)
  (lstm_0): LSTMHardSigmoid(256, 512, batch_first=True, bidirectional=True)
  (lstm_1): LSTMHardSigmoid(1024, 512, batch_first=True, bidirectional=True)
  (attention_layer): Attention(2304, return attention=False)
  (final_dropout): Dropout(p=0)
  (output_layer): Sequential(
    (0): Linear(in_features=2304, out_features=64, bias=True)
    (1): Softmax()
  )
)
Running predictions.
Traceback (most recent call last):
  File "score_texts_emojis.py", line 48, in <module>
    prob = model(tokenized)
  File "/home/dev/miniconda3/envs/hub/lib/python3.5/site-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/dev/Downloads/torchMoji/torchmoji/model_def.py", line 218, in forward
    packed_input = PackedSequence(data=x, batch_sizes=packed_input.batch_sizes)
TypeError: __new__() got an unexpected keyword argument 'data'

I have got the example running after the following modifications:

Need to remove argument names from calls to PackedSequence.

https://github.com/huggingface/torchMoji/blob/b3dd91958ba2a752e0fdee2fd1839ae2bbea549a/torchmoji/model_def.py#L218
Change to packed_input = PackedSequence(x, packed_input.batch_sizes)
https://github.com/huggingface/torchMoji/blob/b3dd91958ba2a752e0fdee2fd1839ae2bbea549a/torchmoji/model_def.py#L226-L229
Change to:
        packed_input = PackedSequence(torch.cat((lstm_1_output.data,
                                                 lstm_0_output.data,
                                                 packed_input.data), dim=1),
                                      packed_input.batch_sizes)

Cannot reverse batch_sizes.

https://github.com/huggingface/torchMoji/blob/b3dd91958ba2a752e0fdee2fd1839ae2bbea549a/torchmoji/lstm.py#L266
Change to for batch_size in reversed(list(batch_sizes)):

Hi, this should be fixed by #15, thanks to @SsnL!


[FR] output file dependencies for incremental compilation support

if given a sass file, node-sass could output the files that it depends on (imports - optionally recursive) then it would be relatively easy to implement incremental compilation via tools like gulp+gulp-changed
Any chance that node-sass will support such an function?

Hi @amitport, take a look at https://github.com/xzyfer/sass-graph! It does what you are looking for. :)

@am11 Thanks! I think your previous suggestion was already good enough for this purpose, but I'm not sure. Generally, having the result after only a full node-sass compilation is OK, since I'm doing an incremental compilation not just analysis. In any case, I haven't got around to making this experiment yet, hopefully, I'll have a chance next weekend.

You can use sass-graph in your gulp watcher or gulp changed. It'll give you
an array of sass files that your changed file in imported by. Then you can
just pass those files into your normal gulp compilation task.
On 15 Jan 2015 18:49, "Amit Portnoy"<EMAIL_ADDRESS>wrote:

@am11 https://github.com/am11 Thanks! I think your previous suggestion
was already good enough for this purpose, but I'm not sure. Generally,
having the result after only a full node-sass compilation is OK, since I'm
doing an incremental compilation not just analysis. In any case, I haven't
got around to making this experiment yet, hopefully, I'll have a chance
next weekend.
—
Reply to this email directly or view it on GitHub
https://github.com/sass/node-sass/issues/590#issuecomment-70050673.

@xzyfer, but don't already know which files I need to watch from stats.includedFiles? remember I run an initial compilation. Can't I just keep a mapping (processed.stats.includesFiles)->sourceFile?

I think it might be a little more difficult that it seems. FWIW here is my current gulp setup for incremental sass compilation https://gist.github.com/xzyfer/1225f52c370b511c1fed


add pagination & cache override token

I needed more than 20 results per search and the library doesn't provide a way to paginate.
I added the pagetoken parameter and a cache override token, to prevent potential cache issue described here (answer by dmmd):
https://stackoverflow.com/questions/21265756/paging-on-google-places-api-returns-status-invalid-request
Furthermore, the API has this weird behavior when it comes to pagination that the token does not become immediately available and you have to "sleep" before making the next page request otherwise it returns INVALID_REQUEST error. Not sure if this should be part of the library?
More information:
https://developers.google.com/places/web-service/search

Looks good, do you have some tests?


JDK <IP_ADDRESS>+1 Release Triage

SL/Aug26: removed aarch64_windows from this report as that platform is not yet supported
Release Summary Report for openjdk18-pipeline
Report generated at: Fri, 26 Aug 2022 11:53:45 GMT
TRSS Build and TRSS Grid View
Jenkins Build URL https://ci.adoptopenjdk.net/job/build-scripts/job/openjdk18-pipeline/250/
Started by user Stewart X Addison at 8/25/2022, 12:53:28 PM

Test_Job_Auto_Gen ❌ FAILURE ❌
jdk18u-linux-arm-temurin_SmokeTests ❌ FAILURE ❌

Test_openjdk18_hs_extended.openjdk_aarch64_mac ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_aarch64_mac_testList_1 ⚠ UNSTABLE ⚠
jdk_net_1 => deep history 5/6 passed | possible issues
Test_openjdk18_hs_extended.openjdk_arm_linux ❌ FAILURE ❌
Test_openjdk18_hs_extended.openjdk_arm_linux_testList_1 ❌ FAILURE ❌
Test_openjdk18_hs_extended.openjdk_arm_linux_testList_2 ❌ FAILURE ❌
Test_openjdk18_hs_extended.openjdk_x86-64_linux ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_linux_testList_2 ⚠ UNSTABLE ⚠
jdk_nio_0 => deep history 5/6 passed | possible issues
Test_openjdk18_hs_extended.openjdk_x86-64_mac ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_mac_testList_1 ⚠ UNSTABLE ⚠
jdk_net_1 => deep history 5/6 passed | possible issues
Test_openjdk18_hs_extended.openjdk_x86-64_windows ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_windows_testList_1 ⚠ UNSTABLE ⚠
jdk_io_0 => deep history 5/6 passed | possible issues
Test_openjdk18_hs_extended.system_arm_linux ❌ FAILURE ❌
Test_openjdk18_hs_sanity.functional_aarch64_alpine-linux ⚠ UNSTABLE ⚠
Rerun all
java -version
openjdk version "<IP_ADDRESS>" 2022-08-18
OpenJDK Runtime Environment Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1, mixed mode, sharing)

cmdLineTester_libpathTestRtfChild_0 => deep history 0/17 passed | possible issues
Test_openjdk18_hs_sanity.functional_x86-64_alpine-linux ⚠ UNSTABLE ⚠
Rerun all
java -version
openjdk version "<IP_ADDRESS>" 2022-08-18
OpenJDK Runtime Environment Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1, mixed mode, sharing)

cmdLineTester_libpathTestRtfChild_0 => deep history 0/16 passed | possible issues
Test_openjdk18_hs_sanity.perf_arm_linux ❌ FAILURE ❌
Test_openjdk18_hs_sanity.perf_x86-64_linux ❌ FAILURE ❌

Test_openjdk18_hs_extended.openjdk_x86-64_linux ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_linux_testList_2 ⚠ UNSTABLE ⚠
jdk_nio_0 => deep history 5/6 passed | possible issues

Arm linux
Test_openjdk18_hs_extended.openjdk_arm_linux ❌ FAILURE ❌
Test_openjdk18_hs_extended.openjdk_arm_linux_testList_1 ❌ FAILURE ❌
Test_openjdk18_hs_extended.openjdk_arm_linux_testList_2 ❌ FAILURE ❌
Rerunning extended openjdk https://ci.adoptopenjdk.net/job/Grinder/5499/console
Test_openjdk18_hs_extended.perf_arm_linux ❌ FAILURE ❌
Rerunning extended perf https://ci.adoptopenjdk.net/job/Grinder/5500/console
Test_openjdk18_hs_extended.system_arm_linux ❌ FAILURE ❌
Rerunning extended system https://ci.adoptopenjdk.net/job/Grinder/5501/console
Test_openjdk18_hs_sanity.perf_arm_linux ❌ FAILURE ❌
Rerunning sanity perf https://ci.adoptopenjdk.net/job/Grinder/5502/console

x64 Mac
Test_openjdk18_hs_extended.openjdk_x86-64_mac ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_mac_testList_1 ⚠ UNSTABLE ⚠
jdk_net_1 => deep history 5/6 passed | possible issues

x64 Windows
Test_openjdk18_hs_extended.openjdk_x86-64_windows ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_x86-64_windows_testList_1 ⚠ UNSTABLE ⚠
jdk_io_0 => deep history 5/6 passed | possible issues

aarch64_alpine-linux ✅

known non-blocking issue, check why exclusion has not been ported to the openj9 branch defined in the testenv.properties file of the <IP_ADDRESS>-release branch (related: https://github.com/eclipse-openj9/openj9/pull/15486/)

Test_openjdk18_hs_sanity.functional_aarch64_alpine-linux ⚠ UNSTABLE ⚠
Rerun all
java -version
openjdk version "<IP_ADDRESS>" 2022-08-18
OpenJDK Runtime Environment Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1, mixed mode, sharing)

cmdLineTester_libpathTestRtfChild_0 => deep history 0/17 passed | possible issues

aarch64 mac
Test_openjdk18_hs_extended.openjdk_aarch64_mac ⚠ UNSTABLE ⚠
Test_openjdk18_hs_extended.openjdk_aarch64_mac_testList_1 ⚠ UNSTABLE ⚠
jdk_net_1 => deep history 5/6 passed | possible issues

x86-64_alpine-linux  ✅

known non-blocking issue, check why exclusion has not been ported to the openj9 branch defined in the testenv.properties file of the <IP_ADDRESS>-release branch (related: https://github.com/eclipse-openj9/openj9/pull/15486/)

Test_openjdk18_hs_sanity.functional_x86-64_alpine-linux ⚠ UNSTABLE ⚠
Rerun all
java -version
openjdk version "<IP_ADDRESS>" 2022-08-18
OpenJDK Runtime Environment Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1, mixed mode, sharing)

cmdLineTester_libpathTestRtfChild_0 => deep history 0/16 passed | possible issues

All platforms are completed, last task to do before closing this issue is to gather TAP files.

windows_x86-64_AQAvitTaps.zip
windows_x86-32_AQAvitTaps.zip
mac_aarch64_AQAvitTaps.zip
mac_x64_AQAvitTaps.zip
linux_s390x_AQAvitTaps.zip
linux_ppc64le_AQAvitTaps.zip
linux_arm_AQAvitTaps.zip
linux_aarch64_AQAvitTaps.zip
linux_x64_AQAvitTaps.zip
alpine-linux_aarch64_AQAvitTaps.zip
alpine-linux_x64_AQAvitTaps.zip
aix_ppc64_AQAvitTaps.zip


fix: use first reference

Current dependencies on/for this PR:

main

PR #137   👈

This comment was auto-generated by Graphite.


Text Overlapping in login page while using android mobile devices

-Go to sign in page .
-There is text overlapping while providing Email address.

Hi @nivetheatha - I was wondering what browser are you using? I am using chrome and it seems to have no issues with overlapping.

@nivetheatha I will open a PR and please let me know if that is enough padding from top.

Try to give email...the text will overlap..I am using chrome browser .

Hope it will resolve..kindly letme know..once you fixed the issue.


Node: Cyclic dep. in transaction payload

Description of change
Transaction payload wasnt parsed due to cyclic dependency in class-transformer.
Setting it to Always being TaggedDataPayload solves this as the discriminator is no longer needed.
Links to any relevant issues
Fixes https://github.com/iotaledger/iota-sdk/issues/1249

Changelog entry?

Erm well technically it always was a TaggedDataPayload, and it never worked before :P but alright

Maybe this can be a temporary fix while we find a better one. At the moment it would be nice to have a fix to unblock the integration in Explorer.

Maybe this can be a temporary fix while we find a better one. At the moment it would be nice to have a fix to unblock the integration in Explorer.

Abdul is having another look now and we'll merge it if it's not conclusive.


Add support to run workloads on Azure

This commit sets the azure authentication needed to run workloads
on OCP running on top of Azure.

I think it'd make sense to add the azure specific tasks to a separate role, and then call the role in each of playbook. This would also help with code  maintainability

@aakarshg nice suggestion, updated the PR. PTAL.

@wabouhamad @jtaleric @mohit-sheth need one more set of eyes when you get time please.

Thanks for the review @aakarshg @jtaleric.


Experimental Version still Crashing after fix

I uninstalled and reinstalled mod and game still crashes. Is there anything certain i need to do to fix the mod?

Also the thunderstore is not showing an updated version either.

https://github.com/hawkfalcon/Timberborn-Mods/releases/tag/Experimental


Automatic PR from RestAPI-PR463

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/463

Coverage decreased (-0.03%) to 58.112% when pulling 38f864e43c22e4020b021254f39cce4e9a8e1c5c on AutorestCI:RestAPI-PR463 into 7376433dc0906634acf3c0bb27cec0e6d0a9b3d4 on Azure:dev.


API Reference Docs Are needed

I think formal reference documentation is needed. I'm not familiar with the ecosystem involved with this repo. @abelpz  do you have any recommendations on how to generate API documentation from the source code?

Sure, would you prefer a markdown file for this or a docsite or both?

I would add this to the current docusaurus docsite. I'm currently playing around with using typedoc as a method for generating the docs.

After reviewing the tutorial and seeing the need to produce API docs here's what I would recommend:

use typedoc instead of docusaurus for all documentation
write the tutorials as comments in the code. The larger the textual distance between code and its documentation the more likely the documentation will be error prone. Furthermore placing tutorials right next to code gives developers an instant roadmap to navigating the source code and, simultaneously, gives them a deeper understanding of what the code does and how it's intended to be consumed.
Remove the demo fnr-pg or replace the code in the walkthrough with that. This does 2 things:

it dogfoods your API which will makes it easier to find bugs and improvements
it gives a developer a more practical idea of how to consume your library - the current walkthrough makes your API appear as a only a wrapper around regex and not a set of GUI utils that work ontop of regex.


#312 Allow CSV format in select clause

This PR partially fixes https://github.com/yandex/clickhouse-jdbc/issues/312 and prepares the code for further refactoring/improvements (make clickhouse result set aware of Format type).
This change is required in order to allow in format like CSV that will allow (after further fixes) to export full csv from select clause.

Will be implemented soon in alternative fork - https://github.com/blynkkk/clickhouse4j


fix the BUILD_URL/need to save config issue

also increase the container cap so pods don't hang

The container cap part looks good and functioned as expected. But I agree with the others, that the JENKINS_URL field should at least be changed to something more generic, but ideally something along the lines of what @mcanoy suggested.

@mcanoy @logandonley I put kevin's suggestion right into the configure-jenkins.groovy file!
@oybed removed JENKINS_URL

One other note here. This will only work when the route is named jenkins. We pretty much always use this name. If we want to cover edge cases I would recommend looking at using a label that we can use by convention. I would suggest the name label. Then we could pull that label from the running pod and assume by convention that the route would use this name as well - or we could add that label to the route
oc get po $HOSTNAME} -o jsonpath={.metadata.labels.name}

@mcanoy yeah good point. I was just trying to get this up as quickly as possible. i'll add that on when i have time


fix(runloop): set_host_header pass the wrong upstream_host

In the vast majority cases, this change has no effect, except when the host of balancer is exactly equal to "upstream_host" and preserve_host is false.
This was introduced by https://github.com/Kong/kong/pull/9494

This issue can be tested by doing some hacks.
diff --git a/kong/runloop/balancer/init.lua b/kong/runloop/balancer/init.lua
index a2f5108eb..520a07d37 100644
--- a/kong/runloop/balancer/init.lua
+++ b/kong/runloop/balancer/init.lua
@@ -304,6 +304,10 @@ local function execute(balancer_data, ctx)
     ip, port, try_list = toip(balancer_data.host, balancer_data.port, dns_cache_only)
     run_hook("balancer:to_ip:post", hstate)
     hostname = balancer_data.host
+    if balancer_data.host == "upstream_host" then
+      ip = "<IP_ADDRESS>"
+      port = 80
+    end
     if not ip then
       log(ERR, "DNS resolution failed: ", port, ". Tried: ", tostring(try_list))
       if port == "dns server error: 3 name error" or
diff --git a/spec/02-integration/05-proxy/19-grpc_proxy_spec.lua b/spec/02-integration/05-proxy/19-grpc_proxy_spec.lua
index 49deacf56..1c7b0a478 100644
--- a/spec/02-integration/05-proxy/19-grpc_proxy_spec.lua
+++ b/spec/02-integration/05-proxy/19-grpc_proxy_spec.lua
@@ -39,7 +39,7 @@ for _, strategy in helpers.each_strategy() do

       local mock_grpc_service = assert(bp.services:insert {
         name = "mock_grpc_service",
-        url = "grpc://localhost:8765",
+        url = "grpc://upstream_host",
       })

       local mock_grpc_service_retry = assert(bp.services:insert {
@@ -58,7 +58,7 @@ for _, strategy in helpers.each_strategy() do

       assert(bp.targets:insert {
         upstream = upstream_retry,
-        target = "<IP_ADDRESS>:8765",
+        target = "<IP_ADDRESS>:80",
       })

       assert(bp.routes:insert {
@@ -110,7 +110,7 @@ for _, strategy in helpers.each_strategy() do
       fixtures.http_mock.my_server_block = [[
         server {
           server_name myserver;
-          listen 8765 http2;
+          listen 80 http2;

           location ~ / {
             content_by_lua_block {
@@ -216,7 +216,7 @@ for _, strategy in helpers.each_strategy() do
       assert.truthy(resp)
     end)

-    it("proxies :authority header if `preserve_host` is set", function()
+    it("proxies :authority header if `preserve_host` is set #only", function()
       local _, resp = proxy_client_grpc({
         service = "hello.HelloService.SayHello",
         body = {
@@ -231,7 +231,7 @@ for _, strategy in helpers.each_strategy() do
       assert.matches("received%-host: grpc_authority_1.example", resp)
     end)

-    it("sets default :authority header if `preserve_host` isn't set", function()
+    it("sets default :authority header if `preserve_host` isn't set #only", function()
       local _, resp = proxy_client_grpc({
         service = "hello.HelloService.SayHello",
         body = {
@@ -243,7 +243,7 @@ for _, strategy in helpers.each_strategy() do
         }
       })

-      assert.matches("received%-host: localhost:8765", resp)
+      assert.matches("received%-host: upstream_host", resp)
     end)

     it("proxies :authority header on balancer retry", function()
@@ -273,7 +273,7 @@ for _, strategy in helpers.each_strategy() do
               and #file_log_json.tries >= 2
       end, 5)

-      assert.matches("received%-host: <IP_ADDRESS>:8765", resp)
+      assert.matches("received%-host: <IP_ADDRESS>", resp)
     end)

     describe("errors with", function()

before fixing

# bin/busted -t only spec/02-integration/05-proxy/19-grpc_proxy_spec.lua
2022/12/23 15:35:43 [warn] [Penlight 1.12.0] the contents of module 'pl.text' has moved into 'pl.stringx' (deprecated after 1.11.0, scheduled for removal in 2.0.0)
●◼
1 success / 1 failure / 0 errors / 0 pending : 10.002062 seconds

Failure → spec/02-integration/05-proxy/19-grpc_proxy_spec.lua @ 234
#grpc Proxying [#postgres] sets default :authority header if `preserve_host` isn't set #only
spec/02-integration/05-proxy/19-grpc_proxy_spec.lua:246: Expected strings to match.
Passed in:
(string) '
Resolved method descriptor:
rpc SayHello ( .hello.HelloRequest ) returns ( .hello.HelloResponse );

Request metadata to send:
(empty)

Response headers received:
content-type: application/grpc
date: Fri, 23 Dec 2022 15:35:53 GMT
received-host: kong_upstream
server: openresty
via: kong/<IP_ADDRESS>-dev-enterprise-edition
x-kong-proxy-latency: 0
x-kong-upstream-latency: 0

Response trailers received:
(empty)
Sent 1 request and received 0 responses
ERROR:
  Code: Internal
  Message: server closed the stream without sending trailers
'
Expected:
(string) 'received%-host: upstream_host'

after fixing

# bin/busted -t only spec/02-integration/05-proxy/19-grpc_proxy_spec.lua
2022/12/23 15:37:17 [warn] [Penlight 1.12.0] the contents of module 'pl.text' has moved into 'pl.stringx' (deprecated after 1.11.0, scheduled for removal in 2.0.0)
●●
2 successes / 0 failures / 0 errors / 0 pending : 10.07735 seconds

@catbro666 I have approved it. Good catch! Not sure how it happened in a first place. I will merge it now. @catbro666 if you think we can add test, then please open another pr.

@catbro666 I have approved it. Good catch! Not sure how it happened in a first place. I will merge it now. @catbro666 if you think we can add test, then please open another pr.

@bungle I think the current tests are sufficient because only in this extremely special case it causes problems.


feat: add ability to use function as config

This PR adds an ability to use a function as config. This function will get an array of all staged files as parameter which can be used with own glob. Currently, we need to pass such function as value of '*' in config object which doesn't feel good.
This can be further optimized by not using micromatch internally when a function config is detected.

Thanks for the PR! I wonder if the formatConfig is needed, could the same thing simply be inside the validateConfig method as a short-circuit?

Separation of Concerns
validateConfig should focus on only validation, nothing else.
Benefit of separate formatConfig: If you need to accept strings or arrays as config in the future, it'd be easy to implement thanks to formatConfig.

Good enough for me! Do you think there are some existing examples In the readme that could use this format instead of the start glob?

There was one example and I have already added the new alternative (but, didn't remove existing one because that remains valid). Do you want me to remove that existing example?

Let's leave it, since it shows the explicit '*' glob.

I think the readme could be more clear that you can either export a single function that receives all matched files, or then an object of globs, where each key can be a function (that receives only those matches), string or array of strings.
Otherwise it's good to go IMO!

Done.

Thoughts, @okonet?


store softwares as map instead of array

use name as key to inherently prevent duplicate names

utilize an in-memory structure to prevent duplicates


Added changelog for the changes so far in v0.10

I added things that I am aware of or found in the closed pull-requests.
However, I am pretty sure there is more stuff that happened at least on the
gateway side of things that I am not necessarily aware of. So please
check and suggest any and all additions that you think should be part of
the change log up to this point!
Thank you!

LGTM, perhaps worth updating L17

@benjaminbollen ok I removed that line. Should we mention anything about deprecating/removing it?


Breaking change in .NET 8 means instructions to run docker container are wrong

Problem encountered on https://dotnet.microsoft.com/en-us/learn/aspnet/microservice-tutorial/run-docker
Operating System: windows
The instructions in the tutorial are not correct for somebody who has created the microservice using .NET 8.  Breaking change - default port was changed from 80 to 8080
There are potentially two fixes for this: either change the command line to run the container:
docker run -it --rm -p 3000:8080 --name mymicroservicecontainer mymicroservice
Or change the docker file to enforce the internal container port to port 80 (and leave the command-line as-is):
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY MyMicroservice.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "MyMicroservice.dll"]

ENV ASPNETCORE_HTTP_PORTS=80

@mairaw We need to update the website, can you please have a look?

Yes, thank you for assigning this to me. It was on my to-do list to review this with @bradygaster and @baronfel.

There are a few options, ranking them in my personal order of preference:
Let Docker auto-assign ports
Run the docker command with -P instead of an explicit port, then use a command like docker container list to see what port was bound by Docker and tell the user to go there:
$docker run -it -d -P registry:2
cdaf46d3dae95c16d84e1b832b0a2b19d5fbf6810cc4aa6e91b8c9d828b84dbd
$docker container list
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS        PORTS                     NAMES
cdaf46d3dae9   registry:2   "/entrypoint.sh /etc…"   2 seconds ago   Up 1 second   <IP_ADDRESS>:32768->5000/tcp   dreamy_lamport

in this case you'd tell the user to go to localhost:32768, for example. This has the advantage of being completely resilient to any changes in the base images, but it introduces more concepts up-front.
Change the run command to bind to the new 8080 port
This is what @jonathanpickard3sq describes above. Change -p 3000:80 to -p 3000:8080. This is the smallest possible change but it does leave you vulnerable to any other changes from the base image. Now that we're capable of running rootless though I'm not sure we'd have many of these kinds of changes.
Change the actual generation of the container to force the port back to 80
This is my least favorite - we changed the port for good reason and making this change defeats the 'rootless' story.
As a separate question, do we want to change this tutorial to make the container using the SDK? That would remove the entire section about creating Dockerfiles and replace the docker build command with dotnet publish -t:PublishContainer to get the same final result.


Cannot Duplicate Transparent Sync Item That Doesn't Exist in Database

If you have an item that is part of a transparent sync configuration that only exists on disk (not in the database) - for example, an item created by another team member which you got when you merged their source control branch into your own, if you try to duplicate the item you receive the following error:
Server Error in '/' Application.
Existing item to copy was not in the database!
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Existing item to copy was not in the database!

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[InvalidOperationException: Existing item to copy was not in the database!]
   Unicorn.Data.DataProvider.UnicornDataProvider.CopyItem(ItemDefinition source, ItemDefinition destination, String copyName, ID copyId, CallContext context) +386
   Unicorn.Data.DataProvider.UnicornSqlServerDataProvider.CopyItem(ItemDefinition source, ItemDefinition destination, String copyName, ID copyID, CallContext context) +202
   Sitecore.Data.DataProviders.DataProvider.CopyItem(ItemDefinition source, ItemDefinition destination, String copyName, ID copyID, CallContext context, DataProviderCollection providers) +159
   Sitecore.Data.DataSource.CopyItem(ID sourceID, ID destinationID, String copyName, ID copyID) +124

(not the full stack trace)
We can usually work around this by sync'ing the configuration or deserializing the item from the developer ribbon, but is there any way to make the duplicate operation work?

Give 3.1.0-beta01 (on NuGet) a shot. Also includes some other new junk like better automated tool authentication and a customizable control panel.

The team that was having this problem decided to stop using Unicorn for the time being and I couldn't talk them into trying the beta out, so I'll take your word for it for now.  If I see it happen on any of my own projects, I'll definitely give the beta a try and let you know.  Thank!


TsGzip, TkGzip, RsGzip

Gzip is not implemented, let's fix that

@rultor release, tag is 0.10

@rultor release, tag is 0.10

@yegor256 OK, I will release it now. Please check the progress here

Release 0.10 already exists! I can't duplicate it, but I posted a comment there. In the future, try to avoid duplicate releases

@rultor release, tag is 0.10

@yegor256 Done! FYI, the full log is here (took me 18min)


I pulled the most recent updates and the code no longer runs.

Description
Here is the error:

I exec the program using npm start project:dev. It seems to not like the .warn within the config.js. I attempted to just console.log() instead, but after execution the .warn get's reverted...I'm assuming it has something to do with your setup (not sure), but I decided not to further mess with it as of now not to break anything.

I believe there error was introduced in this commit: 86bef5a617e43f3b2ad29e0f8d9c3adb3920b80f

nevermind, I get it now....frick me. :/


Message not delivered to DLQ

Hi everybody,
I try to write an integration test that checks that my deletionPolicy is correctly configured. I use version 2.13:1.2.0 in an embedded fashion. My configuration looks like this:
include classpath("application.conf")

akka.http.server.request-timeout = 40 s

queues {
  retry-queue {
    defaultVisibilityTimeout = 1 seconds
    delay = 500 millis
    receiveMessageWait = 0 seconds
    deadLettersQueue {
      name = "retry-queue-dead-letters"
      maxReceiveCount = 3
    }
    fifo = false
    contentBasedDeduplication = false
  }
  retry-queue-dead-letters {
      defaultVisibilityTimeout = 1 seconds
      delay = 500 millis
      receiveMessageWait = 0 seconds
      fifo = false
  }
}

The 40 seconds I took over from an older issue. Nevertheless, after the three retries, I can always see this in the logs:
15:10:48.928 [elasticmq-akka.actor.default-dispatcher-11] INFO  akka.actor.DeadLetterActorRef - Message [scala.runtime.BoxedUnit] from Actor[akka://elasticmq/user/$a/$a#1636093795] to Actor[akka://elasticmq/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then Actor[akka://elasticmq/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

and when I try to get a message from the DLQ, it's empty. For the sake of completeness, here's the initialization code:
        val config = ConfigFactory.load("elasticmq.conf")
        val server = ElasticMQServer(ElasticMQServerConfig(config))
        val shutdown = server.start()

Does anybody know what's going wrong?

Hey guys I have the same problem but it is not consistent.
here is my repo https://github.com/GemunIon/nestjs-sqs
in one terminal run
java -Dconfig.file=.github/build/elasticmq.conf -jar elasticmq-server-1.2.0.jar

in another
npm i
npm t

as I said it is not consistent so you may have to execute npm t several times

@rbraeunlich  I wouldn’t worry about that log - it is as intended and it happens because of this line. Message is copied to DLQ and it is removed from previous processing.
I don’t know why did you have an empty DLQ though 🤔  . You send something to Q, then you acquire it more times than maxReceiveCount (taking into account visibility timeouts), and then message will be transferred to DLQ (log from DeadLetterActorRef happens around this time). After it is transferred there, it will stay until it is removed or server is restarted. You can look up statistics of all queues on port 9325 - maybe this will help.
If your code produces a lot of moving to DLQ and logs are annoying, you could silence them in logback (if you use it). I believe that this entry will do the job.

Below is code I used for testing - maybe you will see something of use for you:
package elasticmq

import com.amazonaws.auth.{AWSStaticCredentialsProvider, BasicAWSCredentials}
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration
import com.amazonaws.services.sqs.AmazonSQSClientBuilder
import com.amazonaws.services.sqs.model.{Message, ReceiveMessageRequest, SendMessageRequest}
import scala.jdk.CollectionConverters._

object ExampleClient {
  val host = "http://localhost:9324"
  val qurl = host + "/queue/retry-queue"
  val dlqurl = host + "/queue/retry-queue-dead-letters"

  val client = AmazonSQSClientBuilder
    .standard()
    .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("x", "x")))
    .withEndpointConfiguration(new EndpointConfiguration(host, "us-east-1"))
    .build()

  def getOneMessage(queueUrl: String): Message = {
    client
      .receiveMessage(new ReceiveMessageRequest(queueUrl)
        .withWaitTimeSeconds(2)
        .withAttributeNames("All"))
      .getMessages
      .asScala
      .headOption
      .orNull
  }

  def main(args: Array[String]): Unit = {

    println(s"Qs available: ${client.listQueues()}")
    println()
    val req = new SendMessageRequest(qurl, s"Message 1")
    //      .withMessageGroupId("1") //when fifo = true
    //      .withMessageDeduplicationId("DedupId") //when dedup = true

    client.sendMessage(req)
    val visibilityTimeoutInMillis = 1000

    println("Receiving messages from Q")
    for { i <- 1 to 5 } {
      println("i = " + i)
      Thread.sleep(visibilityTimeoutInMillis + 100)
      println(client.receiveMessage(qurl))
    }

    println("Receiving messages from DLQ")
    for { i <- 1 to 5 } {
      println("i = " + i)
      Thread.sleep(visibilityTimeoutInMillis + 100)
      println(client.receiveMessage(dlqurl))
    }
  }
}

@TrejGun I don’t know type script, but I will share my insights - test passes when it is ran on clean server or if we wait at least 10s (visibility timeout). Other than that your last test fails. I don’t see any message in q statistics. Is your code producing and removing message immediately from q?

@pierscin yes you are right 10 seconds timeout works

@TrejGun so is your issue resolved?

yes, thanks

Hey @pierscin
thank you for the example and the explanation. I managed to get my test running. Looks like it was a misconfiguration in the Docker container wrapping the ElasticMQ server.


Introduce a new option 'focusElement' for jquery.floatbox.js.

@njam please review,

How about raising an error if the focusElement is outside the floatbox - this way the developer will notice something's off!
Add focusElement to options (as null) for documentation purposes?

@njam please review.

Only call .focus() once, i.e. assign an intermediary $focusElement variable?

@njam please review.

Code looks good, one more thing, how about extracting this into _getFocusElement()?

@njam please review.

lgtm


limit condition is very slow

now, the count of "select * from table where id like ‘%XXX%’ " is 9;
I execute "select * from table where id like ‘%XXX%’ limit 9",it is very fast;
but i execute "select * from table where id like ‘%XXX%’  limit 10",it is very slow,it will query all of the data!
why?  i want the result very fast,What should I do？
I'm sorry, my english is not good!

That's probably because it's easy to find 9 rows that match your regex. However, it may need to scan a lot more data to find a 10th.


Auto pip install

I automated pip install but you have to manually set environmental variable.

The code I wrote ran successfully, but the later part did not becasue the cluster did not have cython installed. When I attempted to install cython I got permission errors:

This time I added requirement.txt. When I ran python setup.py install I got the following errors:

I also tried running pip.install mirage but I got some other errors:

This time I added requirement.txt. When I ran python setup.py install I got the following errors:

Make sure you compile on a GPU node (instead of the catalyst-cluster login node), since there is no GPUs on the login node. You can do so by running salloc --nodes 1 --gres=gpu:1 and then ssh to the assigned node, which should be one of catalyst-0-9 ... catalyst-0-15.

I also tried running pip.install mirage but I got some other errors:

I am not 100% how to resolve this issue.

nce there is no GPUs on the login node. You can do so by running salloc --nodes 1 --gres=gpu:1 and then ssh to the assigned node, which should be one of catalyst-0-9 ... catalyst-0-15.

I tried this but I got different error messages when running pip3 install:

I also tried cd into python and run python3 setup.py install and I got the same cython permission denied error as before.

I fixed some bugs but _cython is not in mirage

I tried running the commands maually using the unmodified verison of setup.py as specified in INSTALL.md, and I got the same error message. Using pdb I realized the error message came from python return cythonize(ret, compiler_directives={"language_level" : 3}) ![WechatIMG610](https://github.com/mirage-project/mirage/assets/89547922/b1fa70dc-6033-4959-87c4-65ac4c96ff3a) could you please take a look at config_cython()  ?

I tried running the commands maually using the unmodified verison of setup.py as specified in INSTALL.md, and I got the same error message. Using pdb I realized the error message came from python return cythonize(ret, compiler_directives={"language_level" : 3})’‘’  could you please take a look at config_cython()‘’‘ ?

I tried running the commands maually using the unmodified verison of setup.py as specified in INSTALL.md, and I got the same error message. Using pdb I realized the error message came from python  return cythonize(ret, compiler_directives={"language_level" : 3})  could you please take a look at config_cython() ?

does that mean it worked?

I also have some questions about it. cuDNN and CUDA is not available as a Python package on PyPI. cuDNN is a GPU-accelerated library for deep neural networks provided by NVIDIA, and it should be installed via conda or directly from NVIDIA's website, not from PyPI. So I removed cuda and cudnn version from requirements.txt, but they are both installed, and it seemed working. Does that mean it's done or I should fix them??

@jiakunw Thanks for the PR. One quick comment: you may not want to include your personal vscode config in this PR: vscode/sftp.json.

fixed!

The PR looks great overall. One last thing: you can use git rm to remove the sftp.json file and run script/format.sh to auto-format your changes.

script/format.sh

'(base) jackiexu@Jackies-MacBook-Pro mirage % scripts/format.sh
scripts/format.sh: line 71: mapfile: command not found' I got this error when I ran it

I can correct format in another PR. Can you use git rm to remove your json file from this PR.

I removed it yesterday and there was no json file in the repo

It is still there in this PR: https://github.com/mirage-project/mirage/pull/20/files. Let me push a fix to address this issue.

I re-removed it, it should be good for now :)

merged. Great work!


Change file type for multiple files

It would be good to allow users to select multiple files in the worskpace and change their file types in batch mode, by providing an action button in the green bar.
-Maulik

This feature was demonstrated on sys dev call and confirmed working on alpha.


Redundant "value_error.missing" messages for body params in request with empty body.

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from fastapi import FastAPI, Body, Query

app = FastAPI()

@app.post('/test-body-params-in-post')
def test_endpoint1(param1: str = Body(...),
                  param2: str = Body(None),
                  param3: str = Body('bla')):
    return [param1, param2, param3]

@app.post('/test-query-params-in-post')
def test_endpoint2(param1: str = Query(...),
                  param2: str = Query(None),
                  param3: str = Query('bla')):
    return [param1, param2, param3]

@app.post('/test-query-and-body-params-in-post')
def test_endpoint3(param1: str = Query(...),
                  param2: str = Query(None),
                  param3: str = Query('bla'),
                  param4: str = Body(...),
                  param5: str = Body(None),
                  param6: str = Body('bla')):
    return [param1, param2, param3, param4, param5, param6]

Description
So, lets start making empty requests via requests and see what fastapi returns in error message.
requests.post('http://localhost/test-body-params-in-post').text
'{"detail":[{"loc":["body","param1"],"msg":"field required","type":"value_error.missing"}]}'

Hm, nothing strange. Ok. Continue. What does happen if we send an empty string instead of empty json (aka {})?
requests.post('http://localhost/test-body-params-in-post', json="").text
'{"detail":[{"loc":["body","param1"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param2"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param3"],"msg":"field required","type":"value_error.missing"}]}'

Looks weird. We have only one required parameter but fastapi returns "field required" for all.
requests.post('http://localhost/test-query-and-body-params-in-post', json={}).text
'{"detail":[{"loc":["query","param1"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param4"],"msg":"field required","type":"value_error.missing"}]}'

requests.post('http://localhost/test-query-and-body-params-in-post', json="").text
'{"detail":[{"loc":["query","param1"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param4"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param5"],"msg":"field required","type":"value_error.missing"},{"loc":["body","param6"],"msg":"field required","type":"value_error.missing"}]}'

Operating System
Linux
Operating System Details
No response
FastAPI Version
0.65.3, 0.70.1
Python Version
Python 3.9.9
Additional Context
No response

this behavior exists also in cases with json like "[]", "[{}]", etc.

Hm, nothing strange. Ok. Continue. What does happen if we send an empty string instead of empty json (aka {})?

There problem is in how you send your data, when you write:
requests.post('http://localhost/test-body-params-in-post', json="").text

In JSON you will actually get:
json.dumps("")
'""'

But if you send
requests.post('http://localhost/test-body-params-in-post', data="".encode("utf-8")).text

Result will be normal:
{"detail":[{"loc":["body","param1"],"msg":"field required","type":"value_error.missing"}]}

Compare:
json.dumps("").encode("utf-8")
=>
b'""'
"".encode("utf-8")
=>
b''

Hm, nothing strange. Ok. Continue. What does happen if we send an empty string instead of empty json (aka {})?

There problem is in how you send your data, when you write:
requests.post('http://localhost/test-body-params-in-post', json="").text

In JSON you will actually get:
json.dumps("")
'""'

Cause you tell json to encode empty, but still featured python string object But if you send
requests.post('http://localhost/test-body-params-in-post', data="".encode("utf-8")).text

Result will be normal:
{"detail":[{"loc":["body","param1"],"msg":"field required","type":"value_error.missing"}]}

Compare:
json.dumps("").encode("utf-8")
=>
b'""'
"".encode("utf-8")
=>
b''

yep, thats because json.dumps(""). and its not my problem. i guess i could send everything and should get logically expected response.

I don't think so, when you send invalid JSON object type you will get corresponding error message

I don't think so, when you send invalid JSON object type you will get corresponding error message

and it would be logically expected response.

this behavior exists also in cases with json like "[]", "[{}]", etc.

@insomnes you can try to send these through the api docs and see the same response where all non required fields became required.

I've checked it on pydantic models and it's behavior is different, right as you expect.
Need to check sources to see what causes difference.

Interesting, if body decoded as json, and object type in it not support received_body.get(field.alias) method, than even not required body parameters will be added as missing


Update the quickstart section of the documentation

Description
Update the quickstart section of documentation, so that it complies with the latest changes in the API.
Related Issue

[x] quickstart section of latest commit was outdated.

Type of change
The types of changes must be deduced from the labels of the related issues. Please consider providing these further details.

[x] This change only concerns the documentation

How Has This Been Tested?
tested all the code in the tutorial on my machine
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have updated the documentation according to my changes

It won't be merged now as this PR takes into consideration unreleased features.


gpu usage during inference

Hi
is it compulsory to use GPU during inference while using your models.

No, see this.


Website Konachan

What steps will reproduce the problem?
Be able to add the site.
What is the expected behavior? What do you get instead?
Is the Url Incorrect?
How often does this problem occur?
Everytime I try
What version of the program are you using? On what operating system?
5.2.4 and Windows 7 x64 bit
Please provide any additional information below
None

Well it just means it can't guess which source it it.
But konachan is in the sources of the default installation, and it's a "Moebooru" site, so you can just select it manually.


mistake in readme

echo "export PASSWORD_STORE_ENABLE_EXTENSIONS=yes" >> ~/.bash_profile
PASSWORD_STORE_ENABLE_EXTENSIONS should be true, not yes.
from man page:
"This environment variable must be set to "true" for extensions to be enabled."

Thanks for the catch @stavinsky. I have updated the README in 4a1e31f