Improve thumbnail generation for social networks - Fix #65

@migueldemoura Nice addition! Can you add a line to the documentation on how to use og_images now?

Thanks, will do! I did a quick CTRL+F and changed each instance of og_image to thumb_image. Were there any docs before?

@migueldemoura You can merge this, I'll add an entirely new post for stuff like this to the chalk website :-)


Re-enabling WDT timers requires restart bit setting

In current design, disabling WDT timers will suspend counting, but the counters will not reset to 0. Re-enabling the timers will simply resume counting. In order to have the timers start from 0, the corresponding restart bit is required to be set.
Example programming sequence for cascade mode for disabling and re-enabling timer1:
Set CPTRA_WDT_TIMER1_EN to 1
WDT timer1 starts counting
Reset CPTRA_WDT_TIMER1_EN to 0
WDT timer1 suspends counting
Program CPTRA_WDT_TIMER1_TIMEOUT_PERIOD[1:0]
Set CPTRA_WDT_TIMER1_EN to 1
WDT timer1 resumes counting
Set CPTRA_WDT_TIMER1_CTRL to 1
WDT timer1 starts counting from 0

https://github.com/chipsalliance/caliptra-sw/pull/938


Update create-private-link-service-cli.md

"disable-private-link-service-network-policies --yes " need a fix
Errors:
az network vnet subnet update: 'yes' is not a valid value for '--disable-private-link-service-network-policies'. Allowed values: true, false.

@AbdullahBell
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hello @rongtao12, Thank you for your contribution to the docs!
The current example is valid as noted in the az network vnet subnet article.
For az network vnet subnet update the accepted values are:
{0, 1, f, false, n, no, t, true, y, yes}
#pleaseclose


The game starts minimized and won't maximise.

The game starts minimized and won't maximise for any reason ... except just persisting with shortcut options.
Reproduction: Seems to be related to full-screen optimising and high DPI settings, but I've had it persist even after I've checked those boxes too.  It only seems to happen during the first run of the day and just works after that.
Platform: Steam (PC)
Sorry, but teh main website doesn't display the form, so this is the best I can do.

Could raise this though the site now, but there is no category for this issue.  It's more like a "general executable" issue.  It prevents you getting into the game itself.


[SPARK-23350][SS]Bug fix for exception handling when stopping continu…

What changes were proposed in this pull request?
SparkException happends when stopping continuous processing application, using Ctrl-C in stand-alone mode. Stopping continuous processing application will throw SparkException, not InterruptedException as the code in WriteToDataSourceV2
How was this patch tested?
manual tests

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

No Need any more, close this patch.


x/net/ipv[46]: ControlMessage unimplemented on Windows

Both x/net/ipv4 and x/net/ipv6 return EWINDOWS and have "TODO: implement this" comments:
https://github.com/golang/net/blob/master/ipv4/control_windows.go
https://github.com/golang/net/blob/master/ipv6/control_windows.go
It appears that Windows has a WSARecvMsg which provides access to the underlying control messages:

For datagrams received by the WSARecvMsg function over IPv4, the Control member of the WSAMSG structure received will contain a WSABUF structure that contains a WSACMSGHDR structure. The cmsg_level member of this WSACMSGHDR structure would contain IPPROTO_IP, the cmsg_type member of this structure would contain IP_PKTINFO, and the cmsg_data member would contain an in_pktinfo structure used to store received IPv4 packet address information. The IPv4 address in the in_pktinfo structure is the IPv4 address from which the packet was received.

I couldn't find any mentions of WSARecvMsg in the golang source. Indeed, it appears that netFD.readMsg is unimplemented as-well on windows: https://github.com/golang/go/blob/12c286c149583edbb08045cc8f518f0c90c7dc85/src/net/fd_windows.go#L233
So I guess the first step would be to add a syscall wrapper for WSARecvMsg and then implement netFD.readMsg on top of it?
cc @mikioh

Sure, #9252, then #7174 and #7175.

@tmm1 feel free to send me CLs for review.
I will help in whatever way I can.
Alex

I'll merge this issue into #7175.


[Feature] Expose socket.port to runtime code

We have multiple instances of Nakama. One for production and multiple for development.
We use Nakama as Account Manager/Matchmaker. Nakama starts a Unity instance to handle game server logic.
Game server needs to know the player information, so it needs to connect back to the Nakama. But the problem is that it doesn't know which Nakama instance was responsible for launching it.
The solution is to pass the Nakama port as an argument when launching the Unity Game Server. But Go runtime does not have access to specified port in configurations.

@mnarimani As a workaround in the meantime you could place the server port into a runtime environment variable and extract it from the context object in the runtime:
nakama --socket.port 7350 --runtime.env "SERVER_PORT=7350" --logger.level DEBUG

After more deliberation I think its easy enough to pass in the port parameter as an environment variable to the server that we don't need to mirror the server configuration into the server framework.


Is the Notification feature already included in the SDK?

Hello,
Since Alexa supports Notifications (https://www.amazon.com/gp/help/customer/display.html?nodeId=202165800), I was wondering if the functionality is already included in the SDK?
I wasn't able to find something so far.
If so, does anyone have an example of how to use it?
If not, are there future plans to include this feature?
Greetings,
Michael

Hi Michael, unfortunately we do not support it at the moment.


Lower the gas limit required for claim to 150,000

1 Million gas limit is too high, the account with lower than 1 IOTX balance will not able to claim because the action will be rejected by action pool immediately.

https://www.iotexscan.io/action/cb6a04423131dc4372c0406b32f92665f4e6e210bd5518d9824df2ef08d932cc  suggests 100000 gas should do the work.


Adds a doc on dependency management

Re: Our RFC on adding RFCs for new dependencies https://github.com/artsy/README/issues/117
This provides the general rubric for adding new dependencies to projects - we've wrote quite extensively on this in the past (see the notes section), so this doc aims specifically to focus on the down-side to dependencies and how to be cautious with them.
Prior Artsy engineer’s writing on the topic of dependency management:

https://github.com/artsy/README/issues/117
http://artsy.github.io/blog/2015/09/18/Cocoa-Architecture-Dependencies/
https://www.objc.io/issues/22-scale/artsy/
https://www.fngtps.com/2013/a-quick-note-on-minimal-dependencies-in-ruby-on-rails/
http://artsy.github.io/blog/2017/01/04/OSS-FAQ/

Referential time-sinks, but valuable for extra info

https://guides.cocoapods.org/making/quality-indexes.html
https://gist.github.com/dominictarr/9fd9c1024c94592bc7268d36b8d83b3a
https://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm

Note to self to add a link back in https://github.com/artsy/README/blob/master/culture/engineering-principles.md#own-your-dependencies when this is done


SVG needed

Customer to provide svgs for the below:
page: https://www.888.de/888club/

[ ] https://images.images4us.com/888_DE_V2/DE/logo-mobile-1634030257076_tcm2024-532884.png
[ ] https://images.images4us.com/888_DE_V2/DE/logo-pc-1634030227763_tcm2024-532881.png

Hi,
asked the rekevant teams in 888,
also uploading an scg i converted with a free tool

ya.. @rafim888 these free tools often don't do a great job.

I was able to find a generic Spade SVG to use, but I think for the logo we'll just use the original image on your site.

We ended up using the .png for the 888club image, and reusing the spade.svg for the green button per Rafi, so I will close this ticket.


Victor VosMottor: Watch bit.ly/3t8ZcLh

Victor VosMottor requests the watch of the watch_keyword bit\.ly\/3t8ZcLh. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

bit\.ly\/3t8ZcLh has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Spevacus in Charcoal HQ. Reason: 'bit.ly is already covered by the 'shortened URL in (x)' reason so long as it's preceded by '://', so we really only want to capture the specific extension this type of spam used (3t8ZcLh) so we can catch it again in the future. I've done so for you.'


Silly question about pvp

If I used this plugin on 1.8 server and a player join with 1.9 or above will the pvp be 1.8 or 1.9 style?

It'll be the same as 1.8


Make it possible to return false from mobile?

Usually, if we use ? in method name on Ruby, it is expected to return
boolean.
But currently, if User-Agent is not matched regexp for detecting mobile,
it returns nil.
For avoiding confusion, we should change mobile? to return boolean.

Thanks for the pull request.
This has been discussed before.
https://github.com/fnando/browser/issues/321
Short answer: it's okay for predicate methods not to return boolean values. One path could be migrating every single verification to String#match?, so I'll keep that in mind for a future major release.

Thanks for the response.
I understand your answer and I'm sorry for the lack of confirmation.

In any case, I replace every single String#=~ with String#match? where possible.
https://github.com/fnando/browser/commit/eb57749a6bc791484d84713c42b45625c4261479


Update distribution.yaml

Please add the sick_scan package to the distribution.
Thanks in advance

This failed CI because of the following:
Unable to fetch package.xml: Could not clone repository "https://github.com/SICKAG/sick_scan-release.git" at reference "release/melodic/sick_scan/0.0.14-0"

It looks like a release for melodic wasn't properly done into the release repository.  We highly suggest using bloom to do releases, which will do this for you; documentation on how to do it is here: http://wiki.ros.org/bloom/Tutorials/ReleaseCatkinPackage .  Let us know if you have any questions about the process.

Hello Chris,
Please excuse the inconvenience. We have fixed the problem and it should work now.
Thanks in advance

I've triggered a Travis rebuild to check.

This latest one failed because it looks like what is tagged in the gbp repository is 0.0.15, but this PR is trying to set it to 0.0.14.

@michael1309 can you please update this PR to specify the version you intend to release? Thanks

Hi Steven,
we will release a new version on Thursday 14th Feb and update the information the day after tomorrow.
Best regards,
Michael

we will release a new version on Thursday 14th Feb and update the information the day after tomorrow.

Sounds good. With that in mind I'll close this PR for now. Feel free to re-open it if you decide to update it manually. Or if you're releasing with bloom it can automatically open the PR for you.


Error attempting to use term

Description of the problem or steps to reproduce
ctrl-e term
Specifications

Version: 2.0.1-1
OS: Ubuntu 20.04
Error returned by micro after entering term in command mode:
Micro encountered an error: runtime.errorString runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:199 (0x7f7116650b40)
runtime/panic.go:198 (0x7f711665097d)
github.com/zyedidia/terminal/vt_posix.go:150 (0x7f7116b6b318)
github.com/zyedidia/micro/internal/display/termwindow.go:35 (0x7f7116b7aa3e)
github.com/zyedidia/micro/internal/display/termwindow.go:26 (0x7f7116b7a94a)
github.com/zyedidia/micro/internal/action/termpane.go:33 (0x7f7116b9da70)
github.com/zyedidia/micro/internal/action/command.go:838 (0x7f7116ba09c3)
github.com/zyedidia/micro/internal/action/command.go:867 (0x7f7116b97aca)
github.com/zyedidia/micro/internal/action/command.go:891 (0x7f7116b97ef7)
github.com/zyedidia/micro/internal/action/actions.go:1309 (0x7f7116b9f1c3)
github.com/zyedidia/micro/internal/info/infobuffer.go:145 (0x7f7116b6f071)
github.com/zyedidia/micro/internal/action/infopane.go:203 (0x7f7116b9b698)
github.com/zyedidia/micro/internal/action/infopane.go:91 (0x7f7116b9b1f0)
github.com/zyedidia/micro/internal/action/infopane.go:48 (0x7f7116b9adbc)
github.com/zyedidia/micro/cmd/micro/micro.go:341 (0x7f7116bc0102)
github.com/zyedidia/micro/cmd/micro/micro.go:297 (0x7f7116bbfca8)
runtime/proc.go:203 (0x7f711663d246)
runtime/asm_amd64.s:1357 (0x7f7116669551)
If you can reproduce this error, please report it at https://github.com/zyedidia/micro/issues
So, here I am. Please advise.

I can't reproduce your error on v2.0.1, but I looked into the code and the line that is causing the error has since been removed. I recommend using the latest version (v2.0.6, or v2.0.7-dev) which you can download on the releases page (a .deb file is provided for both versions). Please let me know if this resolves the issue. If not, could you also tell me your shell and terminal emulator?

bash and screen-256color
I got the .deb for 2.0.6 and installed that over the previous version I had. Now I get a different outcome. There's a red background message returned that says fork/exec /bin/bash: invalid argument. Thank you for your quick response!

I think I have identified a misconception on my part as well as the source of the problem. I entered echo $TERM which returned screen-256color. I am using the Windows subsystem for Linux.

Is it possible that this is a bug with an old version of WSL? I came across this issue which seems roughly the same (micro is using kr/pty as well to initialize a pseudo-terminal), and the conclusion seems to be that it is fixed but you need Windows version 18305 or greater.

I see. Thank you for tracing that down. Unfortunately that is under the control of my company and I'll just have to wait for the powers that be to permit the update.


Fix missing comma

There is a missing comma in jsPsych.js which results in syntax errors.

Thanks!


SubsManager between two subscriptions

Hi,
I use SubsManager to cache subscription on the client.
But something went wrong.
I have an Artworks collection with two publish methods :
Meteor.publish('artwork', function (artwork_pubsId) {
        return Artworks.find(artwork_pubsId);
});

Meteor.publish('artworks_preview', function () {
    return Artworks.find({}, {fields: {description: 0}, limit : 2});
});

I have two components with React with container :
const ArtworkSubs = new SubsManager();

export const composer = ({context}, onData) => {
  const {Meteor, Collections} = context();

  if (UserSubs.subscribe('user_home_preview').ready() && ArtworkSubs.subscribe('artworks_preview').ready()) {
    const users = Meteor.users.find().fetch();
    const artworks = Collections.Artworks.find().fetch();
    onData(null, {users : users, artworks : artworks});
  }
//...

And
const ArtworkSubs = new SubsManager();

export const composer = ({context,id}, onData) => {
  const {Meteor, Collections, FlowRouter} = context();

    if(ArtworkSubs.subscribe('artwork',id).ready()){
       const artwork = Collections.Artworks.find({}).fetch();
//...

First component hide description field of the artworks.
So when I go to an artwork page with the first publish, I don't have the description field...
If I go directly to the artwork page, I have this description, and when I go to the home page all artworks have this description field.
How can I do to have the good information in the good place ?
I need SubsManager to keep data in client cached to go back an auto scroll to the previous position...
I post to the meteor forum, but I don't have any solution for the moment.
https://forums.meteor.com/t/subsmanager-between-two-subscriptions/26773
@arunoda can you help me ?
Thanks.

@Themandunord hi, are you find solution ?

Any suggestions ?


Init

@peterhellberg are you available to port this one over?

@4kimov I'm no longer using Ruby (after spending a decade with Go) so hopefully someone else is up to taking it on 😊
I'm currently on vacation, otherwise I would have reached out earlier about not intending to work on the Ruby port of sqids.

@peterhellberg Ok, thanks for the heads up. I'll leave this open for now -- if someone is able to port over ~300 LOCs of TypeScript code to Ruby (+tests), please ping me.


Deploy the new MIDAS WPS

[ ] Change forms for MIDAS processes
[ ] Say: "This service has now moved to: ... Please bookmark the link above. The current service will be switched off soon."

E.g. ini file:
(cows_venv) [root@wps-web1 cows_wps]# cat processes/supported/DoubleIt/DoubleIt.ini
[wps_interface]
process_callable = processes.supported.DoubleIt.DoubleIt#DoubleIt
process_type = sync
dry_run_enabled = False
internal = False
store = True
status = False
visibility = public
caching_enabled = False
cache_exclude_params = Username
can_chain_outputs_to = DoubleIt DoubleIt

[globals]
Identifier = DoubleIt
Title = Double It
Abstract =
This service has been moved to the URL listed below.
PLEASE BOOKMARK THE LINK BELOW AND USE IT TO ACCESS THIS SERVICE FROM NOW ON.
The new service is available at:
https://ceda-wps-ui.ceda.ac.uk/processes/list?wps=midas_extract
The current page you are on will soon be switched off.

Metadata = none
UserGuide = Not provided
ProcessVersion = 1.0.0
OutputDefinitions = text/xml http://kona.badc.rl.ac.uk/ddp/schemas/no_schema_yet.xsd
RequestType = data sync

[DataInputs]

# Output format borrowed from async.
[ProcessOutputs]
output = xml_complex_value
output.mime_type =  text/xml
output.schema = schema_url
output.template = complex_output.xml

And edit this file to hide the buttons on the form.
cows_wps/renderer/proc_config_renderer.py

Done!


Given/When/Then should support other languages than English

Originally submitted to Google Code by Andreas.EbbertKarroum on 30 Mar 2010

When  issue 500  is implemented, it would be nice to supply with the
[Template] keyword not only the test case that should be used, but also, in
what language that template is written.
When I say
[Template]  User Login  en
RF will ignode prefixes "Given", "When", "Then", and "And" from keywords.
When I specify another language, like "de", then "Gegeben", "Wenn", "Dann",
and "Und".
This has already been briefly discussed in the user group:
http://groups.google.com/group/robotframework-users/browse_thread/thread/488c5bc04ab2315d/7f81d5b118e7aa7a?lnk=gst&q=german#7f81d5b118e7aa7a

This would be a really useful feature. BDD tests/scenarios are basically software specifications that should be written in a domain specific language that all stakeholders understand very well. English is not always the best choice for that. Many other BDD tools already support multiple languages (cucumber, behat, etc). Hopefully we get language support also for robot framework soon.

Yes, this would be a nice feature. Getting it in just requires someone needing it badly enough to either provide a pull request or sponsoring the developement.

I believe I can help with it.
Anyone defined how it should work? maybe like this or maybe support all of the Gherkin translations defined in any configuration

@felipecaputo Awesome! It's been some time since I've been thinking about this, but the comments you referred sounded pretty good still.
The most convenient solution would be able to use some command line option to specify the language to use. This would obviously require including various languages in Robot's code base, but I doubt that's a big issue. Most likely we could just use prefixes defined by Cucumber with attribution.
Open design questions:

What would be the name of the option? Possibilities include at least --bddprefixes and --gherkinlanguage and any combination of bdd/gherkin and prefix/language. Perhaps should look how Cucumber configures this.

Would we still need a way to specify custom prefixes? That would allow using languages Robot doesn't support, but perhaps we should just tell users to submit PRs with additional languages instead. My current thinking is that this functionality isn't needed. If can also be added later if there are concrete needs.

I don't expect this to be too complicated to implement and I'm willing to help if needed.

@pekkaklarck I believe it won't be complicated.
About item 1, I believe supporting both options would be the best, I'll take a look at how Cucumber do and make it similar
About item 2, the PR would be the best, since would be great to support a lot of languages, and the community can do that very quick!
I'll try to work on this this weekend and let you know

@pekkaklarck, I've read the comments on this issue and the proposed implementation (I'm mainly referring to your comments here) seems to be quite simple. I'm new to Python in general and I've been working with RF for the past 6 months, but I'd like to help with this if I can!
Currently, at the company I work for, we have a workaround for this: create a "bdd_language.robot" file, then define the following keywords:
*** Keywords ***
DADO QUE ${keyword}
 Run Keyword     ${keyword}
QUANDO ${keyword}
    Run Keyword     ${keyword}
etc
So we can call any keyword we've created with any of those "prefixes". It works fine, but now that the codebase is quite large, it's hard to use the IDE's functionalities (like 'Go to definition'), since the keyword is actually just a parameter to those keywords defined in the bdd_language.robot file.
I've checked the RF code and apparently the ignoring-bdd-prefixes part is done in the namespace.py file, using a hard-coded list ['given ', 'when ', 'then ', 'and ', 'but '], inside the _get_bdd_style_runner function (please correct me if I'm mistaken).
So all we should do is just pass a list of prefixes to ignore, according to the language the user selects? I guess --gherkin-prefixes is a good name for the CLI option, but it leads to believe we are passing a list of prefixes as an argument, which is not very clean in my opinion. Maybe then --gherkin-language is a better option? We could then have a list of languages and their respective prefixes, and have languages added through PRs, as you suggested. Of course, this list could come with some predefined languages. Cucumber seems to support over 60 languages. Maybe we just add those same 60 languages at first? I guess that would satisfy the needs of most RF users.
I just need to read the contributing guide again and check the proper way to implement this enhancement.

Sorry @johnathafelix for missing your comment earlier. Hope you are still interested to work on this. If yes, comment here or join #devel channel in our Slack community:
https://robotframework-slack-invite.herokuapp.com/
As you've find out, implementing this shouldn't be too complicated. About the design:

I would also prefer being able to just give the name name of the language to use instead of listing prefixes.
Being able to list prefixes might be useful as well.
Should probably support multiple languages.
Using languages supported by Cucumber, with attribution, sounds like a good idea.

We can discuss about the details separately. Slack might be best for free discussion and then we can write down decisions here.

Forgot to mention: This would be a great addition to RF 3.1 scope. The target is to release it in early June so there's still enough time to get this in.

Thank you, @pekkaklarck! I'll start looking into it today. Hopefully it won't be too difficult for me :smile:

Awesome! I'll add this to RF 3.1 scope initially. I think the first steps should be these:

You look at the code to see what would be a good way to pass this information from the command line to the code responsible on finding keywords. Let me know here or on the #devel channel if you got questions.

We decide how to actually use this functionality. This includes the command line option name, should we allow giving custom prefixes or only support giving language to use, should we support multiple languages and if yes how, and so on. Related to this, you can see my old comment that seems to be mostly valid still. Do you have opinions about these?

Hey, @pekkaklarck! I didn't have much time to look deep into it last week, but I was looking at the Cucumber's language options and it raised some concerns: for some languages, they have multiple translations for some gherkin keywords. For example, apparently all the following sentences are valid for "given" in French:
"Etant donné que ", "Etant donné qu'", "Etant donné ", "Etant donnée ", "Etant donnés ", "Etant données ", "Étant donné que ", "Étant donné qu'", "Étant donné ", "Étant donnée ", "Étant donnés ", "Étant données "
Do you think it's a good idea to implement this option? I don't speak French, but given its similarity with Spanish and Portuguese, I believe all these options can actually be reduced to just one and make things simpler.
I'm now checking the code to see how to pass arguments via command line! And I'm sure I'll have a lot of questions! haha Thanks!

I'll de-scope this issue from RF 3.1 because I won't have time to look at it. If someone else has time and interest, I can add it back and I'm still available to help.

Hi guys. Is this still a thing?
I got really interested. Is there anyone working on it?

This is definitely still a thing. A thing waiting for someone interested to implement it to be more precise. The first step would be agreeing on how to configure this and design the overall functionality in general. I'm happy to help with that, either here or on out Slack, and would be happy to review PRs as well. Implementing this shouldn't be overly complicated, once we agree on the design, and could easily be included into RF 5.0 targeted for late 2021.

Instead of hard-coding the words, "given", "when", etc., and providing translations in different languages, I would like to see a more general-purpose solution.
My proposal is that when robot is asked to execute a keyword that doesn't exist, it calls a function to resolve the keyword. By default this keyword would see if it begins with "given", "then", etc and strips it off and returns the actual keyword just like what the core does now.
Then, we can let a test or suite replace that implementation via a setting. They could then search for any special words that they want.
While this would be useful for automatically stripping "given", "when", "then" in any language the user wants, it could also be useful in other ways. For example, the function could be used to auto-load a library or page object. Or, it could be used to strip off leading numbers for people who want a test to look like a bulleted list. There are probably other uses as well.
It seems like this might be easy to implement. _get_runner already tries multiple methods to resolve a keyword, this would just add one more or maybe replace one special-purpose function with a more general-purpose function.

Ok, I'll try to summarize some information here trying to narrow down the discussion and provide my thoughts as well:
Things already suggested and my thoughts
comment on Jun 2014

The workaround found by Andreas (please see comment #3) has IMHO two drawbacks:

Keyword substitution clutters your log file. The built-in English BDD prefixes are eliminated silently keeping the log tidy.
Keyword substitution doesn't work smoothly with keywords from test libraries if those kw require arguments. Using such kw with the built-in English BDD prefixes is no problem.

I totally agree with those arguments. While creating a custom resource_file like the one suggested by the workaround is a nice kickoff to have users speaking their own domain language in the tests, integration with custom keywords is key to run a complex test suite and a tidy log is key to debug big suites with tons of tests. Those two benefits alone got me totally convinced that robot needs this support =)

From this point of view a clean support of i18n BDD prefix would be preferrable.

 Maybe full i18n support can be broken in many steps to ease implementation.
comment on Sep 2017

What would be the name of the option? Possibilities include at least --bddprefixes and --gherkinlanguage and any combination of bdd/gherkin and prefix/language. Perhaps should look how Cucumber configures this.

We are mostly talking about locale support for gherkin, so regardless the design I suggest something like gherkin_locale.
I think the cli parameter suggestion would definitely work, but is there still room to talk about this? A test specification is implemented using a language (English, Portuguese, Spanish, etc), a mix of languages (Spanglish, Portunhol, etc) or something a bit more abstract (like a bulleted list), but once it's written, it's written using that language. It won't change unless you change the test specification.
Ideally it should be totally possible to have multiple domain languages, multiple abstraction layers for a given high level domain language or even have a domain language composed by other domain languages. So I think it would be nice to support multiple locales in a test suite - locale support directly in the test file. I think that since the test specification should basically scream the locale(s), we could have a setting option in the .robot file instead of having a cli parameter. This way we could support working with multiple locales in a single suite run.

Would we still need a way to specify custom prefixes? That would allow using languages Robot doesn't support, but perhaps we should just tell users to submit PRs with additional languages instead. My current thinking is that this functionality isn't needed. If can also be added later if there are concrete needs.

In this context, supporting the locale by a settings parameter could be achieved by just passing a list of supported locales or providing a custom locale file in the settings section. It might be useful to think about pattern matching of some sort (regex?) to enable users to express their domain language in a flexible way.
comment on Apr 2018

As you've find out, implementing this shouldn't be too complicated. About the design:

I would also prefer being able to just give the name name of the language to use instead of listing prefixes.

Using the settings section of the test file can avoid the need for cli parameters in most cases and support running different .robot files with different locales in the same run. Arguably the same could be achieved with cli, but you would need to remember all the languages used in the whole test suite, the settings section just seems more natural and cleaner to me. BTW to ensure compatibility we could default to English if the user doesn't set this parameter in the file. So to start using a different locale, users would not need to change anything currently working, they would just need to explicit specify in the test file any locale different than the English default.

Being able to list prefixes might be useful as well.

For this one it might be useful to add a specific cli parameter (maybe --help supported_gherkin_locales?).

Should probably support multiple languages.

We could start very small with portuguese and spanish (languages I have easy access to), get feedback from the community and expand support later.

Using languages supported by Cucumber, with attribution, sounds like a good idea.

Maybe not mandatory for a first version, but surely a nice to have =)
comment on Apr 2018

Hey, @pekkaklarck! I didn't have much time to look deep into it last week, but I was looking at the Cucumber's language options and it raised some concerns: for some languages, they have multiple translations for some gherkin keywords. For example, apparently all the following sentences are valid for "given" in French:
"Etant donné que ", "Etant donné qu'", "Etant donné ", "Etant donnée ", "Etant donnés ", "Etant données ", "Étant donné que ", "Étant donné qu'", "Étant donné ", "Étant donnée ", "Étant donnés ", "Étant données "
Do you think it's a good idea to implement this option? I don't speak French, but given its similarity with Spanish and Portuguese, I believe all these options can actually be reduced to just one and make things simpler.

I think this is particularly important feature because it greatly helps to shape the script to the domain language and not the other way around for many locales (Portuguese included) where the context greatly influences the way people speak. Apart from the simple supported locales, it can be supported by providing a custom locale on settings section.
comment on Aug 2021

Instead of hard-coding the words, "given", "when", etc., and providing translations in different languages, I would like to see a more general-purpose solution.
My proposal is that when robot is asked to execute a keyword that doesn't exist, it calls a function to resolve the keyword. By default this keyword would see if it begins with "given", "then", etc and strips it off and returns the actual keyword just like what the core does now.
Then, we can let a test or suite replace that implementation via a setting. They could then search for any special words that they want.
While this would be useful for automatically stripping "given", "when", "then" in any language the user wants, it could also be useful in other ways. For example, the function could be used to auto-load a library or page object.

I'm not sure if understand the proposed benefit because _get_runner  already tries many things to find the keyword. It can already find keywords in the test files, bdd style keywords, keywords in resource files, in libraries, it resolves keywords conflicts, etc. I'm not sure how I feel about auto-loading a library or page object that users are unable to trace from the settings section. Maybe being as explicit as possible is good thing in this case to avoid a hard to debug problem with a possible keyword conflict from something that was auto-loaded.

Or, it could be used to strip off leading numbers for people who want a test to look like a bulleted list. There are probably other uses as well.

I like this idea because it helps to shape the script to the domain language and not the other way around. It may be necessary to start thinking in a locale gherkin pattern instead of a gherkin prefix though. Right now I don't think the implementation would be overly complicated but it might be too soon to say that.
Suggested Design
Reference Test Script - calculator_tests.robot
*** Settings ***
Documentation     Example test case using English default gherkin locale.
Resource    calculator.resource

*** Test Cases ***
Addition
    GIVEN calculator has been cleared
    WHEN user types "1 + 1"
    AND user pushes equals
    THEN result is "2"

Subtraction
    GIVEN calculator has been cleared
    WHEN user types "1 - 1"
    AND user pushes equals
    THEN result is "0"

A Portuguese Test Script - calculator_tests_pt_br.robot
*** Settings ***
Documentation     Example test case using pt-br gherkin locale.
Resource    calculator-pt-br.resource
Gherkin Locale     pt-br

*** Test Cases ***
Adição
    DADO QUE a calculadora foi limpa
    QUANDO o usuário insere "1 + 1"
    E o usuário insere igual
    ENTÃO o resultado é "2"

Subtração
    DADO QUE a calculadora foi limpa
    QUANDO o usuário insere "1 - 1"
    E o usuário insere igual
    ENTÃO o resultado é "0"

A Mixed Test Script - calculator_tests_mixed.robot
*** Settings ***
Documentation     Example test case using both en and pt gherkin locales.
Resource    calculator-pt-br.resource
Resource    calculator.resource
Gherkin Locale     pt-br, en-us

*** Test Cases ***
Addition
    GIVEN calculator has been cleared
    WHEN user types "1 + 1"
    AND user pushes equals
    THEN result is "2"

Subtração
    DADO QUE a calculadora foi limpa
    QUANDO o usuário insere "1 - 1"
    E o usuário insere igual
    ENTÃO o resultado é "0"

A Custom Locale Test Script - calculator_tests_custom_locale.robot
*** Settings ***
Documentation     Example test case using a custom gherkin locale.

This way we could easily support the following use case:
A Bulleted List Custom Locale Test Script - calculator_tests_custom_locale_bulleted_list.robot
*** Settings ***
Documentation     Example test case using a custom gherkin locale with bulleted list.
Resource    calculator.resource
Gherkin Locale     en-bulleted.locale

*** Test Cases ***
Addition
    - GIVEN calculator has been cleared
    - WHEN user types "1 + 1"
    - AND user pushes equals
    - THEN result is "2"

Subtraction
    - GIVEN calculator has been cleared
    - WHEN user types "1 - 1"
    - AND user pushes equals
    - THEREFORE result is "0"

A Custom Gherkin Locale File using bulleted list - pt-br-bulleted.locale
*** Gherkin Locale Keywords ***
- GIVEN
- WHEN
- AND
- THEN
- THEREFORE

We can also have a cli command, so the user can check the standard supported locales:
$ robot --help supported_gherkin_locales

If we stretch a bit further, we could talk about simple pattern match instead of just prefix and support a use case like:
A Pattern Match Custom Locale Test Script - calculator_tests_custom_locale_pattern_match.robot
*** Settings ***
Documentation     Example test case using a custom gherkin locale with pattern match.
Resource    calculator.resource
Gherkin Locale    en-pattern_match.locale

*** Test Cases ***
Addition
    GIVEN calculator has been cleared
    PROVIDED THAT user types "1 + 1" AND SUCCEEDS
    user pushes equals TO PERFORM THE OPERATION
    THEREFORE result is "2"

A Custom Gherkin Locale File using pattern match - en-pattern_match.locale
*** Gherkin Locale Keywords ***
GIVEN @
PROVIDED THAT @ AND SUCCEEDS
@ TO PERFORM THE OPERATION
THEREFORE @

What you guys think about it?

On Tue, Aug 3, 2021 at 10:27 PM André Portela @.***>
wrote:

comment on Aug 2021
https://github.com/robotframework/robotframework/issues/519#issuecomment-891092739
Instead of hard-coding the words, "given", "when", etc., and providing
translations in different languages, I would like to see a more
general-purpose solution.
My proposal is that when robot is asked to execute a keyword that doesn't
exist, it calls a function to resolve the keyword. By default this keyword
would see if it begins with "given", "then", etc and strips it off and
returns the actual keyword just like what the core does now.
Then, we can let a test or suite replace that implementation via a
setting. They could then search for any special words that they want.
While this would be useful for automatically stripping "given", "when",
"then" in any language the user wants, it could also be useful in other
ways. For example, the function could be used to auto-load a library or
page object.
I'm not sure if understand the proposed benefit because _get_runner already
tries many things to find the keyword.

The proposed benefit is that the person or team writing the test can supply
any method they want without having to modify the core. If they need
support for a language not supported by the core they can trivially add it.
Right now the core of robot framework is very inflexible. It is going to
take a fairly large amount of effort to modify it to support
other languages in the BDD support and there's almost no way to have
coverage for every language used by the robot community.
If there had already been a mechanism to call a user-supplied function, we
wouldn't be having this conversation. The community would have already
built functions to do the bdd processing for various languages, and if they
hadn't, it would be trivial for you to write your own without requiring a
modification to the core.

It can already find keywords in the test files, bdd style keywords,
keywords in resource files, in libraries, it resolves keywords conflicts,
etc. I'm not sure how I feel about auto-loading a library or page object
that users are unable to trace from the settings section. Maybe being as
explicit as possible is good thing in this case to avoid a hard to debug
problem with a possible keyword conflict from something that was
auto-loaded.
Or, it could be used to strip off leading numbers for people who want a
test to look like a bulleted list. There are probably other uses as well.
I like this idea because it helps to shape the script to the domain
language and not the other way around. It may be necessary to start
thinking in a locale gherkin pattern instead of a gherkin prefix though.
Right now I don't think the implementation would be overly complicated but
it might be too soon to say that.
Suggested Design Reference Test Script - calculator_tests.robot

...
What you guys think about it?
Given that I'm the one that made the request for a more general-purpose
solution, I'm not a fan of this proposal. I would much rather have a
general-purpose solution. :-)

I don't see the point of hard-coding language support in the core when my
solution allows that and much more for about the same amount of effort.

Could you share a small example of how could look like the overall design so I can have a better grasp of your proposal? =)

you want to expose the interface of the current keyword resolver logic (the one that strips the gherkin prefix) using dependency injection so although robot would still provide a default implementation, users could just inject their own implementation?

Yes, that's a fairly accurate description.
In short, we might add a new clause in KeywordStore._get_runner that is called when it can't find the keyword in the normal ways:
if not runner and self.custom_keyword_resolver:
    runner = self._get_runner_from_custom_resolver(name)

Though, it would be worth having a discussion as to whether this is called before or after all of robot's default methods.
There would need to be a new suite setting that lets you set the resolver. That, or a built-in keyword that lets you set it at runtime.
For example, the setting might look like this:
*** Settings ***
Suite Setup    set unknown keyword handler  custom resolver

You are then free to define my_custom_resolver however you wish. For example, it might look something like this:
import re
def custom_resolver(context, keyword):
    pattern = "((sendo que|assim que|e também|portanto) )(.*)$"
    match = re.match(pattern, keyword, re.IGNORECASE)
    if match:
        keyword = match.group(3)
        runner = context.get_runner(keyword)
        return runner

    return None

This could be used to search for gherkin words in any language you want, but it could also be used in other creative ways since you could do any string processing you want to remove prefixes, suffixes, or anything else.

This is a very good idea, I like it =)

Though, it would be worth having a discussion as to whether this is called before or after all of robot's default methods.

Maybe we can leave this decision up to users and provide higher flexibility if we expose the entire KeywordStore to be subclassed instead of adding another clause to KeywordStore._get_runner. We could provide one or two reference implementations that could both serve as a documentation of how to subclass it and provide default support for some given locales. This way users could even implement their own plug-ins and extensions to it.
Just one example: current KeywordStore._get_runner implementation tries a bunch of different ways to get a runner and before giving up, it handles it over to KeywordStore._get_bdd_style_runner which then tries to strip off some bdd prefixes and just calls KeywordStore._get_runner recursively to keep trying to get a valid runner. For this reason, this example works just fine currently:
*** Test Cases ***
Addition
    GIVEN given giVen calculator has been cleared

Users could provide their own faster implementation (if that's their thing) when they know the pattern of their domain language in advance.

There would need to be a new suite setting that lets you set the resolver. That, or a built-in keyword that lets you set it at runtime.

For this solution I would prefer the suite setting from a cli parameter to avoid clutter test suites with implementation details about the configuration.

You are then free to define my_custom_resolver however you wish.

Mixing this idea with the subclassing, end users could implement a KeywordStore subclass like:
from robot.running.namespace import KeywordStore

class CustomPTBRKeywordStore(KeywordStore):
    def _get_bdd_style_runner(self, keyword):
        pattern = "((sendo que|assim que|e também|portanto) )(.*)$"
        match = re.match(pattern, keyword, re.IGNORECASE)
        if match:
            keyword = match.group(3)
            runner = self._get_runner(keyword)
            return runner
        return None

Or tweek further the KeywordStore behavior to their own needs and finally execute the following:
$ robot --keyword_store com.company.package.CustomPTBRKeywordStore .

For this particular simple case, I think what we are really trying to do is just striping off some custom BDD patterns so we can find our keyword implemented somewhere else. For this, it might be possible to make the interface even cleaner using just a function like you proposed:
import re
def my_own_pt_br_pattern_remover(keyword):
   pattern = "((sendo que|assim que|e também|portanto) )(.*)$"
   match = re.match(pattern, keyword, re.IGNORECASE)
   if match:
       result_keyword = match.group(3)
       return result_keyword
   return None

$ robot --keyword_pattern_remover com.company.package.my_own_pt_br_pattern_remover.

For flexibility and convenience we can even keep both methods available for users and provide default implementations. For instance, we could have a default locale implementation like:
import re
def locale_bdd_pattern_remover(keyword, locale_patterns):
   for pattern, extraction_group in locale_patterns:
       match = re.match(pattern, keyword, re.IGNORECASE)
       if match:
           keyword = match.group(extraction_group)
           return keyword
   return None

To enable the following cli:
$ robot --keyword_pattern_remover robot.running.namespace.BDDi18nKeywordStore:en,pt-br,de .

I think I can work something out for a pull request with those info. What you guys think?

Personally, I don't want to have to subclass an internal robot class
to provide my own translations. That sounds much too heavyweight for
something as simple as translating a robot keyword.
I also don't like having to use a command-line option to use this feature.
I think the feature should be on a per-suite basis and controlled by a
setting or keyword. If I'm only doing bdd-style tests in one suite, I
shouldn't have to have this function be used in every suite. I don't see
the use of a new setting as clutter, I see it as valuable information for
understanding how the tests work.
On Thu, Aug 5, 2021 at 4:19 PM André Portela @.***>
wrote:

This is a very good idea, I like it =)
Though, it would be worth having a discussion as to whether this is called
before or after all of robot's default methods.
Maybe we can leave this decision up to users and provide higher
flexibility if we expose the entire KeywordStore to be subclassed instead
of adding another clause to KeywordStore._get_runner. We could provide
one or two reference implementations that could both serve as a
documentation of how to subclass it and provide default support for some
given locales. This way users could even implement their own plug-ins and
extensions to it.
Just one example: current KeywordStore._get_runner implementation tries a
bunch of different ways to get a runner and before giving up, it handles it
over to KeywordStore._get_bdd_style_runner which then tries to strip off
some bdd prefixes and just calls KeywordStore._get_runner recursively to
keep trying to get a valid runner. For this reason, this example works just
fine currently:
*** Test Cases ***
Addition
GIVEN given giVen calculator has been cleared
Users could provide their own faster implementation (if that's their
thing) when they know the pattern of their domain language in advance.
There would need to be a new suite setting that lets you set the resolver.
That, or a built-in keyword that lets you set it at runtime.
For this solution I would prefer the suite setting from a cli parameter to
avoid clutter test suites with implementation details about the
configuration.
You are then free to define my_custom_resolver however you wish.
Mixing this idea with the subclassing, end users could implement a
KeywordStore subclass like:
from robot.running.namespace import KeywordStore
class CustomPTBRKeywordStore(KeywordStore):
def _get_bdd_style_runner(self, keyword):

    pattern = "((sendo que|assim que|e também|portanto) )(.*)$"

    match = re.match(pattern, keyword, re.IGNORECASE)

    if match:

        keyword = match.group(3)

        runner = self._get_runner(keyword)

        return runner

    return None

Or tweek further the KeywordStore behavior to their own needs and finally
execute the following:
$ robot --keyword_store com.company.package.CustomPTBRKeywordStore .
For this particular simple case, I think what we are really trying to do
is just striping off some custom BDD patterns so we can find our keyword
implemented somewhere else. For this, it might be possible to make the
interface even cleaner using just a function like you proposed:
import re
def my_own_pt_br_pattern_remover(keyword):
pattern = "((sendo que|assim que|e também|portanto) )(.*)$"
match = re.match(pattern, keyword, re.IGNORECASE)
if match:
   result_keyword = match.group(3)

   return result_keyword

return None
$ robot --keyword_pattern_remover com.company.package.my_own_pt_br_pattern_remover.
For flexibility and convenience we can even keep both methods available
for users and provide default implementations. For instance, we could have
a default locale implementation like:
import re
def locale_bdd_pattern_remover(keyword, locale_patterns):
for pattern, extraction_group in locale_patterns:
   match = re.match(pattern, keyword, re.IGNORECASE)

   if match:

       keyword = match.group(extraction_group)

       return keyword

return None
To enable the following cli:
$ robot --keyword_pattern_remover robot.running.namespace.BDDi18nKeywordStore:en,pt-br,de .
I think I can work something out for a pull request with those info. What
you guys think?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/robotframework/robotframework/issues/519#issuecomment-893816454,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAISMYU7G3QRDS4IJZIUC3LT3L557ANCNFSM4ARCOLHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

Personally, I don't want to have to subclass an internal robot class
to provide my own translations. That sounds much too heavyweight for
something as simple as translating a robot keyword.

Yes, I agree that subclassing would be heavyweight for users that just want translation, that's why I proposed that convenience interface.

I also don't like having to use a command-line option to use this feature.
I think the feature should be on a per-suite basis and controlled by a
setting or keyword. If I'm only doing bdd-style tests in one suite, I
shouldn't have to have this function be used in every suite. I don't see
the use of a new setting as clutter, I see it as valuable information for
understanding how the tests work.

Yeah... I can relate to the cli option thing. It seemed like a good idea to avoid it at first, but when the discussion switched to enable a polymorphic keyword resolver I was not so sure that belonged to the test suite. Having said that, I totally agree with the following argument and I'm sold on a new setting.

If I'm only doing bdd-style tests in one suite, I shouldn't have to have this function be used in every suite.

Maybe something like:
*** Settings ***
Custom Keyword Resolver    com.company.package.my_own_bdd_pt_br_keyword_resolver

Is it in progress?
Can we use https://github.com/cucumber/gherkin-python here to get Gherkin tokens?

We decided to move this one and highly related multilanguage markers issue (#4096) to RF 5.1. That wasn't done because we don't consider these issues important, on the contrary, but simply because RF 5.0 already contains lot of great new features and we want to get it out as soon as possible. These translation related issues will be the highest priority issues in RF 5.1 and the plan is to start its development right after RF 5.0 has been released.

What's the status of this? Is robot going to adopt the custom resolver solution so that we can provide our own functions for resolving keyword names, or are translations going to be built into the core? I sure hope the more general solution is supported so we can provide our own translations fairly simply.

Adding myself to the issue...

See this comment for issue #4096 for a list of everything that can be translated in RF 5.1, including the BDD prefixes that are covered by this issue. With these prefixes it's probably a good idea to look at what terms Cucumber uses.
We obviously need help with translations from the community. We have decided to use the #localization channel on our Slack as the main collaboration forum and separate channels can be created for each language there as well. If you are interested to help but haven't yet joined out Slack community, you can get an invite here.


Added policy checks to the repositories_controller and modified the activities policy.

Fixes: #231
Fixes: #225
Signed-off-by: Jürgen Löhel<EMAIL_ADDRESS>

LGTM

I'll merge this and fix that let statement myself, since we need this bug fix before the second stable release.


[BEAM-1395] SparkGroupAlsoByWindowFn not sorting grouped elements by timestamp

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @dhalperi / @kennknowles

Suggest some added testing:

that this behavior is working as intended
a regression test for the user issue (is there a new RunnableOnService test needed? is there something more targeted at Spark?)

Mmmm.. testing is a good question - even now, it might pass sometime, if by chance elements are ordered, so a test could be added (ROS) to check this and it should ALWAYS pass if no regression, but it might also pass if broken. Am I wrong here ?

You're right that it would be hard to guarantee a test would fail, but hopefully we can think of a test that would be flaky at least. It might be we get this "for free" as soon as we start running full integration tests with the ongoing performance work.
For the short term, I would expect to see a SparkGroupAlsoByWindowFnTest that unit tests the function here. (You can probably crib straight from the GroupAlsoByWindowsViaOutputBufferDoFnTest for much of the test setup/teardown/structure).

Coverage increased (+0.01%) to 69.695% when pulling d2b1c678a45dd740c4ec4dbdf508564dd78e3abe on amitsela:BEAM-1395 into c442ef81aa5bfbe84c0e3344ed8dc1d15d6e9a36 on apache:master.

Let me think about it. I'd prefer adding/enhancing a ROS test because it feels funny to do this specifically here since this exact code (sort the grouped elements) also exists in Spark runner CombinePerKey/Globally and this might be (unresolved) for anyone using GroupAlsoByWindowsViaOutputBufferDoFn, so it feels something in a bit of a larger scope.
Ironically though: Coverage increased (+0.01%)

(Those coverage numbers are crap, but the link is sometimes useful.
I need to go file a JIRA for why -- basically, https://github.com/apache/beam/pull/1824#issuecomment-276735672

Filed https://issues.apache.org/jira/browse/BEAM-1399

I agree we want a cross-runner/e2e test. But I also think it's worth testing the SparkGroupAlsoByWindows sorts correctly before invoking the old code. You can do that in a pretty small unit test, I hope.

Pause on this, because let's not bother sorting. See issue comment.

See https://github.com/apache/beam/pull/1924

@kennknowles stop indeed. Makes more sense to do it the way you did in #1924.

Coverage increased (+0.003%) to 69.685% when pulling f746e1054c99c8ff6c987d27a14230ba207dfa91 on amitsela:BEAM-1395 into b3d962df230e5ed72ef04bf0bf410e8f925ff656 on apache:master.

Coverage increased (+0.003%) to 69.685% when pulling f746e1054c99c8ff6c987d27a14230ba207dfa91 on amitsela:BEAM-1395 into b3d962df230e5ed72ef04bf0bf410e8f925ff656 on apache:master.

Removed chunking as done in #1924.
I don't see a reason to add tests here, I would if it was straight forward but its not - I'd have to open ugly APIs and mock some of the parameters and eventually this is a Spark FlatMapFunction so the natural way to test it is as part of a Spark pipeline. ROS should do, and since order is not required any more, I think current tests are enough.

Sgtm
On Mon, Feb 6, 2017 at 01:21 Amit Sela<EMAIL_ADDRESS>wrote:

Removed chunking as done in #1924
https://github.com/apache/beam/pull/1924.
I don't see a reason to add tests here, I would if it was straight forward
but its not - I'd have to open ugly APIs and mock some of the parameters
and eventually this is a Spark FlatMapFunction so the natural way to test
it is as part of a Spark pipeline. ROS should do, and since order is not
required any more, I think current tests are enough.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/beam/pull/1922#issuecomment-277625661, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgITzNLO9grmCzJ0LK3QxaMbBmD6GJxks5rZuYBgaJpZM4L3lVh
.


fewer search results in ols4 than ols3

OLS3
https://www.ebi.ac.uk/ols/api/search?q=diabetes&ontology=efo,mondo
OLS4
https://www.ebi.ac.uk/ols4/api/search?q=diabetes&ontology=efo,mondo

This is the old endpoint:
https://www.ebi.ac.uk/ols/api/select?type=class&ontology=edam&sort=label%20desc&row[…]00&q=data&allChildrenOf=http://edamontology.org/operation_0004
and this a the same query string, but using ols4 instead of 3:
https://www.ebi.ac.uk/ols4/api/select?type=class&ontology=edam&sort=label%20desc&ro[…]00&q=data&allChildrenOf=http://edamontology.org/operation_0004
Notice that the older API returns 36 records, where as the newer one returns 27
Copying an issue reported by Mahfouz Shehu for documentation purposes. Might be related.

I think our Solr index has a subtly different configuration to OLS3. Will look more into it tomorrow.

I think this is possibly because OLS4 does not currently have a solr index for annotations_trimmed like OLS3 did, so the annotations are not being searched.

Example from #407
I've been trying to migrate our pipelines to OLS4 and am running into a discrepancy in the behaviour for one of the API endpoints:
https://www.ebi.ac.uk/ols/api/search?ontology=chebi&q=allopurinol
vs.
https://www.ebi.ac.uk/ols4/api/search?ontology=chebi&q=allopurino

@serjoshua  If this is working this should return over 400 results:
https://www.ebi.ac.uk/ols4/api/search?q=diabetes&ontology=efo,mondo

Tested the backend changes in my local and it seems like it is returning more results now compared to what we have in production:
Local: 508 terms

OLS3: 409 terms

OLS4: 281 terms

This should be fixed now!


Updating reno usage: message template and documentation

What does this PR do?
Updating Reno sections list in the base template and documenting them.

@olivielpeau I added the other section (completely forgot about it). I still added in the documentation and template that this should rarely be used as I feel a lot of the current entries should be in other section (mainly the 'enhancement' section that was missing).
For the rest my plan was to merged after the release of 6.3.0 so almost no new release note has been merged.


Fix AuthInterface.getAccessToken() to throw exception after retries

Fix AuthInterface.getAccessToken() to throw exception after retries.

Thanks for this change.


The Register-SecretVault cmdlet violates PowerShell’s best-practice coding rules.

When strict mode is on, the Register-SecretVault cmdlet -- even though it completes what it is supposed to do -- generates a terminating error (“The property 'Path' cannot be found on this object. Verify that the property exists.”). Firstly, I would expect the Microsoft.PowerShell.SecretStore cmdlets to respect PowerShell’s best-practice coding rules and, secondly, if an error occurs anyway, the error to be non-terminating.
Set-StrictMode -Version Latest
try{
  Register-SecretVault -Name ‘MSStore' -ModuleName 'Microsoft.PowerShell.SecretStore'
  Register-SecretVault -Name 'KPStore' -ModuleName 'SecretManagement.Keepass'
} catch { $_ }

Thanks @wi-fr we have a fix ready so you dont see the error

Fixed for 1.0 RC1 release.


feat: Add light/dark variants for existing GitHub icon

Existing GitHub icon doesn't have light and dark variants so they are added here.
It's just a fill color change on the existing icon to reflect the light/dark branch colors found here. And then I renamed the icons for light and dark.
edit: I have no clue why the line count is so high ig the pnpm lock?

Thanks 🚀🚀


Optimize SVG Sprites

Is your feature request related to a problem? Please describe.
It would be nice if you could use SVG Sprites with SVGO.
Describe the solution you'd like
SVG Sprites like below are optimized
<svg xmlns="http://www.w3.org/2000/svg" >     <symbol id="test" viewBox="0 0 512 512">         <path d="..."></path>     </symbol> </svg>
Describe alternatives you've considered
Currently my SVG Sprite is not optimized but there is one online tool that can optimize/minify it https://www.svgminify.com/
Additional context
The SVG sprite example is one inspired from Font Awesome pro version 5.13.3 solid.svg SVG Sprite

Hey! Thanks for the feature request.
Just want to verify that we're experiencing the same thing here. When you say we "SVG sprite is not optimized", can you clarify what actually happens?
I've tested what happens with the Font Awesome 6 Solid SVG sprites, which throws the entire file away. This kind of makes sense given none of the symbols were unused, therefore they all get removed, but indeed we should make it easier to work with sprites.
For now, a config like this should work for SVG sprites:
export default {
  plugins: [
    {
      name: 'preset-default',
      params: {
        overrides: {
          removeHiddenElems: false, // don't remove invisible elements
          removeUselessDefs: false, // don't remove unused symbols
          cleanupIds: false // don't remove symbol ids
        }
      }
    }
  ]
}

This takes Font Awesome 6 Solid down from 834.976 KiB to 808.786 KiB.
In general, we do support optimizing sprite packs though, but it's not obvious how to handle them. I think it'd be better to keep the default behavior as it is, but introduce documentation or a preset specific to this use-case.
Are your SVG sprites available publically so I can review the structure and how SVGO processes it?

Hello,
I Apologize for not including all the details.
I first tried using it through grunt-svgmin plugin then I went straight to using SVGO because it was giving me an empty svg file.
After using the config you provided it did actually work and it reduced the size from 80kb to ~70kb.
Thank you for clarifying!

You could try using https://github.com/twbs/icons/blob/main/bootstrap-icons.svg, although the file is supposed to be already optimized through svg-sprite: https://github.com/twbs/icons/blob/main/svg-sprite.json
I agree, a preset or clear instructions would help many people!


Revert changes to ExecHandleRunner

fixes #31282
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test this

I've triggered the following builds:

Pull Request Feedback (Trigger) (Check)

Build Scan

The following builds have passed:

Pull Request Feedback (Trigger) (Check)

Build Scan

The merge queue build has failed. Click here to see all failures.

The merge queue build has failed. Click here to see all failures.

The merge queue build has failed. Click here to see all failures.

The merge queue build has failed. Click here to see all failures.


Update acts-as-taggable-on to 4.0.0

Adds support for Rails 5.
Changelog: https://github.com/mbleigh/acts-as-taggable-on/compare/v3.5.0...v4.0.0
Fixes #233

Nice :)
Having reviewed the changelog it seems the migrations have changed slightly - especially around indexes. Probably not too important to replicate those ourselves, but perhaps worth considering.
Thanks for sorting this.

I'm pretty sure the migrations are only relevant to 3.5.0, though I could be wrong.

We merged this without migrations in GitLab and everything is working fine, just FYI :)


Jobber.exe causes trouble with virus scanner F-Secure

Reported from https://github.com/eamodio/vscode-gitlens/issues/123
OS Version: Windows_NT ia32 6.3.9600
User gets the following F-Secure warning:
PotentiallyUnwanted:W32/App.0750e025c8!Online,
<me>.vscode\extensions\eamodio.gitlens-4.3.2\node_modules\spawn-rx\vendor\jobber\Jobber.exe
Any ideas on this one?

Delete F-Secure /shrug
You can see the code to Jobber at https://github.com/paulcbetts/spawn-rx/tree/master/vendor/jobber/Jobber, it is 100% boring


[release-1.5] 'istioctl kube-inject' error message refers to incorrect CLI option

This is an automated cherry-pick of #22502

@esnible please consent

@googlebot I consent.


add pdfjs path for cMapUrl and standardFontDataUrl

I was trying to convert a PDF, when I got some warnings about fonts not found.
You can reproduce the behavior with this PDF: pdf
Warning: fetchStandardFontData: failed to fetch file "FoxitSans.pfb" with "UnknownErrorException: The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.".
Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Helvetica_path_U.".
Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Helvetica_path_S.".
Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Helvetica_path_B.".
...
Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Helvetica_path_/.".

It is an issue with pdfjs dependency: the module comes with a standard fonts directory, but its path has to be passed explicitly in the pdfjs.getDocument options object, by the standardFontDataUrl parameter.
So I have added this parameter using require.resolve to automatically get the pdfjs module path, and I also used this to fix the path used for cMapUrl.

thanks! Released in v2.1.0

Hi,  @k-yle
I'm using "pdf-to-img": "^2.1.2",
But still get the error:
Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet LucidaSans_path_G.".


Added comment-getter to the Cell class

As i didn't get any response in 2 weeks, i've done it by myself. I don't know if this approach is suitable for your architecture, but i didn't understand why this._comment property is undefined in Cell class. Also checked all of X-form things related to comments, everything is fine there.

@yungcatx apologies for the delay - I tend to prioritise pull requests over issues as they indicate a higher level of need.
Regarding this PR - access to the cell comment is already available via that 'note' property which returns the model of the attached comment. The reason we called this 'note' is that Excel has changed the meaning of 'comment' to a chat-style comment where users can hold a discussion and the old-style comment has been renamed to 'note'. So far, ExcelJS only supports the old-style notes


Collapse not working

When the navbar is collapsed, you can touch the icon, but the menu is not expanded.
Navbar-toggler-icon is not working

Got it already fixed


Possible issue regarding the "Create database" API endpoint

I'm trying to make use of this API from LiferayUP, and after reading the API documentation for creating a database, it seems to me that it is lacking an important input parameter: the connector (short) name. In other words, I can tell CloudDB what to be the name of the new database, and for which user should it be created, but not in which database server to create them: MySQL 5.5, or 5.7, or the Oracle one?
I would need an API call to which I can tell which connector should be used for creating the database, same as on the UI we have a drop-down list for that. The input should be one of the values returned by the /api/list API call: currently mysql-55, mysql-56, mysql-57, oracle-12
Or am I missing, misundersanding something, @djavorszky ?

Can you link to the documentation or just share it with me? Maybe it's just a wording issue at one point or another - the "connector_identifier" is used to get the connector itself, which is saved with the shortname.
That said, we'll be refactoring the api endpoints - just shared a document with you. That's a proposal still, not yet implemented

Dani, it's in the Wiki/API Reference :)
Looking forward to correct instructions on how I should invoke the create-database API endpoint.

Hi Dani,
I have commented on the draft you sent. What I would need for the create-database API is not only to be able to provide the connector, but it should also return the portal-ext JDBC connection strings when successful (just like on the UI).
Do you think I can get such an API soon? I'd really like to make some progress with the LiferayUP integration.

As discussed on another venue, I'm closing this issue - create database api already exists (/api/create), portalext api will not be added, instead, I'll be adding the query-for-connector api on #143


Fix typo in specs

fix target type elvis:rock_this
change spec in elvis_utils:erlang_halt to no_return()

@NOMORECOFFEE Thanks for fixing those spec! Would it be possible for you to correct the @doc string for the elvis_utils:erlang_halt/0 function? It already had a few typos :disappointed: and we missed them. It would only involve adding a few letter :stuck_out_tongue: here, replacing this:

%% @doc This is defined so tht it an be mocked for tests.

For this:

%% @doc This is defined so that it can be mocked for tests.

Thanks!

@NOMORECOFFEE Thank you!


Send mail when a membership is approved/rejected

In cases where a user is waiting to be approved it would be nice to get a confirmation mail so they can attend events.

:+1:
Maybe also send email to the people having to confirm the memberships, if
they don't check the approval page daily?
On Thu, 28 Jul 2016, 10:56 Christian Duvholt<EMAIL_ADDRESS>wrote:

In cases where a user is waiting to be approved it would be nice to get a
confirmation mail so they can attend events.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dotKom/onlineweb4/issues/1609, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFK9627fyogr1DIi9VOBjZlWGs9RkuYKks5qaG7QgaJpZM4JW_5M
.


Minor fixes in the manual

Hi,
the title says it all.
Olivier

Hi, thanks for the fixes! However, I can only merge them if you have a signed Committer License Agreement at the Apache Software Foundation. You can submit one in e-mail; see here: http://www.apache.org/dev/new-committers-guide.html#cla

I've sent the signed agreement by email. It was much more work than my pull request, I had to rip some code from stackoverflow to compose the PDF document with the scans!
I'll keep you posted.

Apache has received your CLA, so I will be able to merge this now (and BTW now you can contribute to any other Apache projects as well). As of the PDF issues, you are supposed to print the thing as is, fill it by hand, scan the whole page, and save the resulting single big image into a PDF. So no special software is needed.

Thank you for the follow-up and the information.


WIP: Add SFA preprocessing

Currently using a3m. Failing at aip creation, not sure why. Bagit validation is commented out. Need to test if am will create aips. As far as I can tell the pre-processing step is done.

@scollazo For the deployment

bagit.py dependency no longer required.
The file bagit.txt has been deleted form the repo (no longer needed)
The file repackage_sip.py has been deleted form the repo (no longer needed)

Moved to #4, which is based on the main branch.


⚠ Cioos National CKAN has degraded performance

In f2998f0, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 7212 ms

Resolved: Cioos National CKAN performance has improved in ca3ca50 after 5 minutes.


add test cases

Add test cases for the functions used in the pipeline

added three test cases to validate the creation of sql lite file and downloading of sources from internet


Fix attribute rewiring

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/spark-streaming-df-test/16/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/spark-streaming-df-test/18/
Test FAILed.

Merged build finished. Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/spark-streaming-df-test/19/
Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/spark-streaming-df-test/20/
Test PASSed.

Merged build finished. Test PASSed.


Gentoo dependency typo

Hi, in your script you have a type for Gentoo:

dev-utils/dialog is wrong and must be changed to dev-util/dialog

Iade Gesso, PhD

@iadegesso Thank you for this information! :+1:


added support for negative height in header (top-down bmp)

this PR match with https://github.com/shaozilee/bmp-js/issues/14

@pablodgonzalez thanks,good job

closed #14 #15


perf(switch): Cache peerConfig to prevent allocating more memory.

Allocating a ton of memory for no reason.

#go-api-breaking

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments
[x] Title follows the Conventional Commits spec

@melekes fixed, I don't see why this change is breaking though, mistake on tagging?

	Accept(config *peerConfig) (Peer, error)

	// Dial connects to the Peer for the address.
	Dial(addr NetAddress, config *peerConfig) (Peer, error)

If I am not mistaken, this makes the PR Go API breaking.

panic: assignment to entry in nil map [recovered]
	panic: assignment to entry in nil map

goroutine 518 [running]:
testing.tRunner.func1.2({0x126f820, 0x15d0170})
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1631 +0x3f7
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1634 +0x6b6
panic({0x126f820?, 0x15d0170?})
	/opt/hostedtoolcache/go/1.22.5/x64/src/runtime/panic.go:770 +0x132
github.com/cometbft/cometbft/p2p.(*Switch).AddReactor(0xc0004b0360, {0x1380b23, 0x9}, {0x15e5218, 0xc0004a6070})
	/home/runner/work/cometbft/cometbft/p2p/switch.go:176 +0x27b
github.com/cometbft/cometbft/internal/blocksync.TestNoBlockResponse.func1(0x0, 0xc0004b0360)
	/home/runner/work/cometbft/cometbft/internal/blocksync/reactor_test.go:202 +0x89
github.com/cometbft/cometbft/p2p.MakeSwitch(0xc0002a65a0, 0x0, 0xc0007c3e90, {0x0, 0x0, 0x0})
	/home/runner/work/cometbft/cometbft/p2p/test_util.go:234 +0x984
github.com/cometbft/cometbft/p2p.MakeConnectedSwitches(0xc0002a65a0, 0x2, 0xc0007c3e90, 0x14a63d8)
	/home/runner/work/cometbft/cometbft/p2p/test_util.go:85 +0x95
github.com/cometbft/cometbft/internal/blocksync.TestNoBlockResponse(0xc000450820)
	/home/runner/work/cometbft/cometbft/internal/blocksync/reactor_test.go:201 +0x3cd
testing.tRunner(0xc000450820, 0x14a6250)
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1689 +0x21f
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1742 +0x826

--- FAIL: TestProvider (0.01s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x15e72d6]

goroutine 19 [running]:
testing.tRunner.func1.2({0x16db280, 0x238ec40})
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1631 +0x3f7
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1634 +0x6b6
panic({0x16db280?, 0x238ec40?})
	/opt/hostedtoolcache/go/1.22.5/x64/src/runtime/panic.go:770 +0x[132](https://github.com/cometbft/cometbft/actions/runs/10202184809/job/28225738348?pr=3602#step:5:133)
github.com/cometbft/cometbft/node.createSwitch.WithMetrics.func1(0xc0001590e0)
	/home/runner/work/cometbft/cometbft/p2p/switch.go:160 +0x56
github.com/cometbft/cometbft/p2p.NewSwitch(0xc0002e21e0, {0x1b26c28, 0xc000158fc0}, {0xc00005a760, 0x2, 0x20?})
	/home/runner/work/cometbft/cometbft/p2p/switch.go:[133](https://github.com/cometbft/cometbft/actions/runs/10202184809/job/28225738348?pr=3602#step:5:134) +0x7ba
github.com/cometbft/cometbft/node.createSwitch(0xc00046f2c0, {0x1b26c28, 0xc000158fc0}, 0xc000315360, {0x241b6c0, 0x0, 0x0}, {0x1b326e0, 0xc000123200}, {0x1b322b8, ...}, ...)
	/home/runner/work/cometbft/cometbft/node/setup.go:468 +0x1b1
github.com/cometbft/cometbft/node.NewNodeWithCliParams({0x1b26838, 0x241b6c0}, 0xc00046f2c0, {0x1b26a68, 0xc00012d400}, 0xc0001a3780, {0x1b26aa0, 0xc000127a70}, 0xc00005bb18, 0x1984988, ...)
	/home/runner/work/cometbft/cometbft/node/node.go:500 +0x25b5
github.com/cometbft/cometbft/node.NewNode(...)
	/home/runner/work/cometbft/cometbft/node/node.go:291
github.com/cometbft/cometbft/rpc/test.NewCometBFT({0x1b30070, 0xc0001a1e00}, 0xc0001a7b30)
	/home/runner/work/cometbft/cometbft/rpc/test/helpers.go:162 +0x60b
github.com/cometbft/cometbft/rpc/test.StartCometBFT({0x1b30070, 0xc0001a1e00}, {0xc00008fe80, 0x1, 0xc00008fc08?})
	/home/runner/work/cometbft/cometbft/rpc/test/helpers.go:114 +0x105
github.com/cometbft/cometbft/light/provider/http_test.TestProvider(0xc00045b1e0)
	/home/runner/work/cometbft/cometbft/light/provider/http/http_test.go:40 +0x311
testing.tRunner(0xc00045b1e0, 0x1983ed8)
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1689 +0x21f
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1742 +0x826
FAIL	github.com/cometbft/cometbft/light/provider/http	0.088s
ok  	github.com/cometbft/cometbft/light/store/db	1.103s	coverage: 70.4% of statements

The Transport interface is somehow odd because it is public but relies on a private peerConfig field. In fact, it is literally impossible to call the Transport methods outside the p2p package.

I would suggest opening an issue and we can take care of this fix.

@cason https://github.com/cometbft/cometbft/issues/3639

@cason fixed the tests as well, do you still want to merge this?

==================
WARNING: DATA RACE
Write at 0x00c0002ac[20](https://github.com/cometbft/cometbft/actions/runs/10271558401/job/28421813266?pr=3602#step:6:21)0 by goroutine 74:
  github.com/cometbft/cometbft/p2p.(*MultiplexTransport).Dial()
      /home/runner/work/cometbft/cometbft/p2p/transport.go:236 +0x395
  github.com/cometbft/cometbft/p2p.(*Switch).addOutboundPeerWithConfig()
      /home/runner/work/cometbft/cometbft/p2p/switch.go:727 +0x36e
  github.com/cometbft/cometbft/p2p.(*Switch).DialPeerWithAddress()
      /home/runner/work/cometbft/cometbft/p2p/switch.go:553 +0x1c6
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).dialPeer()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:547 +0x295
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).ensurePeers.func1()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:485 +0x49
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).ensurePeers.gowrap1()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:494 +0x41

Previous write at 0x00c0002ac200 by goroutine 54:
  github.com/cometbft/cometbft/p2p.(*MultiplexTransport).Accept()
      /home/runner/work/cometbft/cometbft/p2p/transport.go:203 +0x1bb
  github.com/cometbft/cometbft/p2p.(*Switch).acceptRoutine()
      /home/runner/work/cometbft/cometbft/p2p/switch.go:631 +0xa1
  github.com/cometbft/cometbft/p2p.(*Switch).OnStart.gowrap1()
      /home/runner/work/cometbft/cometbft/p2p/switch.go:244 +0x33

Goroutine 74 (running) created at:
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).ensurePeers()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:484 +0x824
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).ensurePeersRoutine()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:411 +0x251
  github.com/cometbft/cometbft/p2p/pex.(*Reactor).OnStart.gowrap2()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor.go:151 +0x33

Goroutine 54 (running) created at:
  github.com/cometbft/cometbft/p2p.(*Switch).OnStart()
      /home/runner/work/cometbft/cometbft/p2p/switch.go:244 +0x237
  github.com/cometbft/cometbft/libs/service.(*BaseService).Start()
      /home/runner/work/cometbft/cometbft/libs/service/service.go:146 +0x588
  github.com/cometbft/cometbft/p2p/pex.TestPEXReactorRunning()
      /home/runner/work/cometbft/cometbft/p2p/pex/pex_reactor_test.go:110 +0x44b
  testing.tRunner()
      /opt/hostedtoolcache/go/1.22.5/x64/src/testing/testing.go:1689 +0x[21](https://github.com/cometbft/cometbft/actions/runs/10271558401/job/28421813266?pr=3602#step:6:22)e
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.[22](https://github.com/cometbft/cometbft/actions/runs/10271558401/job/28421813266?pr=3602#step:6:23).5/x64/src/testing/testing.go:1742 +0x44
==================

So, my general view on this:

I am not convinced that producing a new instance of peerConfig per transport call is that bad in terms of memory. Of course, if dialing/accepting a peer succeeds we will allocate a connection with them, lots of allocations of course. The profile you provided does not convinced me that is the small peerConfig allocation that is producing this memory usage.
The number of failing tests indicates that we have some synchronization problems here. Maybe that is the original reason for creating a new peerConfig instance per connection attempt: to avoid race conditions, since calls to Dial and Accept are inherently concurrent.

So, I would proceed with this fix if I become convinced about 1. above. Then we can spend sometime to fix 2.


started copying over chapter 12 of mastering bitcoin

Hey, sorry for the late response but yeah I used the 2nd version which is found on github. https://github.com/bitcoinbook/bitcoinbook
Sorry about that. Good that I didn't spend too much time on it.

Closing PR for now as it is currently inactive and the project structure has since changed.
If we want to capture this work, please create an issue.


Patch segmenter of #51

Issues: #51

Provide test code:
// at engine_test.go:937
func TestSearchWithSetmenter(t *testing.T){
   // ...
}

Description
Provide support for self defined segmenter without breaking current implement.
...

Please clear No changes file, thanks.

@vcaesar Those file has a +x authority, that's not safe

Close because have a better solution.


K8s 1.16 release support for contiv-vpp.yaml

Based on the new K8s 1.16 release, the contiv-vpp.yaml contains changed apiVersions:
contiv-etcd; kind: StatefulSet-> from apiVersion: apps/v1beta2 to apiVersion: apps/v1
contiv-vswitch; kind: DaemonSet-> from apiVersion: extensions/v1beta1 to apiVersion: apps/v1
contiv-ksr; kind: DaemonSet-> from apiVersion: extensions/v1beta1 to apiVersion: apps/v1

added selector also -> selector: matchLabels: k8s-app: contiv-ksr
contiv-crd; kind: DaemonSet-> from apiVersion: extensions/v1beta1 to apiVersion: apps/v1
added selector also -> selector: matchLabels: k8s-app: contiv-crd

Coverage remained the same at 69.457% when pulling 52e78cce64f4460ca791c055b98613b76630e44e on jakubt4:supp-k8s-11_6 into 3a91f286572e61f1f09b9095af1293e69d9751ca on contiv:master.


Swiper spaceBetween dragging bug

Check that this is really a bug

[X] I confirm

Reproduction link
https://swiperjs.com/demos#responsive-breakpoints
Bug description
when dragging from the spaceBetween starting from a certain point it no longer swipes.
I found the reason of the problem.
The swiper-wrapper class has 100% width we just need to make it auto
Expected Behavior
No response
Actual Behavior
No response
Swiper version
11.1.0
Platform/Target and Browser Versions
Google chrome 123.0.6312.86
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

Your issue is closed because it is not filled correctly. Before you open an issue please review the contributing guideline.
Please fill the issue template correctly and:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with isssue

It will save a lot of time for other contributors to check your issue and fix it.


fix: add missing env variables, and move them into deployments

Thanks a lot! I will continue the work from here.


[BUG] System.UnauthorizedAccessException: Access to the path 'C:\Users\hhoa0.GBN\AppData\Local\Roblox\logs' is denied.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v1.1
What problem did you encounter?
I can't open my roblox with and without blox strap, please need help fixing.
Bloxstrap Log
2024-10-24T06:03:58Z [App::OnStartup] Starting Bloxstrap v2.8.0
2024-10-24T06:03:58Z [App::OnStartup] Compiled Wednesday, 16 October 2024 at 7:44:37 PM from commit 42ffec26cf2e080fe22210305a08fcb286aeb577 (tag/v2.8.0)
2024-10-24T06:03:58Z [App::OnStartup] Loaded from %UserProfile%\AppData\Local\Bloxstrap\Bloxstrap.exe
2024-10-24T06:03:58Z [App::OnStartup] Temp path is %UserProfile%\AppData\Local\Temp\Bloxstrap
2024-10-24T06:03:58Z [App::OnStartup] WindowsStartMenu path is D:\hhoa0\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
2024-10-24T06:03:58Z [LaunchSettings] Identifier 'player' is active with data
2024-10-24T06:03:58Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Bloxstrap\Logs\Bloxstrap_20241024T060358Z.log
2024-10-24T06:03:58Z [Logger::Initialize] Finished initializing!
2024-10-24T06:03:58Z [JsonManager<Settings>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Settings.json...
2024-10-24T06:03:58Z [JsonManager<Settings>::Load] Loaded successfully!
2024-10-24T06:03:58Z [JsonManager<State>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-10-24T06:03:58Z [JsonManager<State>::Load] Loaded successfully!
2024-10-24T06:03:58Z [FastFlagManager::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Modifications\ClientSettings\ClientAppSettings.json...
2024-10-24T06:03:58Z [FastFlagManager::Load] Loaded successfully!
2024-10-24T06:03:58Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper
2024-10-24T06:03:58Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper dialog
2024-10-24T06:03:58Z [Bootstrapper::Run] Running bootstrapper
2024-10-24T06:03:58Z [Bootstrapper::SetStatus] Connecting to Roblox...
2024-10-24T06:03:58Z [Deployment::TestConnection<https://setup.rbxcdn.com>] Connecting...
2024-10-24T06:03:58Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/versionStudio
2024-10-24T06:03:58Z [Deployment::InitializeConnectivity] Testing connectivity...
2024-10-24T06:04:00Z [Deployment::TestConnection<https://setup-ak.rbxcdn.com>] Connecting...
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup-ak.rbxcdn.com/versionStudio
2024-10-24T06:04:00Z [Deployment::TestConnection<https://setup-aws.rbxcdn.com>] Connecting...
2024-10-24T06:04:00Z [Deployment::TestConnection<https://roblox-setup.cachefly.net>] Connecting...
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessRequest] GET https://roblox-setup.cachefly.net/versionStudio
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup-aws.rbxcdn.com/versionStudio
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup-aws.rbxcdn.com/versionStudio
2024-10-24T06:04:00Z [Deployment::TestConnection<https://roblox-setup.cachefly.net>] Connectivity test cancelled.
2024-10-24T06:04:00Z [Deployment::InitializeConnectivity] Got https://setup-aws.rbxcdn.com as the optimal base URL
2024-10-24T06:04:00Z [Bootstrapper::Run] Connectivity check finished
2024-10-24T06:04:00Z [Deployment::TestConnection<https://setup-ak.rbxcdn.com>] Connectivity test cancelled.
2024-10-24T06:04:00Z [Deployment::TestConnection<https://setup.rbxcdn.com>] Connectivity test cancelled.
2024-10-24T06:04:00Z [Bootstrapper::CheckForUpdates] More than one Bloxstrap instance running, aborting update check
2024-10-24T06:04:00Z [Bootstrapper::GetLatestVersionInfo] Got channel as production
2024-10-24T06:04:00Z [Deployment::GetInfo] Getting deploy info for channel production
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-10-24T06:04:00Z [RegistryKeyEx::SetValueSafe] Writing '' to HKEY_CURRENT_USER\SOFTWARE\ROBLOX Corporation\Environments\RobloxPlayer\Channel\www.roblox.com
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup-aws.rbxcdn.com/version-4e3b062d6e584043-rbxPkgManifest.txt
2024-10-24T06:04:00Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup-aws.rbxcdn.com/version-4e3b062d6e584043-rbxPkgManifest.txt
2024-10-24T06:04:00Z [Bootstrapper::SetStatus] Applying Roblox modifications...
2024-10-24T06:04:00Z [Bootstrapper::ApplyModifications] Checking file mods...
2024-10-24T06:04:00Z [Bootstrapper::ApplyModifications] ClientSettings\ClientAppSettings.json already exists in the version folder, and is a match
2024-10-24T06:04:00Z [JsonManager<State>::Save] Saving to %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-10-24T06:04:00Z [JsonManager<State>::Save] Save complete!
2024-10-24T06:04:00Z [Bootstrapper::ApplyModifications] Finished checking file mods
2024-10-24T06:04:00Z [Bootstrapper::SetStatus] Starting {product}...
2024-10-24T06:04:00Z [LaunchHandler::LaunchRoblox] Bootstrapper task has finished
2024-10-24T06:04:00Z [LaunchHandler::LaunchRoblox] An exception occurred when running the bootstrapper
2024-10-24T06:04:00Z [App::FinalizeExceptionHandling] System.UnauthorizedAccessException: Access to the path '%UserProfile%\AppData\Local\Roblox\logs' is denied.
   at System.IO.FileSystem.CreateDirectory(String fullPath, Byte[] securityDescriptor)
   at System.IO.Directory.CreateDirectory(String path)
   at Bloxstrap.Bootstrapper.StartRoblox()
   at Bloxstrap.Bootstrapper.Run()
   at Bloxstrap.Bootstrapper.Run()

I just need my roblox to work again I didn't have issue with opening it this morning.

try reinstall it

Are you trying to install Roblox on your school computer?


IE < 11 error

I get the following error in IE 10
aldeed_schema-index.js, line 79 character 5

Line 79 is:
const propName = ss.version === 2 ? 'mergedSchema' : 'schema';

I guess this belongs here https://github.com/aldeed/meteor-schema-index/pull/10


Adding Deno Module to Convert JSON Data to CSV

Hi @michael-spengler, the module doesn't seem to work - it's missing an .env file (and tests 😬 )

Hey @ebebbington sorry I was too quick (and dirty :) )
... will redesign this soon - closing the pr for now.


ddimtirov - fixpoint, objects, manual framing and parsing

Please run with the Oracle JDK 21.
On my machine, CalculateAverage  takes 02:10 to run. HEre are the changes I've made so far and the corresponding times:

Iteration 1 (0:44): switching to fixed point integer arithmetic, simpler integer parsing, fewer allocations, parallel streams, and parallel GC
Iteration 2 (0:37): single-thereaded, manual framing in I/O using Reader and CharBuffer, processing (one pass, no allocation, no copying)
Iteration 3 (0:02.3): Same processing over mmapped parallel i/o
Iteration 4 (0:02.1): Switched from byte buffers to the MemorySegment preview API - thread confined and slightly faster; while at it also disabled GC

Rebased and ready for merge.
Rejected options:

Dynamic AppCDS - adds more overhead than benefit
Native Image - 50% slower

Nice! Taking the lead with 00:11:886 on the eval environment. Great to see usage of the new foreign memory API!

Hey @ddimtirov, just realizing that there may be an optimization at play here which isn't considered valid. See my comment above.

Hi @gunnarmorling - apologies, I had missed that clause.
Yes, the value is selected offline, so please take this off the leaderboard for now. I'll think of another data structure that can handle arbitrary names.
BTW, I see that the current leading submission has the same problem, and likely sime other too: https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_ebarlas.java#L30,
https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_ebarlas.java#L149-L155


<= 3s edit/refresh cycle on iOS simulator

If a developer makes a change to Dart code in their editor, it should take 3 seconds or less to see the effect of that change on their iOS simulator.
(assuming they already have their device connected, and configured.)

@chinmaygarde The current Atom experience is Cmd+R to send the new app.
I still think Hot Module Replacement is table stakes, but it would be good for Cmd+R to work in the mean time.

@chinmaygarde @devoncarew how are we looking here?

Just tried this, and edit/refresh was 11 seconds.

I timed this again right now. On my setup, flutter start  from the command line is about 6.4s and 8.5s from Atom. https://gist.github.com/chinmaygarde/4a502796d0b5a3eefe6c
By far, the most expensive step is the FLX packager. I am going to add another target to the engine that tries to pick up the assets from disk directly (on the simulator) and avoid the FLX altogether. Since we don't run the precompiler on the simulator, we can get rid of that entire build phase.

Thanks for checking!

With Feb 27 8:35am master branch, I'm seeing 7s from command line (flutter -d CBC62802-2CBE-4643-BD1A-AE017EBD04C8 -v run) to simulator, and 10-11s via Atom.
Looks like it takes many seconds for this step:
[1292 ms] - /usr/bin/env xcrun xcodebuild -target Runner -configuration Release -sdk iphonesimulator -arch x86_64
[6045 ms] - Build settings from command line:


Mobile - Add message when perform connect and sign transaction with Moonbeam on Polkadot vault

Describe the task
Block attach account Polkadot vault for network Moonbeam, Moonriver, Moonbase
(Polkadot vault does not support Moonbeam, Moonbase, Moonriver)
Actual: Still allow attach account but can not sign transactions cause Polkadot Vault do not support
Expect:

In case attach account: Show message: "Invalid QR code. EVM networks are not supported"
In case attached account: When perform any transaction then show warning message do not supported :  "This feature is not available for EVM QR signer account. Change to another account type and try again."

Refer: https://github.com/Koniverse/SubWallet-Extension/issues/3056

Version test: https://www.diawi.com/qrcode/link/8F7jqN
Device test: IP 11

[ ] Unable to scan account Polkadot vault for Substrate
Actual: Show message Unreadable QR code. Please scan another one

Expect: Attach account successfully

[ ] Update message in case scan account Polkadot vault Moonbeam
Actual: Show message:  Unreadable QR code. Please scan another one
Expect: Show message: "Invalid QR code. EVM networks are not supported"

Version test: https://www.diawi.com/qrcode/link/BHczxS
Devices test: IP 11

[ ] Error in case transfer NFT
Actual: Show confirmaion
Expect: Show toast

Validation passed in case

Attach account

Send token

Swap

Earning

Sign request with dApp

Dev mode: Allow attach and perform all actions

Production: Do not attach and not allow to perform any actions

Version test: https://www.diawi.com/qrcode/link/Nm9ZLM
Device test: IP 11

[ ] Error Unstake on evir production

Please re-check some screens:

Unstake
Claim Reward
Cancel Unstake
Withdraw

@ThaoNguyen998

Version test: https://i.diawi.com/bKhpVD
Device test: MI 8 Lite
Validation passed.

Attach account
Transfer
Send NFT
Earning: Stake, Stake more, Unstake, Cancel unstake, Withdraw(Follow)
Re-check with dev mode/ product