Dataset Viewer issue for CSV datasets

Link
https://huggingface.co/datasets/scikit-learn/breast-cancer-wisconsin
Description
I'm populating CSV datasets here but the viewer is not enabled and it looks for a dataset loading script, the datasets aren't on queue as well.
You can replicate the problem by simply uploading any CSV dataset.
Owner
Yes

this should now be fixed

Confirmed, it's fixed now. Thanks @coyotte508


Solution for invalid dynamic routes

We use dynamic routes for each of the line pages (/red, /orange, etc.).
If a user navigates to an invalid page, this gets sent to the [line]/index.tsx page since Next things it's a dynamic route. It should be sent to a 404 page instead.

This doesn't seem to work on beta today. It doesn't send to the 404 page, it just sends to the weird line selection

This now works - but it still has the dashboard layout - which is a little weird. Can be fixed when we add custom layouts.

This seems to work locally, but not when running in beta on the build

Oh interesting, must only work with Next server

Looked into this a bit today. Our error page in the AWS static website configuration was set to index.html, which would explain why this was happening. But I changed it to 404.html and it didn't seem to fix it.
When loading a nonexistent page, the HTML file for the root URL is returned by the server. I'm not sure why.

Another interesting piece of info actually correctly returns the 404. Must have something to do with the service we're using to reroute the URLs. I think it's cloudfront?
Using the S3 bucket URL https://dashboard-v4-beta.labs.transitmatters.org.s3-website-us-east-1.amazonaws.com/broken/link

Yep, the Response Page Path here was set to index.html...

Alright, that change fixed the issue of 404s not showing up at all - #651
But there is still the issue of a correct dynamic line route (/red) followed by an invalid page returns a client-side error page rather than the 404 page.

Fixed by #659


Skip bnd-maven-plugin configuration when bnd.skip is present

When bnd.skip is present, the bnd-maven-plugin configuration still kicks in and causes a
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.1:install (default-install) on project log4j-transform-maven-shade-plugin-extensions: The packaging for this project did not assign a file to the build artifact

failure.

This is probably caused by the <extensions>true</extensions setting, which should be changed to false in such a case.

Shall we put the bnd-maven-plugin under project > build > plugins to a separate profile activated via bnd.skip instead? Or does this sound more like a bug that should be filed for bnd-maven-plugin?

Sounds more like a bug to me.
I can try to fix it or report it.

Indirectly fixed by #69.


frontend: make locize-pull for v4.45.0

That PR was pointless, it's now part of https://github.com/BitBoxSwiss/bitbox-wallet-app/pull/2948/


Add 'preselect'  field to the CompletionItem

VS Code 1.25 adds new preselect field to the CompletionItem. The field allows completion providers to specify which item should be initially selected in the completion list.
By default clients usually select first or last used items, which is limiting. A completion provider may choose to select different item based on other conditions, such as current code editor context, probability of use of certain items, and so on.
This request is to add equivalent field to the CompletionItem structure therefore allowing use of preselection in VS Code from language servers as it is possible from the regular completion provider.
https://github.com/Microsoft/vscode/blob/9ba606df0ee5c2a386eac532771ac343a62f1985/src/vs/workbench/api/node/extHostTypes.ts
Per
https://github.com/Microsoft/vscode/issues/35551
https://github.com/Microsoft/vscode/commit/62e0f34a3569f2cab4d16b2ef36dde285d39a9cf

Closing the issue. I have release new client and server version that have support for this.


Mods to integrate accuracy computation into scale-up workflow

This PR is to add changes to integrate the accuracy computations to the AWS scale-up workflow. The highlights of the changes are:

add --ebt option to compute_acc_with_hls.py to provide EBT when querying to CMR
Suppress running compute_acc_with_hls.py inside dswx_s1.py for convenience in passing the credential (i.e. EBT)
A minor fix for importing a module.

Closing this PR as the #3 replaces its purpose.


[RUNTIME] [OPENCL] Fix access modifiers

These members could be private.
@kazum could you please review?

Thanks @imorinaga @kazum , this is now merged


Fantastic job!

I just wanted to thank you for making this public! Now I need to find a project that can make good use of it!

<3


feat(optimizer): Add 2-phase aggregation for queries with no group keys

What's changed and what's your intention?
As per title. Part of #2638

[x] Logic for 2-phase aggregation
[ ] Extending BatchSimpleAgg to support Distribution::SomeShard.

Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests

how about implement it in SimpleHashAgg::to_distributed instead of LogicalAgg::to_batch? ...

When you mention SimpleHashAgg do you mean BatchSimpleAgg? Or are you referring to a new struct I should create?

how about implement it in SimpleHashAgg::to_distributed instead of LogicalAgg::to_batch? ...

When you mention SimpleHashAgg do you mean BatchSimpleAgg? Or are you referring to a new struct I should create?

oh yes, BatchSimpleAgg

... for example if the Agg's input has distribution Single or shard by the group key, we actually do not need 2-phase agg. ...

Actually why is this the case? I was thinking that with distribution Single, we could still use BatchExchange to distribute before doing 2-phase agg.

... for example if the Agg's input has distribution Single or shard by the group key, we actually do not need 2-phase agg. ...

Actually why is this the case? I was thinking that with distribution Single, we could still use BatchExchange to distribute before doing 2-phase agg.

well, some cases we do not need a exchange, just do the agg with the input distribution

hashAgg-hashJoin, if the bottom hash join's join key is same as the hashagg's group key, we can directly do the shuffle agg on the join's shards.
simpleAgg-topN, the topN provides a single we can just do the agg on the single machine

Added a commit to permit HashShard at the LogicalAgg -> BatchSimpleAgg pass as well.
Could you leave a thumbs-up if it still LGTY @lmatz? Thanks!


Validate https secure protocol for jira cloud install.

Summary
Problem
When configuring webhooks, in Jira, the SITEURL must use https:// if connecting to a cloud instance. This ticket has two requests.
Document in the README that cloud instances will require an https endpoint.
Add validation that will reject non-https URLS for jira cloud instances. This will be handled in the code that is executed with /jira install cloud
Resolution
Validate non secure http protocol command line for cloud install.  Present user with correct command line.
Update readme file with secure protocol requirement (HTTPS)
Ticket Link
Fixes https://github.com/mattermost/mattermost-plugin-jira/issues/487

Codecov Report

Merging #552 into master will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #552      +/-   ##
==========================================
- Coverage   33.96%   33.94%   -0.03%
==========================================
  Files          37       37
  Lines        4602     4605       +3
==========================================
  Hits         1563     1563
- Misses       2890     2892       +2
- Partials      149      150       +1

Impacted Files
Coverage Δ

server/command.go
23.70% <0.00%> (-0.16%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8f065da...86b567a. Read the comment docs.

@jasonblais can you help to close / merge this PR? Thanks!

Thanks @Francois-D !! 🎉

@levb @jfrerich looks like this is ready to merge?

Thanks @Francois-D and @jfrerich!


ci: Unfork less.js

The issue we had in less.js v4 has since been resolved.  This updates to less.js v4.2.0, which includes the underlying fix from its dependency, needle v3.1.0.
Unforking also resolves CI issues where gitpkg.now.sh temporarily fails to load, causing the whole test run to fail before it can start.

@shaka-bot test

Unrelated to this PR, but here I'm testing a shaka-bot command in the middle of a comment:
@shaka-bot help
I think this might be broken, and I might get no reply.

Verified that less.js doesn't break on Mac (the issue that caused us to fork originally.)


removal of 204 code

204 code was never part of spec: https://community.letsencrypt.org/t/no-204-code-on-nonce-check/83959
after removal, dns validation works

Hi @MichalPP I think this PR is a duplicate of https://github.com/stonemax/acme2/pull/32

ok, I searched just issues, not PRs.

Hi
I wonder if it shouldn't be :
        if ($code != 200)         {             throw new NonceException("Get new nonce failed, the url is: {$newNonceUrl}");         }


Remove ca-derivations removeReferencesTo

This reverts remove-references-to fixups added for CA-derivations, which isn't needed anymore after the merge of #359098
This specifically reverts the PRs:

#350137
#297466
#258705 (without ruby)

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks!
(But you need to remove the ruby one and send it to staging instead.)

Sorry I didn't add that this PR does not undo the ruby one. The commit https://github.com/NixOS/nixpkgs/pull/258705/commits/f391429b917a2f9ffb4136808c73fe3e11e46acd doesn't really add a removeReferencesTo but replaces a  ${removeReferencesTo}/bin/remove-references-to with  remove-references-to so I would leave it alone

It changes disallowedRequisites, though; are we sure that change is correct?

Good question. I'm not familiar with ruby in any way to answer that

This can be undrafted, right? The disallowedRequisites conversation is about the stuff that is not included, right?

Yes, I haven't found any more ca fixes to revert


Added CacheResolver to underlying ProxyResolver

Coverage decreased (-0.01%) to 7.87% when pulling 459875b98489d342ea1126c54a1aa16ce7887226 on denmit:master into 9efd5a1695ea4e73ee3af0ca01106469fd127c48 on Opifer:master.

Coverage remained the same at 7.87% when pulling 1b79b0e0896f65593412415021b6dd02966bda57 on denmit:master into 9efd5a1695ea4e73ee3af0ca01106469fd127c48 on Opifer:master.

Coverage remained the same at 7.87% when pulling e62ca795da23df1d57afc6892510fe3c46102008 on denmit:master into 9efd5a1695ea4e73ee3af0ca01106469fd127c48 on Opifer:master.

Thanks!


Default weight of pool origins

Presently the type LoadBalancerOrigin is defined as:
type LoadBalancerOrigin struct {
	Name    string  `json:"name"`
	Address string  `json:"address"`
	Enabled bool    `json:"enabled"`
	Weight  float64 `json:"weight"`
}

When instantiated without setting Weight, Golang defaults it to 0. This isn't desirable; Weight should probably be defaulted to 1.
Related: #175

@sssilver Just looking at the documentation, the weight field accepts a value between 0 and 1. I haven't used this product in depth myself so would you be able to provide a little more information on why you think the default should be 1? I'm happy to make the change but haven't hit this issue myself.


Figure out the art licensing

I think we decided something for this. Wasn't it CC by nc sa?

Yes, we picked CC BY NC SA. Just have to write some docs to state that the code is under Apache, but the art is under CC. Probably need a separate file for art licenses if we ever pick up stuff from other places, like opengameart.org .
Example:
[![Creative Commons License](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-nc-sa/4.0/)
This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/).

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
https://creativecommons.org/choose/results-one?license_code=by-nc-sa&jurisdiction=&version=4.0&lang=en

Converted html to markdown to be more easily included. Will create files for licensing soon.


fix: a bug 4956

Overview
#4956
#6753

What is it?

[x] Feature / enhancement
[x] Bug
[x] Docs / tests / types / typos

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Use cases and why

One use case

Another use case

Checklist:

[ ] My code follows the developer guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

have already had tests


fix one case in which accuracy metrics are None type

Not a proper "fix" - just because one accuracy metric is None, none will be printed now. Instead that one None should be simply ignored (skipped on), or the situation prevented from existing in the first place. Why not fix at the level of the function that returned None? It shouldn't have because what's the meaning behind accuracy of None - none! Instead it should have return an empty dictionary as this function expected.


tap with promise chains

I'd like to add tap variant to a promise chain (from composeP or pipeP) with the idea that the tap is dealing with a promise. Does a tapP function have any use? Or do we just do
var tapP = function (fn) {
     return function (promise) {
         return promise
             .then(function (x) {
                  fn(x);
                  return promise;
             });
     };
};

My feeling is that this would be best placed in the Cookbook.
Promises are not well-loved around here, and we're much more likely to be removing Promise-related functionality than to be adding it.

Seems like tap works just fine inside a promise chain https://goo.gl/uOL9cG

Indeed it does. Not sure what I was thinking when I cooked up the idea for tapP. Thanks for pointing it out.

Even better!

@bijoythomas @Bradcomp
tap only works if wrapped function does not return a promise. In other words, if tap wraps a promise, pipeP will not wait not for the promise to return before passing down the chain.
Please see my example here: http://bit.ly/2lClYM6
The first promise ('first') should resolve before the second promise ('second') but it did not.
We need a tapP which is a promise-aware tap that will resolve the promise before passing down the chain. (I need it... @bijoythomas needs it... I hope more people need it so that it becomes part of the module)
Please advise if this makes sense or if there are alternatives.
If this is useful to the community, I can help to contribute this feature.
A quick idea of tapP is like below:
var tapP = (fn) => (promise) => {
  return promise.then((result) => {
    return fn(result).then(() => result)
  })
}

@stevenyap Just to clarify, I was under the wrong impression that the function wrapped withtap in a pipeP or composeP chain would be called the promise itself instead of what it resolves to.
The function wrapped with tap gets called with the result of the previous member of the chain in a non-promise chain, and the actual resolution of the promise in a promise chain. This helps so that I just need one function that I can wrap with tap regardless of the chain I use.
The other behavior of tap is that its return value is never used. It just calls the wrapped function with the argument and whatever it returns is sort of discarded in the chain.
See example here: https://goo.gl/pHoQQ0
In that sense, even if the tap returned a promise, the chain would not wait for it since I believe that's just how the chains use tap

The other behavior of tap is that its return value is never used. It just calls the wrapped function with the argument and whatever it returns is sort of discarded in the chain.

Yes, that's why it's an odd fit for Ramda.  It's so useful that we keep it, but it's strange to have a function only useful for its side-effects.
That it works this way should be clear enough from the source:
const tap = curry(function tap(fn, x) {
  fn(x);
  return x;
});

It's all about the side effects... odd.

@bijoythomas thanks for your clarification... in your case as the wrapped function in tap are non-promise, so tap works.
For my case, my wrapped function is a promise in which tap does not work in a promise-chain.
@CrossEye do you think it is worthy to have a tapP function in ramda for my use case?
I used it a lot when chaining with pipeP. I am willing to contribute that code.

tap might be a bit unusual in that it's only useful for side effects but it's so useful for debugging that even Haskell has an equivalent.

@stevenyap:

@CrossEye do you think it is worthy to have a tapP function in ramda for my use case?
I used it a lot when chaining with pipeP. I am willing to contribute that code.

I think it most likely belongs in the Cookbook, not in the library proper.  Most of the core contributors are not particularly fond of Promises and don't particularly want to encourage the use of them with Ramda.

@CrossEye thanks for reply! I hope you don't mind but I am curious as to If we don't want to encourage user to use Ramda with promises, what is the preferred style to handle promises from a Ramda or functional programming point of view?

@stevenyap, I recommend a Fantasy Land -compatible Future or Task type such as the one provided by Fluture.

I agree with @davidchambers.  The main point is that Future/Task implementations follow known laws and can be used in a manner consistent with many other types.  Promise implementations generally do not.


devicetree: Allow child-binding bus controller without a need of compatible

Currently it's not possible to have a child-bindings acting as a bus controller unless there is a compatible property associated to it
Currently to describe an i2c mux one would need to create a binding like the following:
compatible: "ti,tca9546a"
include: "i2c-device.yaml"

properties:
    label:
        required: true
        type: string
        description: tca9546

child-binding:
    include: "i2c-controller.yaml"
    compatible: "ti,tca9546a-child"
    description: Downlink I2C bus tca9546

The child binding is only used as a placeholder and will probably not be used by the device driver but without it the child-binding is not taken as a bus controller
The following should be possible:
compatible: "ti,tca9546a"
include: "i2c-device.yaml"
properties:
    label:
        required: true
        type: string
        description: tca9546

child-binding:
    include: "i2c-controller.yaml"
    description: Downlink I2C bus tca9546

See #32071


Return from pre_commit_hook if no files changed.

When "git commit --amend" is used when no files are staged (for example,
to reword a commit message), git-secrets --pre_commit_hook scans the
entire working tree. This is because the scan() function is called with
an empty file list.
For large repos, this causes a bad user experience; the user expects
their editor to open immediately, but instead the pre-commit hook runs
for multiple seconds (9 seconds in the linux kernel on my workstation),
with no progress indication. If the repo contains any previously
committed files that match git-secrets patterns, the editor never opens,
and git-secrets' error message is displayed.
We can make the pre_commit_hook() function return immediately if there
are no changed files, which should match user expectations.
Closes #129
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Bump on this PR, any chance it can get reviewed?

@mtdowling any chance to merge this? Thanks.

Bump, please review.

For me the error still exists with a .gitallowed file enabled.
When I want to edit my last git comment with git commit --amend it is not possible due to not respecting .gitallowed .
Also tried an interactive rebase with command r (git rebase -i main). Same error.
Remarks
➜  ~ brew info git-secrets
git-secrets: stable 1.3.0 (bottled), HEAD
Prevents you from committing sensitive information to a git repo
https://github.com/awslabs/git-secrets
/usr/local/Cellar/git-secrets/1.3.0 (8 files, 66KB) *
  Poured from bottle on 2021-08-17 at 09:24:12
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/git-secrets.rb
License: Apache-2.0
==> Options
--HEAD
        Install HEAD version
==> Analytics
install: 1,105 (30 days), 3,558 (90 days), 17,860 (365 days)
install-on-request: 1,105 (30 days), 3,560 (90 days), 17,856 (365 days)
build-error: 0 (30 days)
➜  ~

This fix is in use at https://github.com/aws-lumberyard/git-secrets/pull/1


2 new features to facilitate towns

To implement a town protection, I need some additional capabilities in GP.
Here is my scenario:
(1) I want to protect a large town area with admin claim.
(2) Inside the town area, I want to create a subdivision for each empty house slot.
(3) I want any player to be able to visit the town and create their own claim inside the empty house slots without requiring actions from admins.
(1) and (2) above can already be done using current GP with claim and subdivisions. However, (3) will requires some additional features:

A claim level below subdivision (sub-subdivision?). Or maybe even better if GP would remove the whole subdivision concept and allow any hierarchy of claim (a claim can be created inside any existing claim and may inherit perm and flag, a depth limitation may be enforced to ensure server performance).
A new claim flag to allow creating sub-claim. As discussed in Discord, this flag should be "true for all" for wilderness and default to "owner only" for normal claims.

It would be great to at least be able to transfer subdivisions (maybe make it a seperate /plot) so that you can use /transferclaim to give the claim to someone else, which would then credit you back with the blocks spent and use up the new owners claim blocks instead. It would of course need to check that the player in question has enough claim blocks available for the /transferclaim to go through. As for flags I think it would be enough for them to reset to the standard player claim config (server specific-eg global overrides staying intact).
I think being able to claim subdivisions/"plots" without the claim owner's/admin's action should be optional, because if let's say a player makes a town on the server, they might have criteria for allowing players to join the town or they might not want "troublemakers" claiming one of the plots.

@nguyenquyhy @nettyneets I'm thinking of doing the following

Remove subdivisions. Instead, you will simply create a "sub-claim" that can be transferred to a new owner (essentially selling part of your land). This would allow players to claim a large area then start to sell pieces of it for a price. As for selling, this would need to be discussed on how the sale should take place. I'm open to ideas.

Allow sub-claims to have children claims with no depth limit.

Thoughts?

I think with regards to selling it would be good to have two options:

Open sale - let the player selling the claim set a price, and have some sort of chat notification letting you know that the claim is for sale, and the claim's price when you enter it. That way anyone could buy the claim by running a command without the seller's action.
Closed sale - let the owner put the claim up for sale and set a price, and have a chat notification like "This claim is available for purchase for $100  from (owners name). Please contact them to buy it." Then they could run a command to sell the claim to a chosen player.

@bloodmc I think this is an interesting idea; perhaps claims in the wilderness claim should also be considered "sub-claims" of the wilderness. This hierarchy would be much more organized.
In regards to selling, @nettyneets pretty much summed it up.

@bloodmc and I were discussing this in Discord. Here is the points we discussed.
The plan for now is to allow you to create a new subclaims inside of subclaims. This would just set the claim parent to the subclaim that is above it.
Trivial by itself, but there is more specifics and logic that needs to be thought about here to facilitate towns.
Town Creation
To create a town, you should simply be able to create a large claim.
This large claim should be able to be resized in the future to expand your town.
Once you own this large claim, you will be able to create subclaims that are capable of being transferred away.
Claim Transferring
To explain my ideas better here, I will give you a scenario similar to the one @bloodmc gave in Discord.
Scenario
Say Player A is the founder of GPTown. GPTown's claim is worth 1,000 blocks.
Player B wants to live in your town, so you create him a subclaim in GPTown's large claimed area that is sized 100 blocks. You then transfer the subclaim's ownership to Player B.
How is the claim block count dealt with here?
My suggestion is that Player B's available claim blocks is reduced by 100 and Player A's available claim blocks is increased by 100.
The size of GPTown is now 900 blocks, but 1,000 cumulative.
Player A no longer has access to the subclaim that he transferred ownership of, and he is not responsible for it's claim blocks.
Claim deletion/unclaiming or Town disbandment
This is a quite important one to talk about because it has the capability of completely destroying a town.
Essentially, a subclaim that does not belong to the upper claim owner should become an independent claim if the upper claim is deleted. This "new" claim will be just like a normal claim that is created in the wilderness. Any subclaims of the said subclaim will still belong to it, unless it is disbanded and then the cycle begins again.
If Player A unclaimed GPTown's claim, he would receive 900 claim blocks and not 1,000 because 100 of the claim blocks are part of a subclaim that will soon become it's own upper level claim.
Claim Visualization
When dealing with infinitely recursive claims, it needs to be possible to differentiate upper/lower level claims from eachother.
My suggestion for this is to cycle through wool colors.
If you run out of wool colors in the claim corners while visualizing, it will just start from the beginning again. By time you run out of wool colors, it should be very obvious to differentiate the first set of colors from the second set. They should be far enough apart to tell.
Please leave your opinions.

@nguyenquyhy @nettyneets @inklit @LemADEC @KumaGetsu @Vauxite @Mohron @Eufranio @OblivionNW @lightningo7 @IBGnova @hunter688 @5igm @Nentify @Karaga
Please discuss above as I plan on implementing town features as soon as everyone agrees on how this should all be setup.

I like the idea of what is presented however I do see some issues coming up.
Going back to the GPTown example let's say Player A is the founder of the town, he wants to control what people do and sets up a rule board saying that members can not use redstone devices in their claims or the member will be kicked out.
Player B joins the town, and is given his claim, at which point he decides to make a redstone device, but Player A does not want this. If the claim is "given" to the resident of the town there is no way to enforce such things.
However, it may be a good idea to restrict certain kinds of access to the claim, E.G. chest and furnace access for privacy's sake.

And you'll have time for development SpongeForge @bloodmc ? Any dev helps you with this major feature of GP ? I prefer fixing major bugs in the server core instead adding new features to plugin which works very well.

I believe that people who like the town-approach prefer a more RPG like system. What's proposed is just a limited version of the default system.
How is the claim block count dealt with here?

A town should be assigned x players worth of blocks at creation.
All players generation of claim blocks are pooled to the town itself. There should a bonus factor for having more residents in the town.
Leaving a town means leaving your claimed blocks. This may sound harsh, but I believe this fit the theme.
There should be a limit on the amount of total accumulated claimblocks. Most likely by number of residents.

Claim deletion/unclaiming or Town disbandment

The town owner should never have the power to disband the town. As long as the town has residents one of them will be appointed as the new owner. Perhaps by amount of time spent in that town.
The town owner should be able to  reclaim any subdivided claim/plot. Should be sort of configurable eviction notice.
The town owner should be able to force flags for the whole town.
If everyone leaves a town, all accumulated claimblocks in that town will be lost.

So what happens if "Player B" disbands his claim? I do like the idea stated above where if you leave the claim you will lose your claim blocks, as I see that being the only way to do it unless you make a sort of "Town Claim Blocks Bank" where all the claim blocks for the town are stored.
What about Town Ranks, will this be like every other town plugin where you can appoint people to manage certain aspects of your town? Will the town owner have access to change flags within each players claim? If so will these be things we can (as server owners) determine what they can/can't edit within each "Town Member's" claim?
Will there be any sort of income or any incentive for a player to want to start a town other than to have a community? Would it be possible to add a feature that allows a sort of tax or an ability to sell claims rather than just "Transfer" them? I support both, but I would find it quite different if there was a sort of percentage cut that the Town Owner takes from each player (most likely defined in the config for all towns). Also would there be a price for the town, something like town upkeep?
And then going back to the editing of claims, would it be possible to trust a member to one area rather than to trust them to the full claim. So if you had a town hall or something of the sort could you make it so all players within your claim could access that area (not sure if this is already possible I don't mess with subdivisions much.)?
Would all of this be supported by 3D claims as well? I could see my players making some quite amazing towns with vertical buildings or even a hotel structure. :P
Will there be a town chat (a channel for town members to communicate without speaking in public chat)?
Will there be a cap on how many players can be in one Town, if so what will this be determined by. I would suggest the amount of claimed blocks the town has, maybe 10x10 per person (The starting amount of claim blocks by default)?
If I think of anything else I will just edit this post instead of making another.

Sounds like Towny style grief prevention to me, which is good but implies a few things:

town ranks: allow players to progress in the town hierarchy and gain new power/responsibilities
nations: allow towns to regroup (probably not initially)
taxes/rent periodically due to the mayor for your claim (claim upkeep) in addition to a 'buy' price
taxes/rent periodically due to the server for your town (town upkeep) in addition to a 'buy' price

I think sub-sub-sub-claims is relatively complex to understand and represent for players. I would suggest a proper configurable naming to differentiate them and just stick to 2 layers (town > claims), maybe 3 (town > neighborhood > plot or town > building > flat).
When a town mayor is offline for too long, town shouldn't disappear. Instead, town should remain as we don't want instant griefing or something in a community driven area. Staff would be notified on login of a 'MIA mayor' and can then name a new one.
Same goes when a claim owner goes MIA, the mayor is informed and should be able to deal with it.
We could allow residents to elect a new mayor, maybe through an addon of sort.
Mayor should be able to force flags on all subclaims, independently of the town flags (for example: allow mob spawning in the town, not in the claims).

I disagree with the suggestions @LemADEC made because GriefPrevention is supposed to be controlled by the players and fully self sufficient without staff action. On top of that, the points made about complexity are irrelevent as most people wont go that deep.

I don't really agree with this being in GP at all. If anything, I'd try cutting down GP to just land protection without "spam protection" and any other bloat. Perhaps move those features into another plugin.

@Nentity at the very least, subclaims need to be allowed inside of other subclaims.
I agree with you,  though,  another plugin that use GriefPreventions API should be for town specific mechanics.

@Nentify these features won't alter the way GP works at all. I will simply make a new type of claim called "TOWN" that will enable these features. If you don't want any town features then you simply don't give permission to create towns.

All players generation of claim blocks are pooled to the town itself. There should a bonus factor for having more residents in the town (this will act as incentive to have a town).
This, I agree with - players joining under a single leader's claim - a town, team, whichever you wish to call it, should have shared claim ressources. The idea is to make players group together, if they so want. If not, they can create their own claim which they can use the standard system for - with /trust as the only way to share it.

The claimedarea owned by residents will always be defined by town owner. Having subsubdivide claims adds a layer of unneeded complexity.
I disagree - there should be a way to divide the main claim, but the subdivide system would not be it. As discussed in the Discord, there should not be subdivides at all - leave those to singular or admin claims, and simply have two layers {TOWN[PLOT]} - where PLOT can be sold off (as per @nettyneets's idea, or leased and open for claiming). Issue I see with this is, the claiming of these plots should only be possible for members of the TOWN, and so owning claims within the main claim is seperate from being a member of the TOWN.

Side note, the neat idea of having the TOWN name as a user chat prefix would help enforce and propagate the usage - those of us moving off of towny-like Polis would find the task easier.

Google doc should be editable now.

@nguyenquyhy @nettyneets @inklit @LemADEC @KumaGetsu @Vauxite @Mohron @Eufranio @OblivionNW @lightningo7 @IBGnova @hunter688 @5igm @Nentify @Karaga
http://i.imgur.com/R2bTeKU.jpg
Core code for town support is nearly done =)


Menu option to route to special service body or group

I will explain our need:
Our previous Helpline system had a menu option for professionals seeking information about Narcotics Anonymous. They would be connected to a special group of trusted servants who had extensive PR experience to handle these calls. We would appreciate such a feature in Yap.

This is a duplicate of a feature already requested (#584) Closing it in favor of that one.
There is an option available already to route a call to another phone number for a special purpose.  So if you have another number that you'd like to route to you can.  The ability to specify a list of volunteers within Yap is not yet available but in the works.

Thanks Danny.
From: Danny Gershman @.***
Sent: Thursday, August 18, 2022 13:09
To: bmlt-enabled/yap
Cc: Paul Rinear; Author
Subject: Re: [bmlt-enabled/yap] Menu option to route to special service body or group (Issue #622)
This is a duplicate of a feature already requested (#584https://github.com/bmlt-enabled/yap/issues/584) Closing it in favor of that one.
There is an option available already to route a call to another phone number for a special purpose. So if you have another number that you'd like to route to you can. The ability to specify a list of volunteers within Yap is not yet available but in the works.
—
Reply to this email directly, view it on GitHubhttps://github.com/bmlt-enabled/yap/issues/622#issuecomment-1219732363, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVAGHLC4AEOCCWH3XKWEVLVZZU3NANCNFSM5654LCFA.
You are receiving this because you authored the thread.Message ID: @.***>


E2E: Add a --namespace hint which tests can choose to honor, and implement...

This is a solution to #6554  .
In follow on pull requests, we can

update more tests to use the namespace hint, and base namespaces off of it
consolidate the "randomeSuffix()" and "UUID" methods to all use something from util.go

and other cleanups so that the ns logic is less ad hoc.  this is just a first step in that direction.

... Added one more commit to this, (unsquashed)... to update density tests to honor ns as well.  I think it should be a separate commit since its a separate change, but belongs in this PR.

Thank you kindly for this contribution. Personally, I think with an iron first we should insist on each e2e test creating its own namespace. I am wary of anything that distracts from that goal. @quinton-hoole

i see your point.  part of the intent here is to provide  a hint that can be used as prefix... but if we absolutely don't want users to be able to influence the name of this e2e namespaces at all,  i can close this guy.

I defer to the testing Ubermesiters @zmerlynn and @quinton-hoole

Thanks<EMAIL_ADDRESS>Yes, we definitely need to clean up our act around namespaces for tests, and if you're willing to have a go at it, you have my full support.  I think that the correct approach is a variant of your suggestions, and goes roughly as follows:

Before every test invocation, the test infrastructure automatically selects/creates a well-defined list of unique namespaces, and passes them in to the test somehow (ginkgo BeforeEach() is one approach).

All tests use only those namespaces.  e.g. if a given test only needs one namespace, it uses the first one.  If it needs more than one distinct namespace, it uses the first 'n' in the list etc.  tests/e2e/services.go provides an example of this sort of thing. No test should ever use any other namespace - that would constitute a bug (although those could be fixed in separate PR's).

After every test invocation, the test infrastructure automatically deletes everything out of all of the namespaces that it selected in step 1 above.  Again, ginkgo AfterEach() is one approach here.

The above ensures that:

Even if tests don't clean up properly after themselves, the framework will.
Each test invocation is guaranteed a clean namespace within which to operate, without any logic in the test.  This also enables us to run all of the tests in parallel (in theory, at least).
Tests become significantly simpler, because they don't each require relatively complex cleanup with necessary retry logic etc.  Most of the tests currently get this wrong, in many different places.

Any disagreement?  If not, go forth :-)
Q

that works for me !
Should we support the --namespace  ? or just statically create a very unique ns in the code like org.googlecloud.e2e.testing[1-100] ?

No, I don't think that we should support --namespace, as that would enable/encourage people to pass non-unique namespaces into the tests.  So your latter suggestion applies.  There's code in tests/e2e/services.go that does a fairly reasonable job of this, although a simple piece of a GUID might be shorter and more unique.  You'll need to be careful of running up against length limits (e.g. external cloud load balancer names are currently constructed by concatenating the namespace and name of the service, and ELB names are limited to e.g. 64 chars in some cloud providers.  This is actually a bug in services that needs to be fixed.  There's an issue for it somewhere.

Whatever we do, please can we make sure it is relatively easy to run just a single test. If adding extra context in (e.g. a namespace supplied by the runner) makes it harder to carve out a test that can be run independently then that would be a shame. I am assuming this is not the case here -- but just in case -- I thought it worth mentioning.

gotcha, we will go with org.kubernetes....blah... as the default namespace for tests, and regex them with monotonically increasing integers like so
org.kubernetes.e2e0
org.kubernetes.e2e1
org.kubernetes.e2e2
org.kubernetes.e2e3
....

Sounds like a plan ?

If we can completely automate the creation and deletion and as much as possible that would be ideal.

This all sounds reasonable to me.
I think if we block on namespace deletion, e2e will appear a little slow until we move namespace_controller to use @lavalamp new controller framework.  Which I will look to do after his PR merges where the scheduler uses it as an example.
----- Original Message -----
From: "Timothy St. Clair"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Sent: Wednesday, April 8, 2015 4:22:53 PM
Subject: Re: [kubernetes] E2E: Add a --namespace hint which tests can choose to honor, and implement... (#6553)
If we can completely automate the creation and deletion and as much as possible that would be ideal.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/6553#issuecomment-91025765

satnam6502@ - yes, you will still be able to run individual tests exactly as today.  The Ginkgo framework automatically interjects and sets things up before each test.
jayunit100@ - remember that namespaces are local to a kubernetes cluster, so the org.kubernetes you propose is superfluous. I would prefer a simple UUID or timestamp.  Also, the monotonically increasing integers you propose are going to be challenging to do, as they require you to store that state (the last integer used) somewhere between runs - and runs may be on different machines etc.  This is something that GUID's (and suitably fine-grained timestamps) solve much better.    Something like https://godoc.org/code.google.com/p/go-uuid/uuid
Q

@derekwaynecarr - regarding namespace deletion, we could defer that right to the end of the test run, and delete all namespaces in parallel if that speeds things up a bit.

hi @quinton-hoole  ........... re UUIDs vs sequences....
UUID's are, indeed, a hammer for solving collisions in systems lacking any sort of consensus mechanism... but... isnt the whole point of etcd to ensure that namespace existence (and other things of course) are consistent across the cluster ?

Yes, in theory you could use etcd to ensure namespace uniqueness, but that will be more complicated to implement than a simple UUID or timestamp.

sorry,didnt mean to suggest using etcd.... red herring.  i guess im just making sure i understand things correctly.  let me try again :) .....

all tests run in order
all tests request 1,2,3,4,...N namespaces when starting
all tests delete 1,2,3,4,...N namespaces when completing

So in this case, how could we ever possibly have a collision ?

Aah - now I understand your question better.  Thanks for clarifying.
A few things to bear in mind:

We plan to run multiple invocations of the e2e tests, perhaps against the same cluster, and probably in parallel.
Some resource names in backend cloud providers are based upon the namespace name.  So if you run the tests multiple times, perhaps on different machines, you don't want namespace name collisions.  In your proposed scheme, the same namespace names would be generated across multiple runs.
Yes, test cleanup has traditionally been a problem (it's actually quite hard to do 100% reliably), and makes for very flaky test results, so we'd like to separate it from the actual success or failure of the tests.  If test cleanup fails for whatever reason, it will leave cruft behind, but not cause later tests to fail.  We can solve the cruft problem separately.

Q

Assigning back to<EMAIL_ADDRESS>Feel free to assign it back to me for review when you're ready.  And thanks again for taking this on! :-)

For some reason GitHub won't allow me to assign ti to you.  Feel free to self-assign.

okay cool. thanks!

@quinton-hoole ....  In the Above PR, I've implemented the fix for networking.go test lifecycle that is minimal.  Then we can  generalize and improve  it for other tests in this specific PR.....

Hi folks just to be clear don't merge we're redoing this PR and then ill update....

Hi jayunit100@ . Any progress on generalizing what you did in #6847 to make it usable across all e2e tests?  I'm finding myself doing one-off patches all over the place, and would rather fix this for once and for all across all tests.  I'm happy to take this on if you're busy.  Just want to make sure that we're not duplicating effort.

@quinton-hoole jay is at apachecon this week so feedback may be ... spotty.

Hey !

Indeed I will look directly into this now,  apachecon has now wound
down;
and I'm spinning my kube dev environment back up today.

I'll start working on this and probably will have a patch by friday.
On Thu, Apr 16, 2015 at 9:51 AM, Timothy St. Clair<EMAIL_ADDRESS>
wrote:

@quinton-hoole https://github.com/quinton-hoole jay is at apachecon
this week so feedback may be ... spotty.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/6553#issuecomment-93739145
.

--
jay vyas

Hi again kubernetes .  ok..  I've redone this branch so that it implements monotonic ids + randomSuffixes for networking.go.  From here we can update all the tests easily .

Thanks for the feedback. In transit will reissue a pr  after I hear back on them When I land.

@quinton-hoole implemented your suggestions ;

changed util method name, also changed namespaceObj to namespace
removed monotonic / timespace and just used UUIDs for namespace.

Regarding other comments,

preserverd explict ns creation, since the auto create ns option is not gaurannteed to be on in all clusters
BeforeTest/AfterTest since that would lead to a bunch of namespaces created unnecessarily.

looks okay now?

(rebased, assuming the necessary changes  are completed now...just ping me if others needed ...

Hi Jay.  I see you've still not addressed the comment about using a UID rather than a timestamp.  I'll wait until that's done before reviewing further.

@quinton-hoole random suffix is the one which is slated to be refactored as UUID.  I was going to do in a subsequent patch (you can read the TODO on it) however, ill gladly make that change in this patch if you want ...

okay, @quinton-hoole all set for a second look.  i just implemented UUID in the simplest way possible inline in the ns creation...  didnt worry about refactoring randomSuffix()  as thats a separate issue .

bump :) @quinton-hoole

@satnam6502 , @roberthbailey , @zmerlynn ^ this is blocking some other changes we want to make.

As Quinton said, I am also confused by the explicit namespace creation and this seems to be a different pattern from the other testes (although I am biased here since I think I might have established that).

LGTM. Given that the namespace creation is only in one place per test file, that's fine.  We can easily reconsider later if necessary.

@satnam6502 explicit namespace creation gaurantees that e2e's run on clusters where namespaces aren't automatically created for you (i.e. where KUBE_ADMISSION_CONTROL="--admission_control=NamespaceAutoProvision... " is not set up  )

Can't that always be set for a test e2e cluster?

I think it's good to decouple cluster creation from running e2e tests, i.e. it's good to be able to run e2e tests against any old cluster, which as Jay alludes, may or may not be set up to auto-provision namespaces.

Agreed.


[CHORE] Installation of jq on Opensearch Module

Review if the need to install jq (in deployspec.yaml) of the opensearch module is necessary due to the updated version of the codebuild image.

The underlying codebuild docker image is an ubuntu 6.0 being sourced from Dockerfile which has jq already installed. All good!

so we should remove it from the opensearch module (deployspec.yaml). I see it is installed manually.


Implementation with AMQP (RabbitMQ)

Description:
Hello, there is any date in which we can see an implementation of this module using the AMQP protocol? I would really apreciate that.
Suggested Labels:
AQMP, suggested
Suggested Assignees:
Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Closing as we are no longer maintaining this code.


Automatic Release Numbering / Error correlation doesn't appear to work

Environment
"@sentry/react": "^7.38.0",
"@sentry/tracing": "^7.38.0",
"@sentry/vite-plugin": "^0.4.0",
Steps to Reproduce

Don't specify a release param in vite.confit or Sentry.init
Build
Run build preview
Generate an Error
Check Sentry Issue for release value / associated sourcemap

Expected Result
In the absence of any other release information, the Git commit hash gets automatically set as the release and correlated to any Errors within the release
Actual Result
Git commit hash gets used, a Sentry release is created, sourcemaps are uploaded, but the Error doesn't contain the corresponding release tag.
It works as expected if you specify the release param as part of vite.config and Sentry.init.

hi what framework are you using?

@HazAT moving this to backlog
vite is by far our most popular plugin here, should prio it

Hi @quickstark thanks for reporting this!
Can you share your Sentry.init config as well as your vite config with the options you pass to our Vite plugin? Also, if you can, please provide a minimal reproduction (e.g. stackblitz or a git repo) so that we can debug this.
Thanks a lot :)

From what I'm able to notice is that SENTRY_RELEASE is not being injected.
Downgrading to 0.3 does help.

passing
injectReleasesMap: true

to configuration seems to help

Looks like there was a change, but not documented well: https://github.com/getsentry/sentry-javascript-bundler-plugins/commit/6ca81b8b0657bb210623e0dab8f8eefaec7e5eb6

Documentation stills states that: 'By default, the release will be injected into all modules - however, bundlers will include the injected release code only once per entrypoint. If release injection should be disabled, provide an empty array here.'

I susspect the issue is here:
resolveId(id, importer, { isEntry }) {
https://github.com/getsentry/sentry-javascript-bundler-plugins/commit/6ca81b8b0657bb210623e0dab8f8eefaec7e5eb6#diff-4cc9f0580cf306df7930b52b4003992e03eef9a6442047a7d44a379c1e1ab0b7L165
in vite, index.html is entry point. To this would be false for apps, meaning you wont inject the globals to any file.

@hakubo this is a known issue. I have a fix in mind. In the meanwhile you can do what we recommended here: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/180


setTargetWeights does not work with a duration of 0

Using this method:
public mutating func setTargetWeights(_ targetWeights: MorphWeights, duration: TimeInterval = 0)
And passing in a duration of 0 does not update the Entity's mesh.

Proposed solution:
struct LinearAnimator: MorphAnimating {
	private var timeElapsed: TimeInterval = .zero
	private let origin: MorphWeights
	private let target: MorphWeights
	private let duration: TimeInterval

    /// Used for when duration == 0, so that one update loop is run to apply the final weights to the mesh.
    private var hasUpdated = false

	init(origin: MorphWeights, target: MorphWeights, duration: TimeInterval) {
		self.origin = origin
		self.target = target
		self.duration = duration
	}

	mutating func update(with deltaTime: TimeInterval) -> MorphEvent {
		if timeElapsed >= duration {

            if (hasUpdated || duration > 0) {

                return MorphEvent(status: .completed, weights: target)

            } else {

                // Perform one update loop to apply the final weights to the mesh.
                return MorphEvent(status: .running, weights: target)
            }
		}

		timeElapsed += deltaTime

		let value = mix(origin.values, target.values, t: Float(timeElapsed / duration))

        hasUpdated = true

		return MorphEvent(status: .running, weights: MorphWeights(values: value))
	}

    func mix(_ x: simd_float8, _ y: simd_float8, t: Float) -> simd_float8 {
        let valueLow = simd.mix(origin.values.lowHalf, target.values.lowHalf, t: t)
        let valueHigh = simd.mix(origin.values.highHalf, target.values.highHalf, t: t)
        return .init(lowHalf: valueLow, highHalf: valueHigh)
    }
}

Thank you for reporting this, and sorry it took me so long to get round to looking at it. Should be fixed now (release 0.0.2), please re-open this issue if you encounter issues


Claims identity

This is a work in progress to help with issue #1800 .
My goal was to get the solution building and tests passing but there are two questions I need to know.

Should the concept of UserName in Nancy be converted to a claim of type Name? In IUserIdentity the concept of being Authorized is usually associate with a not empty UserName but a ClaimsIdentity has a IsAuthenticated property that makes a lot of sense to use it.

The Authentication.Token uses an specific spec for the tokens? If not, would be the case to switch to Jwt in v2 since they are somewhat Claims-friendly or it's better to adapt the current spec?

There is still a lot to do but I hope this can help with the grunt of the work

Umm...  I probably have assigned #1820 to myself before working on it. :S

no sweat. Since I saw nothing on #1800 I  assumed it was still up for
grabs.  I probably have assigned #1820
https://github.com/NancyFx/Nancy/pull/1820 to myself before working on
it. :S
—
Reply to this email directly or view it on GitHub
https://github.com/NancyFx/Nancy/pull/1821#issuecomment-75213401.

Really sorry @felipeleusin , appreciate the effort.

Relly don't worry... this didn't took much time and I got to learn about ClaimsPrincipal and similars that was a subject I could learn more. Was just hoping to contribute to Nancy since we use it extensively in my company but never had sent a PR. If there is anything else you guys need help with, let me know.


build(deps): Update Docker alpine images

Description:

Is this change user facing?
NO

References (if applicable):

@gbouv Could we merge this PR? or is there any impediment?


Alternative search suggestion view

Hi,
I would like to change the suggestion list view. Now it's 1 result per row, but I would like to have some kind of small buttons, or "chips" in a FlexBoxLayout. Something like this :

@echthard
Your suggestion is too radical of a change for this library at this point. But you can do something like this:
mSearchView.setOnBindSuggestionCallback(new SearchSuggestionsAdapter.OnBindSuggestionCallback() {
            @Override
            public void onBindSuggestion(View suggestionView, ImageView leftIcon,
                                         TextView textView, SearchSuggestion item, int itemPosition) {

                View view = LayoutInflater.from(suggestionView.getContext()).inflate(R.layout.your_layout, null);

                ((LinearLayout)suggestionView).removeAllViews();
                ((LinearLayout)suggestionView).addView(view);
     }

        });

Granted, not the best solution or event maybe not efficient to inflate dynamically on every bind, but you can use some creativity to come up with a solution. The idea is that you will get the same smooth slide down animation. In addition, I think the code in the project is understandable enough so you can download the project and mess around to come up with a solution for your needs.
Good luck,
Ari


KubeOne and KubeVIP

Hello Kubermatic,
I would like to use KubeVIP instead of an external KubeAPI loadbalancer. Right now, I use an external Haproxy VM as loadbalancer for my KubeAPI Controlplane. I could add an additional keepalived service for high-availability, but I thought about giving KubeVIP a chance first.
With KubeVIP it should be possible to loadbalance between the control plane nodes via the control plane nodes instead of an external load balancer.
KubeVIP supports two deployments:

A static pod on every node
A daemonset on all control nodes

How do I bootstrap KubeOne with KubeVIP? Do you have any idea? I thought about putting the Daemonset configuration in the addons folder, but I think that the addons folder will be executed AFTER cluster creation not after bootstrapping the first node, am I right?

Hi @shibumi , can you elaborate on:

provision the k8s cluster with kube-vip as addon


Doc/Website to install/uninstall an operator are not covering the SDK features to help with

Feature Request
Is your feature request related to a problem? Please describe.
Currently, SDK provides operator-sdk run bundle and operator-sdk run packagemanifests as  operator-sdk cleanup <projectname> to install and uninstall the operator for development purposes on the cluster via OLM.
The docs to uninstall and operator
r as to install an operator describe how to do that manually when shows that would be an easier path to use the framework tool instead.
Describe the solution you'd like

The docs describing how to use sdk features to development purposes
And then, describing how to that manually as now.

PR: https://github.com/operator-framework/olm-docs/pull/122


WebView plugin not returning proper arrays from JS on iOS

It seems that returning a JS array from a WebView widget using runJavascriptReturningResult does not return a well formatted array string on iOS, but it does on Android.
Calling
_webViewController?.runJavascriptReturningResult("function returnArray() { return [1, 2, 3];} returnArray();");
returns
[1,2,3] on Android which is expected, but
(1,2,3) on iOS (Device and Simulator) which does not qualify as an array.
This is using webview_flutter: ^3.0.0
Steps to Reproduce

Execute flutter run on the code sample
...
...

Expected results: The string "[1,2,3]" being returned.
Actual results: The string "(1,2,3)" being returned.

Code sample
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter WebView JS Array',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  WebViewController? _webViewController;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Flutter WebView JS Array'),
      ),
      body: WebView(
        initialUrl: '',
        javascriptMode: JavascriptMode.unrestricted,
        onPageFinished: (value) {
          print("page loaded - get array");
          _getArray();
        },
        onWebViewCreated: (webViewController) async {
          print("web view created");
          _webViewController = webViewController;
        },
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _getArray,
        child: const Icon(Icons.cloud_download),
      ),
    );
  }

  _getArray() async {
    var arrayString = await _webViewController?.runJavascriptReturningResult("function returnArray() { return [1, 2, 3];} returnArray();");
    print("ArrayString:\n$arrayString");
  }
}

Logs
flutter: web view created
flutter: page loaded - get array
flutter: ArrayString:
(
    1,
    2,
    3
)

Hi @mortenboye, please provide the version of webview_flutter you're using.
Thank you

(1,2,3) on iOS (Device and Simulator) which does not qualify as an array.

It does, just not a JSON array; it's the string representation of an NSArray. This is how WKWebView works, and is the documented behavior of the plugin.

(1,2,3) on iOS (Device and Simulator) which does not qualify as an array.

It does, just not a JSON array; it's the string representation of an NSArray. This is how WKWebView works, and is the documented behavior of the plugin.

I see, thank you.


[Question] How to reduce the amount of native logging?

Awesome package, thanks a lot for publishing!
I have one small question, is there any way to reduce the amount of logs on iOS? I'm trying to debug some issue and the amount of the http logs is getting in the way.
Thanks again!

Managed to get it working


Refactor the code

Welcome, dear reviewer ☺
In this PR we've:

We implement SOLID to separate Main.rb so that it has one responsibility

Hi @yash244466666,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

The Pull Request has a proper title and description. ✔
You have added a descriptive Readme file. Good Job. ✔
There is no linter error is present. ✔
Project has met all the technical aspects you needed for this project. Keep rocking! ✔

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Avoid race condition in get_path on some systems

On some systems, the plugin fails to initialize due to a 'TypeError'.
TypeError: argument of type 'NoneType' is not iterable.
The embedded python code initializes G.paths to an empty map;
however, if a key is not found in the map, the code re-initializes
G.paths using G.fsac.get_paths().  On some systems, the first call
to get_paths() returns 'None'.  Checking 'None' for the key raises
the error. Adding a call to G.fsac.get_paths() when fsac is
initialized avoids the race condition.  This change does not fix the underlying
race condition, but has been tested on both a system that exhibits
the behavior and one that does not.  Both test systems running the same
version of vim, python, mono, vim-fsharp and with the same .vimrc on arch Linux.
The only noticeable difference between the two test systems is kernel version
and cpu (4.4.0/intel on working system, 4.2.5/amd on error system).
Fixes #33

great stuff - thank you!

Yes, thanks for this. Much more reliable now.


Q: how to send attachments

Can i send files like zip or txt?

Yes, you can use client.sendLocalFiles or client.sendRemoteFiles

thank you!


[i2c,rtl] Change FF-based FIFOs to SRAM-based ones

I2C has four FIFOs; three are 64 entries deep and one is more than 256 entries deep. They are all between 8 and 10 bit wide. That's more than 3.5k bit for data storage alone.
Currently these FIFOs are composed of FFs, which isn't the most efficient way to store such amounts of data. Replacing them with one or multiple SRAMs (which can be single-ported if control logic correctly accounts for it) should significantly reduce I2C's area.

Closing as completed in #22216.


Remove Itchysats Install

Could be that there is a problem with Itchysats install in v1.9.0

see here https://github.com/get10101/itchysats - ichtysats is unmaintaned and should be removed


java, update DPG how-to guide

Fill in the Java part of how-to guide.
A few scenario is not supported right now, comment as such.

You can try these changes at https://cadlplayground.z22.web.core.windows.net/typespec-azure/prs/179/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/typespec-azure/prs/179/


Extend filter for profilers.

Now we filter only table entities provided in tables field for profilers config.
It would be better to extend that functionality. Create filters field, which will be list of filters.
I.e:
class Filter:
  schema: str
  table: str

Closed at #14


cargo vendor misses some files

Problem
I'm trying to build this Cargo project with vendored deps. I'm able to build it normally (cargo build), and running cargo vendor exits without an error, but building using the vendored deps fails (cargo build after modifying .cargo/config.toml).
It's pretty clear why it fails to build — cargo vendor hasn't copied the src/generate/templates directory of the tree-sitter-cli dependency, so I see a bunch of errors due to include_str! trying to include nonexistent files.
I'm not a Cargo expert, so I might be missing something, but I didn't see any reason why vendoring the dependencies would
miss this subfolder. Hopefully you can point me in the right direction if there's something obvious I missed.
Steps

git clone https://github.com/andrewtbiehl/kramdown-syntax_tree_sitter
cd kramdown-syntax_tree_sitter/ext/tree_sitter_adapter
RUBY=/path/to/bin/ruby cargo build (observe that this succeeds)
cargo vendor (observe that this appears to succeed)
Modify .cargo/config.toml as directed by the output of cargo vendor
cargo build (observe that this fails)
There will also be no folder vendor/tree-sitter-cli/src/generate/templates, although it does exist in the upstream repo

Possible Solution(s)
No response
Notes
No response
Version
cargo 1.76.0 (c84b36747 2024-01-18)
release: 1.76.0
commit-hash: c84b367471a2db61d2c2c6aab605b14130b8a31b
commit-date: 2024-01-18
host: aarch64-apple-darwin
libgit2: 1.7.1 (sys:0.18.1 vendored)
libcurl: 8.6.0 (sys:0.4.70+curl-8.5.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 14.5.0 [64-bit]

As a quick sanity check
kramdown-syntax_tree_sitter is locked to<EMAIL_ADDRESS>https://github.com/andrewtbiehl/kramdown-syntax_tree_sitter/blob/3dd8be0b6fa22a7297247f2aec08149ad18c6423/ext/tree_sitter_adapter/Cargo.lock#L945-L947
docs.rs shows that<EMAIL_ADDRESS>does include that folder
https://docs.rs/crate/tree-sitter-cli/latest/source/src/generate/templates/

I just tried to reproduce this with cargo 1.78.0 (54d8815d0 2024-03-26) and vendor/tree-sitter-cli/src/generate/templates/ exists.

ack, I tried cargo 1.76 and 1.77. Let me try 1.78

@epage Still fails for me. Here's my new cargo version --verbose
cargo 1.78.0 (54d8815d0 2024-03-26)
release: 1.78.0
commit-hash: 54d8815d04fa3816edc207bbc4dd36bf18014dbc
commit-date: 2024-03-26
host: aarch64-apple-darwin
libgit2: 1.7.2 (sys:0.18.2 vendored)
libcurl: 8.6.0 (sys:0.4.72+curl-8.6.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 14.5.0 [64-bit]

This is still failing for me on Cargo 1.79:
cargo 1.79.0 (ffa9cf99a 2024-06-03)
release: 1.79.0
commit-hash: ffa9cf99a594e59032757403d4c780b46dc2c43a
commit-date: 2024-06-03
host: aarch64-apple-darwin
libgit2: 1.7.2 (sys:0.18.3 vendored)
libcurl: 8.6.0 (sys:0.4.72+curl-8.6.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 14.5.0 [64-bit]

The problem is that src/generate/templates/cargo.toml exists (notice the lowercase c). Cargo will usually not include nested packages when packaging or publishing, and cargo vendor uses the same logic as cargo publish to determine which files to include. Cargo uses the presence of Cargo.toml to detect these nested packages. However, that detection depends on the case-sensitivity of the local filesystem. Presumably tree-sitter-cli was published by someone on a case-sensitive filesystem (like Linux) where the nested detection didn't work. However, when you run cargo vendor on a case-insensitive filesystem, it won't copy those files.
There are a few issues here:
cargo vendor doesn't exactly duplicate the .crate contents
I've long since felt that it would be best for cargo vendor to just extract the .crate file instead of trying to recompute what the file listing should be. I recall having discussions with someone about doing this (@weihanglo does that ring a bell)? I recall having a discussion about trying to add some kind of API to the Source trait to make that possible. But I can't find the PR or issue (I swear someone started working on it). There are some notes about this at https://github.com/rust-lang/cargo/issues/9575#issuecomment-860928843, and #9555 is kinda similar.
Cargo's logic depends on filesystem behavior
Generally, things can get messy when switching between filesystems that don't have the same case sensitivity. Cargo is often inconsistent on whether or not it is case-sensitive or not. For example, depending on using API's like Path("Cargo.toml").exists() which depends on the filesystem versus filename == "Cargo.toml" which is always case-sensitive.
I think it is unlikely that we can be 100% consistent in all places. However, it might be good to try to think about how we should approach this problem. Should cargo always try to be case-sensitive to avoid these cross-platform issues? Should this package-listing code be case-sensitive or not? If we change the behavior, how do we do it without breaking lots of projects?

Oh, I remember now. It was https://github.com/rust-lang/cargo/pull/12509#issuecomment-1732415990. Unfortunately based on that comment, it sounds like it might not be easy.


alter deleted columns

Dropped deleted_date column
Type for deleted column changed from text to timestamp
Added check constraint to avoid data incongruences

@itorres le damos brio a esto?


Updating to version 0.6.0

I'm trying to upgrade the package to v0.6.0 re: this issue.
I'm not 100% sure that this is what needs to be changed since I've never worked with a conda package before. Let me know if there is anything else that needs to be change.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Not sure I totally understand the build failures, but it looks like it is only happening for python version <= 3.7
@aothms is 3.8 the only supported version now? Or is something funky going on?

@conda-forge-admin, please rerender

I have no idea. There is really py3.8 pulled at build-time for the py3.7 package. Let's see if rerendering helps.

I believe I've ruled out any change in this repo being responsible for the problem. But, the only change in IfcOpenShell that mentions python 3.8 in any way seems to be this one.
I've modified my pull request temporarily to reference a version of v0.6.0 without that change just to see if it helps any.
Otherwise, I think I've reached the extent of what I can do with my familiarity level at this time.

I don't know why python is pulled into the build-env. This shouldn't happen.

Undoing change to 0.6.0 to see if maybe something external changed since the last build was run 21 days ago.
Unfortunately I don't have any more time to commit to debugging this at this point, and will resort to downloading the package from the ifcopenshell site.
Good luck to anyone else who can try and figure this out.

looks like it's working, thanks!!

@looooo would it be possible to merge this now?


Generator: Deprecated nested dependencies

Npm warns about two deprecated packages associated with @sap/edm-converters which is a dependency of @sap-cloud-sdk/generator:
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported

Is there something that can be done about this?
I know this may not be the most suitable place for this question but the only one I could think of since I could not find contact information for @sap/edm-converters.
Thanks in advance.

Hey @ja-ne
I can forward your request to the colleagues who work on the edm-converters. I will let you know if there is anything planning with regards to this.

That's good, many thanks.

Hey @ja-ne,
I heard back from the colleagues. They are aware of the replacement need and will take it into consideration. It is possible that this will take a while though as they are considering other changes along this.
I hope that helps!

Thanks for the update.


Remove mock SDS from Runner

What is the context of this PR?
The mock SDS has moved to https://github.com/ONSdigital/eq-runner-mock-sds
The mock data will need to be added back when we start using the real SDS.
How to review
Anything else that should be removed?
Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

Had to force push (no changes) to retrigger Action as it was stuck.


support markdown message type and @someone

support markdown message when use dingtalk chatbot. kubectl edit nm notification-manager, config the receivers:

dingtalk:
  msgType: markdown

support @someone when use dingtalk chatbot. message (text or markdown) content need contain phone number like @131xxxxx899

Thanks for your commit, can you make the dingtalk conversation support markdown type too?

Thanks for your commit, can you make the dingtalk conversation support markdown type too?

The dingtalk conversation message format : official link
{
        "chatid":"chate39f5xxxxxx335",
        "msg":{
                "msgtype":"text",
                "text":{
                        "content":"请于本月底提交月度工作报告。"
                }
        },
}

chatbot message format: link
{
    "at": {
        "atMobiles":[
            "180xxxxxx"
        ],
        "atUserIds":[
            "user123"
        ],
        "isAtAll": false
    },
    "text": {
        "content":"我就是我, @XXX 是不一样的烟火"
    },
    "msgtype":"text"
}

but in the func sendToChatBot() and  sendToConversation(), the message format  has no special treatment, I think this may be a bug? I need test first.

@happywzy I've discussed with @wanjunlei , we agree that you can keep your original changes to the global DingTalk options.
And you can add the same option to the local DingTalkReceiver as a per receiver option. https://github.com/kubesphere/notification-manager/blob/master/pkg/apis/v2beta2/receiver_types.go#L40

If the global DingTalk TmplType is not set and the local DingTalk TmplType is set, the local DingTalk TmplType will be used.
If the global DingTalk TmplType is set and the local DingTalk TmplType is set too, the local DingTalk TmplType will be used.
If the global DingTalk TmplType is set and the local DingTalk TmplType is not set, the global DingTalk TmplType will be used.

The MsgType should be changed to TmplType

@happywzy I've discussed with @wanjunlei , we agree that you can keep your original changes to the global DingTalk options.
And you can add the same option to the local DingTalkReceiver as a per receiver option. https://github.com/kubesphere/notification-manager/blob/master/pkg/apis/v2beta2/receiver_types.go#L40

If the global DingTalk TmplType is not set and the local DingTalk TmplType is set, the local DingTalk TmplType will be used.
If the global DingTalk TmplType is set and the local DingTalk TmplType is set too, the local DingTalk TmplType will be used.
If the global DingTalk TmplType is set and the local DingTalk TmplType is not set, the global DingTalk TmplType will be used.

The MsgType should be changed to TmplType

OK, Please look at this question
https://github.com/kubesphere/notification-manager/pull/84#issuecomment-871026698

Thanks for your commit, can you make the dingtalk conversation support markdown type too?

The dingtalk conversation message format : official link
{
        "chatid":"chate39f5xxxxxx335",
        "msg":{
                "msgtype":"text",
                "text":{
                        "content":"请于本月底提交月度工作报告。"
                }
        },
}

chatbot message format: link
{
    "at": {
        "atMobiles":[
            "180xxxxxx"
        ],
        "atUserIds":[
            "user123"
        ],
        "isAtAll": false
    },
    "text": {
        "content":"我就是我, @XXX 是不一样的烟火"
    },
    "msgtype":"text"
}

but in the func sendToChatBot() and sendToConversation(), the message format has no special treatment, I think this may be a bug? I need test first.

@wanjunlei is this a bug ?

Thanks for your commit, can you make the dingtalk conversation support markdown type too?

The dingtalk conversation message format : official link
{
        "chatid":"chate39f5xxxxxx335",
        "msg":{
                "msgtype":"text",
                "text":{
                        "content":"请于本月底提交月度工作报告。"
                }
        },
}

chatbot message format: link
{
    "at": {
        "atMobiles":[
            "180xxxxxx"
        ],
        "atUserIds":[
            "user123"
        ],
        "isAtAll": false
    },
    "text": {
        "content":"我就是我, @XXX 是不一样的烟火"
    },
    "msgtype":"text"
}

but in the func sendToChatBot() and sendToConversation(), the message format has no special treatment, I think this may be a bug? I need test first.

I did not understand what you mean, can you explain it in more detail？

Thanks for your commit, can you make the dingtalk conversation support markdown type too?

The dingtalk conversation message format : official link
{
        "chatid":"chate39f5xxxxxx335",
        "msg":{
                "msgtype":"text",
                "text":{
                        "content":"请于本月底提交月度工作报告。"
                }
        },
}

chatbot message format: link
{
    "at": {
        "atMobiles":[
            "180xxxxxx"
        ],
        "atUserIds":[
            "user123"
        ],
        "isAtAll": false
    },
    "text": {
        "content":"我就是我, @XXX 是不一样的烟火"
    },
    "msgtype":"text"
}

but in the func sendToChatBot() and sendToConversation(), the message format has no special treatment, I think this may be a bug? I need test first.

I did not understand what you mean, can you explain it in more detail？

https://github.com/kubesphere/notification-manager/blob/ec47ba1f5eb83cca3fe99b03f263c2654cd94f38/pkg/notify/notifier/dingtalk/dingtalk.go#L355
dm := dingtalkMessage{
	Text: dingtalkMessageContent{
		Content: msg,
	},
	Type: "text",
	ID:   chatID,
}

this data structure has problem, if you want send message by Conversation.

@happywzy We would like to invite you as the maintainer of Notification Manager.

Do we need to add the document for these two features in the Official Documentation?

Yeah，should add to docs after Notification Manager release a new version or ks v3.2 is released


Fix #4224: Reject multiple public module IDs when emitting NoModule

As usual, a trailing comma :-/

One day we'll get rid of 2.11 and 2.12.1 and it won't be a problem anymore... 😇


Using URI.js to show/hide DIVs

Hello
Noob Question: is there a way to setup URI.js such that if the URL contains a certain parameter it would show /hide a specific DIV?
So xyz.com?show=apple&hide=banana
would show
and hide
thanks for the guidance

questions like these are better asked on http://stackoverflow.com/
// get ?show=apple&hide=banana as { show: 'apple', hide: 'banana' }
var query = URI().query(true);

// get your DIVs
var apple = document.getElementById('apple');
var banana = document.getElementById('banana');

// hide your DIVs
apple.hidden = query.hide === 'apple';
banana.hidden = query.hide === 'banana';

Thanks @rodneyrehm! Missed out some context on the question, have updated it to indicate using a data- parameter. can the snippet you mentioned play well with data- parameter?

@vilav I won't post ready to use code for problems that have nothing to do with URI.js. Please ask these questions on StackOverflow (or elsewhere).
That said, you're looking for document.querySelector() and Attribute Selectors to solve that data attribute (not parameter) problem.


..

Is there an actual issue here?

please just close this.... Is there anyone who is actually maintaining this repo?

@jonyeezs, me and my team use atom-typescript daily so if there are obvious issues, I usually fix them pretty quickly. There's no way I could keep up with all of the issues in the tracker so I'm not even trying. I haven't been good with reviewing PRs (because summer! and stellaris!) or working on new features, but it will change soon. So I guess the answer to your question is "sort of". If you're looking for some OSS experience, I'll gladly accept any help.

@guncha thank you for responding!
I'm about to jump into TS. And would be using this library. I'll be glad to help atleast maintain the issues.
I'll be new to this, and just like you I have a day job too. But i think if we spread the load it would help.


[bug] Odd behavior for run command in project settings.

The input for changing the run command is very buggy – if you click it it auto-selects the whole input, and as you type it seems to refresh after every character stroke.

@drfarrell This buggy-ness is present for all three fields. If you wait long enough after selecting an input field, it auto-selects the whole input on all three fields name, url and command

Confirm I've seen this as well. Perhaps a re-render issue

"doesn't seem to happen when project is not running so likely something with a rerender there" - Kiet

"doesn't seem to happen when project is not running so likely something with a rerender there" - Kiet

It does happen when project is not running as well, it just takes longer for it to happen
https://github.com/user-attachments/assets/31cb5a8b-c87a-4d6d-b125-156023cf6e1f


Unable to Verify Contract on Moonriver

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
0.2.0
What command(s) is the bug in?
forge verify-contract
Operating System
macOS (M1)
Describe the bug
Hello,
I am unable to verify contracts that I deploy to moonriver. I am able to deploy them correctly, but they will not verify. I receive these errors:
   0: Failed to create etherscan client
   1: Chain moonriver not supported

Is this an error on my part? Or is Moonriver for whatever reason not supported yet?

thanks for flagging,
just missing url for their etherscan, I guess it's this https://moonbeam.moonscan.io/

yep that is for moonbeam, moonriver is this one:
https://moonriver.moonscan.io/

I'm I good to try again now?

yep - should work now


Minor perf improvement to queryEntities when limit=0

Hey, I just made a Pull Request!
Updates queryEntities to not execute dbQuery at all when limit is 0
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@backstage/catalog-maintainers to approve and merge?


[PoC] Testing toolkit

Work in progress. Do not merge.
During the work on transactions support https://github.com/apache/activemq-nms-amqp/pull/8, I realized that the current approach to integration testing is not comprehensive enough, and we will need something more sophisticated to cover all required scenarios.
As you may know, for most of our integration tests, ContainerHost component from amqpnetlite library is being used. As I started my rework during failover implementation, I needed some solution to write integration tests, which wouldn't require spinning up an actual broker. ContainerHost seemed to be a feasible solution but as the work progressed more and more its shortcomings and limitations turned up. Certain tests were really hard to write, other impossible to write. For example to test durable message consumer closing scenario I had to either pull TestListener class from amqpnetlite and use it instead of ContainerHost for this particular scenario, or request some changes in ContainerHost (it turned out that I did both).
As we are aiming to make this project .NET equivalent of QPID JMS, I think we should follow its approach to integration testing. This PR is a PoC of testing toolkit inspired by QPID JMS TestAmqpPeer. It enables us to write integration tests with frame by frame assertions.
The example test may look like this:
[Test, Timeout(20_000)]
public void TestRemotelyCloseConnectionDuringSessionCreation()
{
    string errorMessage = "buba";

    using (TestAmqpPeer2 testPeer = new TestAmqpPeer2())
    {
        testPeer.Open();
        IConnection connection = EstablishConnection(testPeer);

        // Expect the begin, then explicitly close the connection with an error
        testPeer.ExpectBegin(sendResponse: false);
        testPeer.RemotelyCloseConnection(expectCloseResponse: true, errorCondition: AmqpError.NOT_ALLOWED, errorMessage: errorMessage);

        try
        {
            connection.CreateSession();
            Assert.Fail("Expected exception to be thrown");
        }
        catch (NMSException e)
        {
            Assert.True(e.Message.Contains(errorMessage));
        }

        connection.Close();
    }
}

Rewriting just a couple of our tests using this approach helped me to tackle two issues with the current implementation:

During connection close, we are explicitly closing sessions before we actually close the underlying amqp connection (QPID just closes the connection without bothering with sessions).
https://github.com/apache/activemq-nms-amqp/blob/2d565c7dcf41135f77bb5225d05d2e0d21c60696/src/NMS.AMQP/Provider/Amqp/AmqpConnection.cs#L135-L154
We do not handle properly the scenario when the connection is remotely closed. When somebody tries to use NMS connection which was remotely closed, we are throwing "The Connection is closed" exception instead of the actual underlying cause of loss of connection.

These are just small issues, but I am sure that writing our tests exactly the same way as they are written in the reference solution will help us improve the overall quality of the library.
What do you think about it? @michaelandrepearce @RagnarPaulson @cjwmorgan-sol

Improving integration tests is a great idea.
For the changes to fix issue 1. I noticed that the closed callback for sessions does not remove the amqpSession from the amqpConnection, unlike amqpComsumer. Removing the explicit call to close would leave references in the amqpConnection list for its amqpSessions.
For issue 2. NMSConnectionExceptions should be produced instead of IllegalStateExceptions on remote connection failures.

Good catch, as always.
You're right. Qpid throws JmsConnectionFailedException which inherits from IllegalStateException, and that's why this test works fine there. NMSConnectionExceptions  seems like an adequate replacement.

I've made some progress with this over the weekend and managed to write bits necessary to test message consumers.
It's quite enlightening as I localized another small issue with current implementation bca90d7 (already fixed) and one discrepancy between our implementation and qpid a6a4d96.
When there are some unacknowledged messages and we decide to close consumer, qpid is explicitly sending Release Disposition frame for all buffered but unprocessed messages. We don't. TestCloseDurableSubscriberWithUnackedAndUnconsumedPrefetchedMessages is failing because of that. It could be quite easy to address it if we explicitly release all the buffered messages. But what should happen with messages that were handled over to the application? In qpid there is this concept of deferred close implemented. https://github.com/apache/qpid-jms/blob/f212e7c2c3e21d44e90068f9c0bf6ab374a68f8e/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java#L70-L80
Not sure if I should bother about this right now, or just simply fix it by releasing prefetched messages the same way as I did for transaction post rollback.
@cjwmorgan-sol @michaelandrepearce What do you think?

+1 from me more tests the better, just needs a jira, and squash commits

+1 from me more tests the better, just needs a jira, and squash commits

Same +1 for me.

Hey I found that the provider sends transfer frames on a sender link as settled even when the link sender settled mode is Unsettled. This is against amqp spec. So far I've been able to find at least one broker that detachs the sender link when a non-persistent(settled) message is sent. Sender links that support fire and forget settled message shoul dhave a send settle mode of Mixed not Unsettled.

@cjwmorgan-sol Hey, you are right. I came across the same issue during work on https://github.com/apache/activemq-nms-amqp/pull/20. Luckily I think we can address this by, extending amqpnetlite handler api, with option to override settled flag with false. It should do the trick as for now all our AmqpProducers use sender link with Unsettled SettleMode.

@cjwmorgan-sol i would rather we work along the QPID JMS way here, and it seems simply we need the amqpnetlite to provide additional access to the underlying delivery object. Once we have that, then we can change the logic here.

@Havret please fix the conflicts, also i believe this requires upstream amqpnetlite client lib to release the fixes supplied to them to enable this.

@michaelandrepearce This is ready to merge.

Lgtm. Great work here!!


Add documentation on running systemd on SELinux systems

Lots of users are attempting to run systemd within a container.  They are
being blocked from running SELinux systems since they need the
container_manage_cgroup which is not enabled by default.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

@TomSweeneyRedHat PTAL

@TomSweeneyRedHat Reworked to remove the yous.  And switched to true.  I think this is ready to merge.

@umohnani8 @mheon @giuseppe @vrothberg @baude PTAL

@giuseppe @umohnani8 @mheon @baude @vrothberg Someone please give us a /lgtm

/lgtm


Missing stream level metrics

It looks like all of the execute-latency, process-latency, execute-count metrics are getting summed up into a single default stream and we lost the individual stream metrics.
In the graph below the red line is the sum of all streams going to a component, the blue line is default stream after we upgraded to 0.14.4 and re-deployed the topology. The lower lines are the individual stream metrics. You can clearly see the sum of the streams and the individual metrics disappear after the deploy.

This commit removed the usage of the stream id and the stream component from the execute metrics and is just reporting them under default: https://github.com/twitter/heron/commit/557c9804af0c23952b3df7e29715f01e338884f8#diff-ee6176f97f13bdf403187bbce3dfa83bL150

This was fixed by this commit: https://github.com/twitter/heron/commit/c9c7ffa4a89df6d8db0f5a42ac30c0a4f65e925e


"Stuck at Specter"

I noticed this in the Telegram chat before attempting the update to 1.6.1:

I then noticed that I also got "stuck at specter":

I opened another ssh session and checked bitcoind status and also tried restarting bitcoind with sudo systemctl restart bitcoind as well as start and stop. A while later I realized in my original tab that the update seemed to be continuing after it said Job for bitcoind.service cancelled.

Things seem to be working okay now, but there was this hang up.

I also had this problem and and to restart again. It had worked on the second try.

Thanks for reporting!
Yes it seems it is getting stuck during recovery on restarting bitcoind at https://github.com/rootzoll/raspiblitz/blob/7f2e12472e4f3cba68db53a6879c1284860e9ad1/home.admin/config.scripts/bonus.cryptoadvance-specter.sh#L271
This was planned to be changed for the next release anyway: https://github.com/rootzoll/raspiblitz/issues/1639
so tagging for v1.6.2.
For now might be the best to deactivate Specter before starting the update and reinstall afterwards.

To solve it while recovering run:
sudo systemctl stop bitcoind

Can confirm that on my test machine with #1699 it fixed the getting stuck when blockfilter=0 before update.

This should be solved by this: https://github.com/rootzoll/raspiblitz/pull/1722. Thanks @geco91!

had the same issue. after the final reboot the specters  .onion adress was a new one. i didnt save the first. just the seed. is there a change of resotring it only with the seed?

OK tested with RC2 and looks good. Closing issue for v1.6.2 release.


Why Does MultiSelect and StaticSelect Options Default to Incompatible Text Type

(Describe your issue and goal here)
Hi - im not sure if this is a bug or just unexpected behavior. im working with the blocks library in the python SDK and the  basic_components.Option  objects that are used in RadioButtonElement, StaticSelectElement, etc require "plain_text" types for their text fields, but if you use the basic_components.Option(text="some random text", value="True") the text defaults to mrkdwn,  which will then give an error about not matching schemas.
Reproducible in:
here is the json dump of what gets generated by the block kit sdk
>>> json.dumps(basic_components.Option(text="text0",value="text0").to_dict())
>>> {"text": {"text": "text0", "type": "mrkdwn"}, "value": "text0"}
but the default to mrkdwn for option text types does not work in certain block elements..
this is an example of a block that does not render bc the text types default to markdown
{
	"blocks": [
		{
			"type": "input",
			"element": {
				"type": "multi_static_select",
				"options": [
					{
						"text": {
							"text": "text0",
							"type": "mrkdwn"
						},
						"value": "text-0"
					},
					{
						"text": {
							"text": "text1",
							"type": "mrkdwn"
						},
						"value": "text-1"
					},
					{
						"text": {
							"text": "text2",
							"type": "mrkdwn"
						},
						"value": "text-2"
					}
				]
			},
			"label": {
				"emoji": true,
				"text": "Label 2 With Markdown Text in Input Block",
				"type": "plain_text"
			}
		}
	]
}

and then an example of an identical block with the only difference being the text type is now plain_text
{"blocks":[
		{
			"type": "input",
			"element": {
				"type": "multi_static_select",
				"placeholder": {
					"type": "plain_text",
					"text": "Select an item",
					"emoji": true
				},
				"options": [
					{
						"text": {
							"type": "plain_text",
							"text": "*text0*",
							"emoji": true
						},
						"value": "value-0"
					},
					{
						"text": {
							"type": "plain_text",
							"text": "*text1*",
							"emoji": true
						},
						"value": "value-1"
					},
					{
						"text": {
							"type": "plain_text",
							"text": "*text2*",
							"emoji": true
						},
						"value": "value-2"
					}
				],
				"action_id": "static_select-action"
			},
			"label": {
				"type": "plain_text",
				"text": "Label 1 With Plain Text in Input Block",
				"emoji": true
			}
		}]}

I'm curious why the default text_type for Option is mrkdwn if it is incompatible with some of the element types? i see this point in the code, but im curious if maybe theres a way to give an error message that lets developers know when this will cause issues with other interactive components.
The slack_bolt version
slack-bolt==1.6.1
slack-sdk==3.7.0

Python runtime version
Python 3.6.8 :: Anaconda, Inc.
OS info
ProductName:	Mac OS X
ProductVersion:	10.15.7

Steps to reproduce:
import json
from slack_sdk.models.blocks import block_elements, blocks, basic_components

json.dumps(basic_components.Option(text="text0",value="text0").to_dict())

>>> {"text": {"text": "text0", "type": "mrkdwn"}, "value": "text0"}
Expected result:
i expect that in using the basic_components.Option with a StaticSelectElement or StaticMultiSelectElement the resulting block would be defined and render appropriately.
within the Slack Bot Kit Builder
or expect an error message that tells you about the plain_text type requirement for some of the block_elements and which elements they are. from what ive seen its StaticSelectElement StaticMultiSelectElement
Actual result:
using the default types for text within a StaticSelectElement or StaticMultiSelectElement results in a schema violation:

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi @weallwegot, thanks again for writing in!
The reason why the default type for text elements is for the backward compatibility. When we migrated the modules from slackclient v2 to slack-sdk v3 last year, we avoided having any breaking changes apart from the package names (we renamed slack package to slack_sdk and revisited some sub structure). Refer to the v3 migration guide and the related pull requests for more details.
We still want to keep it for general text elements. However, regarding the options in select menu, you are right. The current developer experience is confusing and we can improve it in future versions. We will start with exploring the best way to minimize breaking changes for the improvement here. If you have suggestions on it, we are happy to know them.

Ah got it okay - my initial thought is to have some way to detect the type of block_element that the Option is in and converting the text type to PlainTextObject if its one of those special ones - that seems like it would add some processing time with rendering and might lead to other weird unexpected behavior. I would be happy with a more informative error message outside of the generic invalid-schema.. although that also probably requires some extra checks. If there's a way to do this I think it would save developers a lot of time debug time without doing too much magic under the hood.
could we add something roughlyy like this to the special elements' classes
    @JsonValidator(f"all options must be PlainTextObject basic components")
    def _validate_option_text_types(self):
        return all([txt_obj.type == "plain_text" for txt_obj in self.options])

thanks for your prompt response on this!