[FLINK-5865][state] Throw original exception in the states

The wrapping of RuntimeException is removed so that we can avoid redundant stack printed in the log.

I think it is a good idea to avoid exception wrapping where ever possible, so +1 to that.
I was wondering if we can improve exception handling even further for the state abstraction, especially getting rid of the throws Exception in all the methods on the state interfaces (like ValueState.get()).
Can we find some more "specific" exceptions for the signature, like throws IOException or throws StateAccessException. That would mean that some exceptions would have to be wrapped, though.
I think Java would support exception "downgrading", meaning going to more specific exceptions, without breaking the API.
What do you think?

I like the idea of find some more "specific" exceptions. Flink can define some specific Exceptions like StateAccessException. That may help better understand the code.
I am also thinking that it's better not to put any exception in the signature of user-facing interfaces like State. All exceptions thrown by these methods are RuntimeException which are caught and handled by Flink. It's because these methods provided by Flink are supposed to work properly and do not throw any exception. Actually, users can do few things even if they can catch the exceptions.

I think we may borrow some ideas from Java. For example, the methods in Map do not throw any exception in their signatures. But the interfaces define a set of specific RuntimeException that can be thrown by the implementation such as ClassCastException. Maybe we can do similarly.
What do you think? @StephanEwen

I think you are right about the argument that we do not expect users to "handle" the exceptions in any way, so they may as well be unchecked exceptions.
Should we then throw FlinkRuntimeException or define a specific StateException extends FlinkRuntimeException that we throw there?

I prefer to throw more detailed exceptions e.g. IncompatibleTypeSerializerException, StateAccessException and StateNotFoundException. They all are extended from FlinkRuntimeException.  Users can get more information from these exceptions if they catch the exceptions.

Very good idea, +1

@shixiaogang Are you still interested in contributing this? The code moved on quite a bit by now.

Sorry for the forgetten PR. Now that the code changes a lot and the improvement is not urgent, i prefer to close the PR.


Show foldnode when prefetching

Fixes an issue where the foldnode was not shown for children with depth

autoexpand depth, when prefetch was enabled. Fixed by expanding and
collapsing all children when prefetching.

Great, this issues was bothering me for some time.
Though the fix looks dirty. Is there a better way of doing this? Will de side effect causes everything to be loaded

Yeah it is kinda dirty. Though I did not find any side-effects so far.
With prefetch enabled, the entire tree will be loaded (which is what it is supposed to do, I'd say), but all nodes of depth greater then autoexpand depth are collapsed again (not that much overhead). If you disable prefetch, the tree is loaded upto the autoexpand depth.
Another approach I tried was inspecting the RenderNode.setCollapsed and RenderEdge.setCollapsed functions and using pieces of those that are relevant. But that led me to soo many more lines of code that this actually seemed the more elegant approach.


Remove "forgot password" functionality  from the code

Related task: https://github.com/BeamMW/ios-wallet/issues/77
Sasha decided to remove this functionality from the design

checked


Scriptorium new command fails when making a new paper

Scriptorium fails when creating a new paper. I tried with both the ieeetran template and the report template. Traceback is below.
Traceback (most recent call last):
File "/usr/local/bin/scriptorium", line 9, in
load_entry_point('scriptorium==2.0.0', 'console_scripts', 'scriptorium')()
File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scriptorium-2.0.0-py2.7.egg/scriptorium/main.py", line 78, in main
args.func(args)
File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scriptorium-2.0.0-py2.7.egg/scriptorium/main.py", line 43, in create
if not scriptorium.create(args.output, args.template, force=args.force, config=args.config):
File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scriptorium-2.0.0-py2.7.egg/scriptorium/papers.py", line 117, in create
shutil.copyfile(giname, os.path.join(paper_dir))
File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 21] Is a directory: 'test'

Update and try again, I think this is fixed

Paper was created with a folder containing a .mmd file.


Update tox and cryptography.

I've added RequiresIO badges (https://github.com/audreyr/cookiecutter-pypackage/pull/161) but the badge on the README is red because these dependencies are out of date. This should get us to green.

Great, thanks @1337807!


main: update go.mod deps

Ran go get -u -m followed by go mod tidy
Hopefully it might fix #92

This PR does not prevent the error observed in #92, however we should still probably update our depdendencies

Discussed with dnldd - updating deps will be done as part of the release process. Closing this one.


Add the PVRL method

PVRL stands for partner value by reinforcment learning.

How different is it from the DVRL approach ?

The DVRL approach assigns a value to each data, whereas the PVRL approach assigns a value to the dataset of each partner.

also there is no need to compute gradients with tensorflow in the PVRL approach which makes it much easier to implement

Followed-up in PR #241


Generated message members should be reördered to best expose what users are interested in

Folks who use generated protos are likely going to want to open those up to see what properties are available (specifically, how the fields in their messages map to properties in Swift).
The code generator should put the stuff of highest user interest at the top—properties, which have simple enough implementations that they don't really get in the way, and then nested types—and put all the generated implementation details further down, out of the user's way.
Another interesting idea would be to move the generated implementation details into an extension deeper in the file, bubbling as much of the "interface" of the generated messages to the top as possible. Some things can't be done this way (specifically, stored properties cannot be put in extensions), but we could do a fairly good job of segregating what users care about from the things only the runtime needs to know.

Great point:  Readability counts, even for generated code.

Ok, formatting question, give:
message Msg {
  int32 field1 = 1;
  message SubMsg {
    string name = 1;
  }
  SubMsg field2 = 2;
  enum SubEnum {
    NONE = 0;
    FOO = 1;
  }
  SubEnum field3 = 3;
}

How do we want the generated code to look?
A
struct Msg {
  enum SubEnum {
    case NONE
    case FOO
  }
  struct SubMsg {
    var name: String
  }
  var field1: Int32
  var field2: SubMsg
  var field3: SubEnum
}

B
struct Msg {
  var field1: Int32
  var field2: SubMsg
  var field3: SubEnum
  enum SubEnum {
    case NONE
    case FOO
  }
  struct SubMsg {
    var name: String
  }
}

C
struct Msg {
  var field1: Int32
  var field2: SubMsg
  var field3: SubEnum
}

extension Msg {
  enum SubEnum {
    case NONE
    case FOO
  }
  struct SubMsg {
    var name: String
  }
}

Or something else?
@tbkka @allevato

My thoughts (with no obvious winner):

My preferred personal style in general is to put nested types at the top of their parent's scope, before any properties/initializers/methods. However, for the proto case where the code isn't being written by the user, I can see the value of pushing them to the bottom so that the first thing the user sees after the struct header is the meat of that type.

The extension approach has the benefit of letting us push deeply nested things to the left, because we can do this:

extension Msg.SubMsg.SubSubMsg {
  struct SubSubSubMsg {
  }
  enum SubSubSubEnum {
  }
}

But, it might not be obvious to users that there's more stuff outside the primary body of the class.
We also need to make sure that we use private vs fileprivate correctly if we switched to extensions, because the proposal to get rid of scoped private and revert fileprivate to private was just rejected (grumble), so moving things into an extension means that private no longer spans extensions. (I don't think that's a concern here, though, because the messages and enums are public/internal anyway.)

Oh, and when there are fields in a oneof, where should the enum we generate for the oneof go?

Considering that oneofs are inextricably linked to the fields in the message that they represent, I think those at least should clearly go in the message, not in an extension (if we end up even going down that path). It feels like those should go at the bottom—they're more a detail than a "type".

re oneof, the only part i'm torn on is how much do we hope developers use that accessor instead of the direct fields.  i.e. - do we want to do anything to encourage that usage?

I don't think we want to actively discourage direct use of the oneof enum, since it is a key feature:

People need to switch on that enum to rapidly determine which of (possibly many) fields are set.

Direct access to the oneof enum is required to use the following proto3 idiom, which allows people to track field presence in proto3 messages:

    oneof optionalFoo {
      int32 foo = 17;
    }

I think @thomasvl's recent work has addressed the bulk of this.  Any reason to leave this open?

There's an open question to you and Tony (Apr 6th) about some last ordering.  Tony made some comments, but hasn't really cast a vote/opinion.
That's likely the last thing I'd like to really nail down until something specific comes up.

I haven't really weighed in because I don't have a very strong opinion on this.  But since you asked...
For code I write by hand, I tend to prefer your option A with the types at the top, but I think in this case, I have a mild preference for B.  Option B seems to more clearly express the structure of this type.   I'm less in favor of your option C since the nested structs and enums are typically required as types for the fields.  I think of Swift extensions as tools for specifying independent features (I think it makes a lot of sense for the JSON/text naming data, for instance, or for proto extensions).

I think I'm essentially in agreement, for the same reasons. In my own code I would put nested types at the top, but I think for protos, it feels better to have the fields front-and-center.
There's also option D: generate fields and nested messages in the same order they occur in the .proto file, without grouping/resorting them in any other way. 😨

Re: D - The descriptor objects don't actually really capture that. It might be findable via the google.protobuf.SourceCodeInfo.Location info since that has file line/column references; but protoc might leave them off if there was no comments to capture.  So yea, I'm not gonna be trying to use that…  😝
Ok, sounds like we're all sorta in the same state; and that's what we currently generate.  👍
I keep debating if isInitialized should move to the extension since it is a type specific override and we provide a default.
Likewise, decodeMessage and traverse could move to the Extension just to shorten what folks read, but they really are required for conformance to Message, so keeping them up top when declaring the struct seems correct.
So…
Closing this out until we get feedback suggesting changes.


[Snyk] Upgrade snyk from 1.455.0 to 1.458.0

Snyk has created this PR to upgrade snyk from 1.455.0 to 1.458.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released 22 days ago, on 2021-02-19.

Release notes

Package name: snyk

1.458.0 - 2021-02-19

1.457.0 - 2021-02-18

1.456.0 - 2021-02-17

1.455.0 - 2021-02-15

    from snyk GitHub release notes

Commit messages

Package name: snyk

23a8655 Merge pull request #1645 from snyk/feat/docker-auth
da53738 feat: Don't open browser auth if inside container
eae7385 Merge pull request #1650 from snyk/chore/remove-dev-package-publish
b91a33f chore: remove dev-release package publishing
c508c1f Merge pull request #1647 from snyk/feat/init-script
859f71d feat: add init-script argument to CLI for gradle
787308d Merge pull request #1627 from snyk/chore/update-critical-sev-colour
a52dcae Merge pull request #1619 from snyk/chore/enhance-ci-job-parallelism
42e421c chore: additional formatting cleanup
96f619e chore: export function to map severity to color
ea94dea chore: unified place for severity-to-color mapping
cc8730e feat: adds support for critical severity
edf422e Merge pull request #1566 from snyk/orfattal-cla-update
fbf8d7d chore: rebase after Node 8 deprecation and update remote docker settings
7829fdc chore: replace `unix` with `linux`
6520555 chore: run tests suites in parallel
296d73e chore: CLA update

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

updated manually


HHH-10747 - Changes in the EnhancedSetterImpl

Also fixes HHH-11624, where the test comes from.
This changes the EnhancedSetterImpl to use the field directly (with some post actions), instead of the enhanced setter method (that was never designed for this purpose).

@barreiro, I've add a copy of your test case and changed it to use property access. [1]
Using property access, the test fails due to org.hibernate.LazyInitializationException. It should pass, shouldn't it?
[1] https://github.com/gbadner/hibernate-core/tree/HHH-10747

Merged.


Minimum docker-compose version and ability to change port numbers

Would there be problems with upgrading the docker-compose required version to 1.12.0+? This would allow the use of the 2.1 docker-compose format, that would allow to use environment variables with default values for the port numbers https://docs.docker.com/compose/compose-file/compose-file-v2/#variable-substitution
I understand that the same could be achieved from setup.sh, but I think that changing it from the different docker-compose files would make the defaults obvious while allowing a more flexible deployment

Sure thing! Care for a PR?

^^


Laravel's cookie encryption vulerability affects all versions since 4.1.0

Since I submitted the recent Laravel advisories:
My understanding was to not include end-of-life versions (https://laravel.com/docs/7.x/releases#support-policy) in these advisories, since it does not make sense to use an unsupported version if you care about security.
But there are probably users out there that run an unsupported Laravel version and still expect to be warned about security issues.
That's a call @fabpot has to make.

It would be exceptional not to document all affected versions. Every other vulnerability in this package documents all vulnerable versions, including the laravel ones. Missing versions should be treated as a bug.

Take for example, the last cookie vuln in laravel: https://github.com/FriendsOfPHP/security-advisories/blob/master/laravel/framework/2018-08-08-1.yaml.

Laravel 4 was already dead for a long time, even in 2018, but was still documented.

Also, if we don't tell users there are vulnerabilities, then how will they know to upgrade. One of the purposes of this security database is to help users running older software know when they need to patch something, or even to encourage them to upgrade to a supported version. ;)


Minute customization

Is there any way to set minute section like this:
00
15
30
45

you can use
.setTimeInterval(15)


unsigned: false not being applied on @PrimaryKey

Describe the bug
Report related to the Schema Generator
In my case, there were several projects created before using MikroORM, and the primary keys in the mysql databases of these existing projects have the autoincrement bigint attribute.
I decided to switch to MikroORM and used the Entity Generator to import the schema from the existing database and generate entity code.
Then, it is generated as @PrimaryKey({ unsigned: false }) like this.
@Entity()
export class Member {
  [PrimaryKeyProp]?: 'memberId';

  @PrimaryKey({ unsigned: false })
  memberId!: bigint;

  ...
}

Upon reviewing the generated entities, they were created without any issues.
In other words, the entity generation worked perfectly fine.
And now I have used the Schema Generator to create the DDL.
(orm.schema.getCreateSchemaSQL() or schema:create --dump or schema:update --dump)
The generated DDL always returns unsigned, regardless of the unsigned property.
And number(int) type pk has same issue.
-- if memberId type is bigint and { unsigned: false }
create table `member` (`member_id` bigint unsigned not null auto_increment primary key) -- unexpected unsigned property

-- if memberId type is number and { unsigned: false }
create table `member` (`member_id` int unsigned not null auto_increment primary key) -- unexpected unsigned property

I checked the source code and found that it was designed to always output DDL strings with unsigned included, by distinguishing between increments and bigincrements types.
I modified it to pass the unsigned attribute to check whether it should be unsigned and generate the type accordingly, and it works well.
(In this case, I found that additional modifications are needed for case where the autoincrement attribute is missing in generated schema update DDL.)
I think that, except for special cases, there are people who would like to use the bigint type in databases.
This is probably due to the value types of other programming languages.
Therefore, I believe it would be better to make the unsigned option optional rather than mandatory.
If this is accepted as an issue, I would like to create a PR for it. :)
Reproduction
https://github.com/lsh4711/reproduction
What driver are you using?
@mikro-orm/mysql
MikroORM version
6.3.10
Node.js version
20.17.0
Operating system
Windows11
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord.
[X] The provided reproduction is a minimal reproducible example of the bug.

PR welcome, it's weird this is not working correctly, we have several tests for this too (and I can't see how they are different from the failing one you provided).


Godot startup and playing scene takes ~65 seconds

Godot version: 3.2.2

OS/device including version: Dell Inspiron 1564, Windows 7,  ATI Mobility Radeon HD 4330, Intel Core i3 CPU M330 2.13GHz, 4GB memory, GLES2 backend(GLES3 not supported by videocard)

Issue description: Creating new project in Godot or playing a scene requires ~65 seconds before launching, memory usage changes in slow peaks from 50 000 KB to 300 000 KB with constant CPU usage of 24-25% for new Godot process(the scene) and ~140 000KB 1% for main one(the editor).

Steps to reproduce:?
Minimal reproduction project: Any, for example label "Hello World" from Godot Tutorial

This is a very old graphics card, which is known to have issues even when using the GLES2 renderer. At this point, I'd recommend getting a newer PC.

Did you try to use Linux?
Older AMD and Intel graphics cards seems to work better on Linux with Mesa than on Windows with very old graphics drivers.
You can try it without installing entire OS

Indeed, the specs are too low for using Godot efficiently.
You may gain some performance by removing the default_env.tres environment from your project though, as the ProceduralSky it contains is known to be performance heavy and a deal-breaker for the very low end hardware.


CSS change in repo names to fit 1024px screen

69 flmmartins

@flmmartins , it's still breaking:


chore: remove exporter api from ETCD cmpd

fix: https://github.com/apecloud/kubeblocks-addons/issues/1292
exporter sets containerName to 'ETCD', and the container named 'ETCD' will be skipped when creating cluster with 'disableExporter=true'

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (6826a1f) to head (1b9d0ab).

Additional details and impacted files
@@          Coverage Diff          @@
##            main   #1294   +/-   ##
=====================================
  Coverage   0.00%   0.00%
=====================================
  Files         69      69
  Lines       6682    6682
=====================================
  Misses      6682    6682

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

/cherry-pick release-1.0-beta


bsp layers: update available image names

qtauto does not yet work with rpi, that's why that image isn't listed in
the conf-notes yet.
Signed-off-by: Tobias Olausson<EMAIL_ADDRESS>

@DunderRoffe I'm open for better suggestions.

So maybe call the bbclass "pelux-qtauto" since the "core-image" part is not really relevant in a bbclass setting anyway

Well, core-image is a bbclass, and the idea is to inherit the bbclass for making one's own images based on QtAS, so naming has to be good. Could we call the image core-image-pelux-neptune perhaps? Neptune implies QtAS anyway.


Interns/verification reporting

Looks like we could greatly simplify this code if SpecVerifier took in HardwareInfo (its only like 5 values? cpuCores, mainMemory, diskMemory, ips, fastDisk (bool)). Whatever calls this (Chef|node-admin) already has those values anyway?

I do not understand what that would simplify. Could you explain what part it will simplify?

Most of the stuff under verification/spec/noderepo. So instead of taking in list of config servers, (or a after this PR, a single config server URL) to make a request against node-repo to get the hardware spec, the hardware spec could be passed in as arguments
java -cp /path/to/maintainer.jar com.class.name.spec.SpecVerifier --cpucores 3 --memorygb 16 --diskgb 250 --ips <IP_ADDRESS>,1234:5678:9abc::1234,::1 --fastdisk These args can make the HardwareInfo instance and from there everything is the same.
This has the advantage that we wont need to duplicate code to create another node-repo client, and the existing clients already implement things like retries

(Just leaving this here as a general note for possible future improvement, not specifically related to this PR)

Let me know when it is ready for review. If the git history/changes looks strange, I suggest resetting and rewriting the history as we talked about on the last PR.

LGTM


[Fix #10374] Fix a false positive for Layout/LineLength when long URIs in yardoc comments to have titles

Fixes https://github.com/rubocop/rubocop/issues/10374
This PR fixes a false positive for Layout/LineLength when when long URIs in yardoc comments to have titles.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Looks good. Thanks!


Option to omit adding hash link to URL

Concerning: #3
On small one pager websites it might be better not to add the fragment identifier to the URL. People often first explore the page (using those jump links) and decide after a while to bookmark it. Coming back later on, they probably don't expect to jump to "#foo" right where they left the page. I think skrollr-menu should at least offer this option!
(Great work – btw!)

thanks


Recommend Python 3.6 on Windows install

Currently, install recommends Python 3.5.
https://docs.microsoft.com/en-us/cli/azure/install-azure-cli#windows
Would suggest Python 3.6 as 3.6 has a fix for the MAX_PATH limitation on Windows.
https://docs.python.org/3/using/windows.html#removing-the-max-path-limitation

I'm going to remove the version recommendation since we're really just repeating what the Python download page recommends.


Allow specification of an output path other than current working directory.

Currently, this tool just spits out your file in your current working directory which is nice and all but rather limiting. It would be useful for those of us using this tool to batch-convert multiple files, to be able to specify a relative or absolute path in which to place the transcoded file. Perhaps some kind of --output-path option?

@hjk321 Thank you for using my tools!
This feature request has been made several times. The first in:
https://github.com/donmelton/other_video_transcoding/issues/9
And I think the most recent in:
https://github.com/donmelton/other_video_transcoding/issues/100
I'll repeat here what I said the last time:

This behavior is intentional and by design. And I have no plans to change that. You can already decide where your output will go simply by using the cd command to change the current working directory before you invoke other-transcode. So it's not a limitation either.

Did you have any other questions?

Fair enough.


How to use only Import Command separate?

I need only the Import command, without the rest of the functionality of gjs-preset-webpage. But I can not do that. How to make? Because I'm using gjs-blocks-basic modified as needed

if you are using in a node environment use import openImport from 'grapesjs/src/commands/openImport'; and add to your editor.commands: {} object
otherwise I suggest you look at src/commands/openImport.js and create your own import to suit then add to editor.commands: {} without this plugin


Unclear how to Enable vault immutability through azure cli

Type of issue
Missing information
Feedback

Page URL
https://learn.microsoft.com/en-us/cli/azure/backup/vault?view=azure-cli-latest
Content source URL
https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/latest/docs-ref-autogen/backup/vault.yml
Author
@dbradish-microsoft
Document Id
f5d969a6-e8ef-90eb-5679-b6734612be76

@V4A001
Thanks for your feedback! We will investigate and update as appropriate.

Hello, @V4A001. The --immutability-state parameter accepts three options:

Disabled
Locked
Unlocked

This covers the Enable vault immutability checkbox, and the "lock immutability" on/off switch.
For more examples of az backup vault, see Azure CLI article list A to Z and use CTRL + F to jump quickly to the az backup vault article list.

I found out that after creation it is locked. But by first unlock it and then enable it again that sets all flats.
Can be closed or shall I provide scripts for reference to others?


🗄🔧 QEWD Implementation

I've created an implementation of the Conduit REST back-end using the Node.js/Redis-based QEWD platform.  See https://github.com/robtweed/qewd-conduit
QEWD logo is here: https://s3.amazonaws.com/mgateway/qewd/qewd_logo5.png
I'd love you to add this to your list of implementations.
Rob Tweed

Awesome work!! Here's a logo I made that you can use:

Just added the RFC tag, so lets if we can get some folks in here to help review the code!

Updated the repo with the logo!

Also added a Guided Tour to the repo's ReadMe which I hope will be helpful.
Will you add this QEWD implementation to your list on the main site?

I tried testing your api which is live at http://<IP_ADDRESS>:8080/api, but it doesn't have cors enabled. I'll run a test using postman and give u feedback. If everything looks fine then @EricSimons can setup the project on here and add you to it. Cheers :+1:

Ah OK - can you try again and see if it's now sending the correct CORS response headers?

Yes, it works now. But you haven't added the authorization header to the allowed headers. So authenticated endpoints are failing. You also have some unwanted headers in the allowed list, some of which are allowed by default. You can add these and it should work fine.
'Content-Type', 'X-Requested-With', 'Authorization'
First test on register endpoint shows that there is no validation logic for the inputs. Is it the same for all the forms?

Thanks Sandeesh - can you try that now?

Sandeep
The register validation I've implemented is:

username, email and password must exist in the request and none can be an empty string
the username cannot already exist
the email cannot already exist

That's the only validation I could determine was needed from the spec, unless there's some more detail that I haven't seen?

@robtweed I appreciate all your effort. But you need to do a local test first. The user profile page doesn't work since you've added logic so that a user can't view his own profile. Then there is the input validation issue. I would suggest you clone one of our frontend repo and run it locally to test it. This will help you find and fix issues faster.
Also the authorization header is allowed now :+1:

The api spec is lacking in lacking in explanation. We'll update it soon with a complete new detailed spec. The validation that i'm talking about is the check for valid email, valid characters in username, length of inputs etc

if you can give me the username valid characters and field lengths I can easily add them.  I assume the valid email check is that it conforms to the expected pattern, not that it is actually live and valid

user should be able to view own profile now

This isn't finalised but i pulled a rough validation logic. You can go ahead with this for now and it should work fine with any of the frontend.
Register
username 	- required, max length:50, alpha numeric only, unique in db
email 		- required, valid email format, max length:255, unique in db
password 	- required, min length:6

Login
email 		- required, valid email format, max length:255
password 	- required, min length:6

Update profile
username 	- required, max length:50, alpha numeric only, unique in db other than itself
email 		- required, valid email format, max length:255, unique in db other than itself
password 	- required, min length:6
bio 		- required, can be empty, max length:255
image 		- required, can be empty, valid url format

Create article
title 		- required, string, max length:255
description 	- required, string, max length:255
body 		- required, string
tagList 	- optional, array format

Update article
title 		- optional, string, max length:255
description 	- optional, string, max length:255
body 		- optional, string

Add comment
body 		- required, string

FYI the favorited by user endpoint returns all articles. You might want to check that.

Not sure what you mean - according to the activity log, the request you sent: POST /api/articles/ripple/favorite returned the Article that had been favorited - which is as per the API spec

Ah sorry - you're referring to /api/articles?favorited=adadsad&limit=10&offset=0
I'll fix that

Sandeesh - many thanks for the info.  I think I have those fixes in place now

No problem. I'm a bit busy at the moment. If possible setup a local frontend and do a thorough test using with api. Give us a confirmation once you're done. I'll double check once on my end and then we can plan on moving the repo after all tests have passed. Good job :+1:

I'll do that tomorrow, Sandeesh - run out of time here myself now :-)
Thanks again for the help today, and I'll ping you tomorrow when I've checked it all through
Rob

Sounds good. Looking forward to it.

Hi Sandeesh - is the conduit.productionready.io backend down?  Can't get the demo app working to compare with how mine responds

Just checked and it seems to be down. @EricSimons can you check the api server.

Think I've found an error in the React/Redux front end - if you start from a position of a clean slate where there are no articles, and you try to enter a first article and generate an error response at the back-end (eg if there's no title or description), the front end logs the error, but then tries to display articles and fails because slug isn't defined - at which point the front end is in a frozen state.  Restart, enter a proper article without error and it completes OK and displays the new article

Nope I can't get the front end to properly behave when articles are updated and an error is returned - eg
common.js:23 Uncaught (in promise) TypeError: Cannot read property 'slug' of undefined
at exports.default (common.js:23)
at combination (combineReducers.js:132)
at dispatch (createStore.js:179)
at index.js:104
at middleware.js:55
at middleware.js:41
at Object.dispatch (applyMiddleware.js:45)
at middleware.js:34
Don't know why the front end is complaining about the slug property?

I'm pretty sure the demo system copes with this OK - once it's back I'll see if I can find the difference(s) - very odd as the back-end seems to be doing what it should up to this point

@robtweed good find, can you post an issue over at https://github.com/gothinkster/react-redux-realworld-example-app/issues
The react and angular frontend's have few pending issues that are being worked on. We can have someone create a PR for this over at the repo. In scenarios like these you can stick to postman test to verify the api integrity. Since we want an error free api to be consumed, while the frontend gets fixed simultaneously.
PS : I don't maintain the frontend repo's but i did encounter issues myself. Reporting those would be the best solution so that the maintainers/community can create a fix.

Another question, Sandeep, if I may: if the back-end session expires, do you know what the expected response should be to /api/user?  Currently I return a 403 response with the payload
{"error":"Invalid token or session expired"}
According to the console, the UI registers this but continues anyway to try set itself up, and eventually gets into a frozen state.  If 403 is the correct response, then I guess another UI bug to report :-)

BTW in QEWD, the back-end session and JWT token expiry are linked, so this equates to the back-end confirming that the received JWT has expired

The current api spec lacks information with regard to JWT generation, authentication, validation. The three main backend here generate JWT with 60 days expiration which is not advised. JWT's are supposed to be short lived and refreshed. I've implemented the same in the laravel backend for now to keep things in sync with the main backend repo. I'm planning to re do the api spec from scratch which will include the JWT part that i mentioned. So i'd recommend that for now you increase the life of the tokens and handle the errors with 401 and 403. You're free to make suggestions regarding changes to the api spec. I'll create a new issue later today for the discussion on updating the spec.

OK understood, Sandeep - makes sense.  I was keeping my JWTs down to 10 minutes, but I'll push that up to 60 days as you suggest and avoid the UI issues for now. I'll be interested to see your updated JWT spec.  I've copied the structure (Id and username) used in the demo.  BTW I assume that you'll be allowing use of reserved claims such as jti which QEWD currently uses for back-end identification?

It's Sandeesh btw :)
Absolutely. None of the reserved claims will be touched as per the RFC. In fact the current frontend's don't even make use of any claims to verify the user. The api endpoint to fetch the current user using the token is being used for that purpose. Therefore as long as the server validates the token, the frontend doesn't care about any of it's claims. Imo the current implementation of JWT as the given spec is far from standard.

Apologies Sandeesh! Not enough coffee yet and too quick to click the submit button!  :-)

Ok Sandeesh, I and a colleague have given it a pretty thorough testing and the QEWD back-end seems to be holding up well now against the UI.  The one issue I see is that weird issue with the UI stalling when there are errors in creating and updating articles.  I'm pretty sure the back-end behaviour is correct.  However, until the demo system is back I can't really find out any more on that one, but provided you avoid forcing article errors, perhaps you could give it a once-over and see what you think?
BTW my colleague, Tony Shannon, has logged a UI issue for behaviour he's not sure is intended - something he found during testing

BTW, my local UI instance can be accessed at http://<IP_ADDRESS>:3000

qewd-conduit back-end working on a Raspberry Pi here at my house: http://www.mgateway.com:3000/api

@robtweed that's awesome :+1: I've been quite busy today. I'll have a go at your api with the angular frontend setup i have on local and give you my side of the pass. We can then have @EricSimons move the repo over here and get it finalised. Great job!

Thanks Sandeesh! :-)

Tried the demo system now that it's back up and running, but it doesn't exhibit the same behaviour as I see with my local version.  Anyway I've logged an issue - I can't see any difference in the sequence or content of responses when you submit an article with a blank body, so I suspect there's a difference between the versions of the UI used in the demo and what's on Github.

@EricSimons While awaiting Sandeesh's testing, could you add QEWD to the Work In Progress list of backends on the main realworld page?

@robtweed I tested your api which is live at http://<IP_ADDRESS>:8080/api, i hope this is updated. Everything works perfect except for 2 small hiccups.
The comment form on first submit after page load with no body sets the field to null and not an empty string. I guess your validation is failing for some reason and an empty comment actually gets parsed and saved. Subsequent request to add gets validated correctly.
The comments can't be deleted. Once the delete request just responded with status code 200 with "errors is not defined" in response. Now i tried the same again and it's giving me a 403 error with "not owned by author" message.
Another thing i wanna mention, when i first signed up i was already following user "tonyshannon" for some reason. But on next 2 registration it worked fine with a clean user feed. I assume this might be due to some test follow data in the db which wasn't removed.

Hi Sandeesh
Yes I noticed the Comment error came up and fixed the logic mid-testing :-)
The logic I'm using says that only the author of a comment can delete it.  Is that correct?  Or can the article author also delete it?
Regarding the following tonyshannon - that was when you first registered your new username, right?  I'll see if I can figure out why that might have happened - seems a bit odd
Thanks!  What's the next step?

Only the owner/author can delete their own comment. But i'm getting the error when trying to delete mine.
Regarding the following issue, yes it happened only on the first sign up.
You're the author of QWED, i don't think we can ask for a better review than your own :) Once all the tests have passed we can clone/move the repo here and add it to the list :+1:

Could you try deleting that comment again, logged in as its author? I think I found the problem

Same error

Hmm - still doesn't look like its working....let me put some trace code in....one sec

Duuuh!

Btw join i just created a Gitter room https://gitter.im/realworld-dev/qewd, we can continue our discussion there. It'll be much easier to test.

Ok that concludes my testing. :+1: from me

OK I've committed the latest changes that were needed to fix the last bugs to https://github.com/robtweed/qewd-conduit

Just created official repo and added @robtweed to it! You're also now listed on the readme :)


"No matching index found" error when attempting to open a dataset with Google App Engine hosted cirrocumulus

After following the instructions on how to set up a cirrocumulus server on Google App Engine, I am not able to open datasets after adding them via URL. The frequent error message I get is google.api_core.exceptions.FailedPrecondition: 400 no matching index found. Is there some configuration (adding an index) to the gcloud app that must be done? Or is there some other issue? Thanks!

Dataset URLs need to be gs URLs and not http URLs.


BootDevice has to be defined as VHD for a disk to be provisioned

If -NewVHDPath parameter is specified when using the New-VM Cmdlet and -BootDevice is set to CD or NetworkAdapter no disk is provisioned.
Using -BootDevice CD halts and errors out, -BootDevice NetworkAdapter creates the Virtual Machine but no disk is created or attached.
I would think that most cases of provisioning a VM that a disk would be required no matter which primary boot device is specified.
I know that the VM could be provisioned with whichever boot method and amended after the fact but this requires more lines of code which is superfluous.

also, if -BootDevice is set to CD is defined, the network controller is added as the boot device as there is no option to define a path to a CD/DVDDrive in New-VM Cmdlet

@AlBrough Hello Al,
Thank you for your feedback.
I was not able to reproduce your issue. Could you share the OS version and PowerShell version that you are using?
Furthermore, the exact commands will be useful as well.
For me with -BootDevice NetworkAdapter everything worked without any issues:
PS C:\> New-VM -Name Test1 -NewVHDPath C:\VMs\test1.vhdx -NewVHDSizeBytes 40GB -MemoryStartupBytes 1GB -BootDevice NetworkAdapter -Generation 2

Name  State CPUUsage(%) MemoryAssigned(M) Uptime   Status             Version
----  ----- ----------- ----------------- ------   ------             -------
Test1 Off   0           0                 00:00:00 Operating normally 9.0

The VM and the VHD are created without any problems.
However, with -BootDevice CD for Generation 2 VMs, I got an error and the VM didn't create but the VHD did:
PS C:\> New-VM -Name Test1 -NewVHDPath C:\VMs\test1.vhdx -NewVHDSizeBytes 40GB -MemoryStartupBytes 1GB -BootDevice CD -Generation 2

New-VM : Failed to add device 'Synthetic Disk Drive'.                                                                   Cannot attach storage media to the controller because the specified location is in use.                                 'Test1' failed to add device 'Synthetic Disk Drive'. (Virtual machine ID 150990F6-3252-45D7-BE42-D38961E2A94A)          'Test1': Cannot attach storage media to the controller because the specified location is in use. (Virtual machine ID 15 0990F6-3252-45D7-BE42-D38961E2A94A)
At line:1 char:1
+ New-VM -Name Test1 -NewVHDPath C:\VMs\test1.vhdx -NewVHDSizeBytes 40G ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-VM], VirtualizationException
    + FullyQualifiedErrorId : InvalidState,Microsoft.HyperV.PowerShell.Commands.NewVM

When I tried Generation 1 VM, it worked with CD:
PS C:\Users\gosho> New-VM -Name Test1 -NewVHDPath C:\VMs\test1.vhdx -NewVHDSizeBytes 40GB -MemoryStartupBytes 1GB -BootDevice CD -Generation 1

Name  State CPUUsage(%) MemoryAssigned(M) Uptime   Status             Version
----  ----- ----------- ----------------- ------   ------             -------
Test1 Off   0           0                 00:00:00 Operating normally 9.0

It think the combination -BootDevice CD and -Generation 2 is failing because the cmdlet is trying to attach the CD drive to an IDE controller which is not present in Gen 2 VMs.


Create fa.ts

Added Persian Translation to Bravo!

@Mahyari88 thank you for adding Persian translation to Bravo! Would you mind applying the requested changes so we can proceed with the merge? We would like to include this PR in the next version we will release in the next few days, thanks!


import error

there is a error (Error while importing: format not recognized )when i import the link (https://raw.githubusercontent.com/microsoftgraph/microsoftgraph-postman-collections/master/Microsoft Graph.postman_collection.json)

I cannot replicate this. @cybersxp  what are the steps you are taking.
Select File | Import
Click Link
paste https://raw.githubusercontent.com/microsoftgraph/microsoftgraph-postman-collections/master/Microsoft%20Graph.postman_collection.json
Click Continue


Support customizing keyboard menu

Use case
Hi, I'm currently working on developing an editor package and have encountered some challenges with implementing the following workflow:

The user taps the edit area, causing the keyboard to appear.
The user then taps a toolbar positioned above the keyboard, intending to open a menu.
At this point, the keyboard is meant to close, and the menu should display.

The transition between the closing of the keyboard and the display of the menu is not smooth. This issue is evident in the provided video, where the animation appears jarring.
Current Layout Structure:
When the keyboard is open:
Column
|
| -- Editor Area
| -- Toolbar
| -- Keyboard
When the keyboard is closed and the menu is displayed:
Column
|
| -- Editor Area
| -- Toolbar
| -- Menu
I am seeking advice or solutions to improve the animation transition, making the switch from keyboard display to menu display smoother. Any recommendations on alternative implementations or adjustments to the current approach that could enhance the user experience by providing a more fluid transition would be greatly appreciated.
https://github.com/flutter/flutter/assets/11863087/85f93c0d-e02f-4d60-8f55-409985393802
Proposal
https://github.com/flutter/flutter/assets/11863087/626ac285-1a38-4e62-be86-fdd1ac8bcd05

@LucasXu0
Can you check if your issue / case is same as https://github.com/flutter/flutter/issues/32583 ?

Yes, exactly the same issue. I'll close this one.


Sample #2 has 2 allele(s), but 1 were found in others (warning)

I'm using this docker container (https://hub.docker.com/r/thomasvyu/vcf-validator/tags) that I believe has version 0.6 of vcf-validator.  I'm currently obligated to use this version and have the VCFs pass validation without any warnings, so I need to figure out a workaround.
I am getting many warning messages like:
Sample #2 has 2 allele(s), but 1 were found in others (warning)
Here's an example row which throws such a message:
chrY	22077202	39635	C	A	.	FAIL	.	GT:AD:DP	.:.,0:0	0/0:1,2:3
I imagine it has something to do with the periods '.' in the GT or AD fields.  Should these be replaced with, e.g., 0 to pass this version of the validator?
Thanks very much for your help!
-Jason

this is related to https://github.com/samtools/hts-specs/issues/419 and https://github.com/samtools/hts-specs/issues/229. At that time it wasn't clear if . can be used for fields with Number>1, such as GT and AD.
For GT it is preferred if you put the correct ploidy even when missing (./. for diploid), and for other fields (such as AD) it is ok to put just ..
In your example, the AD field does have 2 values, so it's ok. However your GT field only has . (remember you split the FORMAT fields by :). BUT, I see this variant is in the chromosome Y which should have ploidy 1, so the line is correct indeed. For this exact case we decided this was a bug and removed this constraint of each sample having the same ploidy at https://github.com/EBIvariation/vcf-validator/pull/114, which is fixed for later versions.
The validator is not perfect specially older versions (we are also aware of other small bugs in the current version that we haven't fixed yet), and having it to pass without any warnings at all, inflexibly, is sometimes pointless. The only ways to make it pass is putting ./. which is incorrect for chrY, or dropping variants in the chrY, which is a waste.
Sorry there's no way around it in this case.

OK, thanks very much for the quick and thoughtful reply!
-J

I just reread this thread, and I realised another detail.
With Sample #2 has 2 allele(s), but 1 were found in others, the validator is noting that sample 1 has GT=. and sample 2 has GT=0/0. This would be correct for male/female samples in chrX, but in your example you use chrY, should not be diploid in any case for human. 0 should have been used instead of 0/0. It might be ok if it's a different species.


Add description of file delete (unlink) semantics

This describes the semantics of file deletes (unlink, #78).
If we are happy with these semantics, we can move forward with the implementation of unlink and related operations such as forget.
Note, I have not described how the lookup count and forget operation will work. I am considering this to be better suited in RustDoc and more of an 'implementation detail'.
A rough implementation is already being drafted in #214.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

Closing in favour of #232.


python311Packages.google-cloud-monitoring: 2.15.0 -> 2.15.1

Changelog: https://github.com/googleapis/python-monitoring/blob/v2.15.1/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 241883 run on x86_64-linux 1

4 packages built:

python310Packages.google-cloud-monitoring
python310Packages.google-cloud-monitoring.dist
python311Packages.google-cloud-monitoring
python311Packages.google-cloud-monitoring.dist


How to make a toggle for switch theme of the component?

Hi, could you tell me how to switch the theme of the calendar, I am trying the code like below:
const explicitTheme: ThemeInput = {
    light: ['#d7d9db', '#9be9a8', '#40c463', '#30a14e', '#216e39'],
    dark: ['#323942', '#39d353', '#26a641', '#006d32', '#0e4429'],
};
...
<ActivityCalendar
...
    theme={explicitTheme}
    colorScheme={localstroage.getItem('theme') || 'light'}
...
/>

and I have a button to change the value of theme, my page theme is changed, but it didn't work on ActivityCalendar.

Hey. React does not know about changes in the local storage. You can listen to changes in a useEffect() or, and I think that's probably better, you restructure you code to something like this:
https://codesandbox.io/p/devbox/6jm9f7
import { useState } from "react";

const themeKey = 'theme';

function App() {
  const [theme, setTheme] = useState(localStorage.getItem(themeKey) ?? 'light');

  const toggleTheme = () => {
    const updatedTheme = theme === 'light' ? 'dark' : 'light';
    localStorage.setItem(themeKey, updatedTheme)
    setTheme(updatedTheme)
  }

  return (
    <>

chosen theme: {theme}

      <button type="button" onClick={() => toggleTheme()}>toggle theme</button>
    </>
  );
}

export default App;

Hi, thank you for your reply. Maybe my question is not so clear. I wanted to make a toggle in another component file and the layer like:
└─ActivityCalendar.tsx
└─AnotherComponentWithToggle.tsx

so if in this case, use useState is not so convenient for me, in fact it probably can't work, and I had solved in this question with move my toggle into ActivityCalendar.tsx in the end :D, so maybe this issue is a little bad, I am sry for that.

If you need the theme state in several components maybe context is a good option:
https://react.dev/learn/passing-data-deeply-with-context
Here the color theme is even used as example throughout the page:
https://react.dev/reference/react/useContext


Add MongoDB replica set creation

The software is currently using MongoDB database. A playbook for setting up MongoDB database as a replica set should be created. It should also create the database user, database and set limited access rights.

Wrong repo.


Errors when parsing some valid ISO8601 datetimes

The iso8601 conversion fails currently on dates with hour or minute values of 0, if TZ data is present.
For example:
from pyswagger import utils
>>> utils.from_iso8601("2016-06-21T14:02:57Z")
datetime.datetime(2016, 6, 21, 14, 2, 57, tzinfo=<pyswagger.utils.FixedTZ object at 0x1070de910>)
>>> utils.from_iso8601("2016-06-21T00:02:57Z")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/pyswagger/utils.py", line 171, in from_iso8601
    raise ValueError('missing h:m when tzinfo is provided: [{0}]'.format(s))
ValueError: missing h:m when tzinfo is provided: [2016-06-21T00:02:57Z]

The issue is in 'pyswagger/utils.py', there is a boolean evaluation of hour/minute and since '0' is falsey the check fails.  I believe the intention was to just test for None.  The following change resolves the issue:
     if tz_s:
-        if not (hour and minute):
+        if hour == None or minute == None:
             raise ValueError('missing h:m when tzinfo is provided: [{0}]'.format(s))

Thanks for pointing out, I'll check this issue this weekend.

Thanks for the quick response!
On Jul 1, 2016 4:12 AM, "mission.liao"<EMAIL_ADDRESS>wrote:

Thanks for pointing out, I'll check this issue this weekend.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mission-liao/pyswagger/issues/82#issuecomment-229884523,
or mute the thread
https://github.com/notifications/unsubscribe/ARrRd4y4k1jykScqOabDFNhsziy4xQ5Kks5qRMwCgaJpZM4JCyl2
.


add IsUpdateValueWhenLostFocus

fix #200

merge read/write button first and I will go ahead

Displayed text should either go back to old value or go to new value, it's ambiguous to have a state that displayed text is completely unrelated to the actual value.

Displayed text should either go back to old value or go to new value, it's ambiguous to have a state that displayed text is completely unrelated to the actual value.

we need to do this https://github.com/irihitech/Ursa.Avalonia/issues/201

超过最大最小无效这种判断应该是user在application中依据validation attribute来显示DataValidationError的，不应该内置到控件中。


Improve Styling

Description
Hi @raj03kumar, I am a contributor in GSSOC'23.
Game on title and search input field doesn't have proper margin-top.
I want to work on fixing this issue.
please assign me this issue under label gssoc'23
Screenshots

Additional information
No response

Assigned this issue to you. Kindly complete it within a week. All the best to your work...


Warning about the cost to run

It might be worth mentioning somewhere that ultimately this won't be free to run.
Dreamstudio gives:

All new users will get 100 free DreamStudio credits, enough to create 500 standard images. This is a one-time bonus when you first create your account, and will not replenish.

So once you've done 500 days of images (1.5 years if you only generate once a day at default settings (0.2 credits per generation), but you'll burn through that a lot quicker if you generate multiple times a day), it'll start costing you money to the tune of $10 per 1000 credits.
Ref: https://beta.dreamstudio.ai/faq
DALL-E gives:

You get 50 free credits during your first month, and 15 free credits will refill every month after that.

Which is essentially 50 images in the first month, then 15 each month after that. Unused credits don't roll over, so you have to buy them at $15 per 115 credits.
Ref: https://help.openai.com/en/articles/6399305-how-dall-e-credits-work
Midjourney is charged based on GPU minutes, you get 25 minutes free as a one off, then you have to pay after that if you use them.  They never refill - once the free 25 minutes are gone, they're gone.
Ref: https://neuroflash.com/blog/midjourney-subscription/

I go into costs I've experienced in the article a little, but I think you're right and people should be reminded that each run costs money in some way. If the APIs support it we could use it to provide feedback on how much a certain run cost, and how much funds they have remaining in their account. Could even possibly include that in the status bar.

The Stability API definitely doesn't allow you to query remaining credits, you'd just be guessing how much each generation cost based on the size of the image and the steps.
DALLE will only return the cost of a TEXT request in the response, not when doing an IMAGE request, bizarrely.
I don't think you can currently interact with Midjourney by any means other than their Discord bot, and they definitely do not have a public API available.  But it seems that they're planning on releasing one in the future.
I don't think we need to put something on screen that says "this cost you money", but rather just a disclaimer in the readme that says "yeah, ultimately this'll cost money, so if it stops working after a month (DALLE) or a year (Stability) the you probably wanna go buy some credits."

Yeah it's probably more of a 'nice to have'. If it becomes possible it would still be interesting to throw it in the logs. I really did expect midjourney to have an API by now, that's not implemented until they can get their act together. I'll update the readme.


[Fix][DOC] Fix doc tip and caution

Hi @bwcxyk . Thanks for created PR, would you mind create a fix PR on https://github.com/apache/seatunnel/tree/dev/docs? So that we can fix it in the next version.

Okay, PR has been created

Hi @bwcxyk . Thanks for created PR, would you mind create a fix PR on https://github.com/apache/seatunnel/tree/dev/docs? So that we can fix it in the next version.

Okay, PR has been created


Add optparse explicitly, update clear_load_cache call

Looks like optparse needs to be loaded explicitly.
Addresses https://github.com/rubygems/rubygems-server/issues/1
While I was here I noticed that rake test failed with an undefined method for _clear_load_cache. Seems like that was removed at some point several years ago and I suspect it was just a cheeky way to call a method that was private. I've updated it to call the private method explicitly using send.

There was an issue where the port number was being converted in the constructor but not in an explicit add_option, so I refactored and updated the code so it's used in both places. I also updated a couple other tests where the expected error output was incorrect.

Closed in favor of https://github.com/rubygems/rubygems-server/pull/4


Failed to reconnect producer: ProducerBusy

Descripition
The connection between client and server may be broken in some cases, for example, network fluctuations, so I was trying to have a retry logic when producer send messages, when I close the network connection forcely I get some logs like:
2023-10-07 17:06:20.322 ERROR [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1234 | [src:58348 -> dest:32006] Connection closed with ConnectError
2023-10-07 17:06:20.323 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-1, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:20.323 ERROR [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1234 | [src:58345 -> dest:32006] Connection closed with ConnectError
2023-10-07 17:06:20.323 ERROR [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1234 | [src:58346 -> dest:32006] Connection closed with ConnectError
2023-10-07 17:06:20.323 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-2, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:20.324 ERROR [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1234 | [src:58347 -> dest:32006] Connection closed with ConnectError
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-0, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-3, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:263 | [src:58348 -> dest:32006] Destroyed connection
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:263 | [src:58345 -> dest:32006] Destroyed connection
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:263 | [src:58346 -> dest:32006] Destroyed connection
2023-10-07 17:06:20.324 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:263 | [src:58347 -> dest:32006] Destroyed connection
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-1, test] Getting connection from pool
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:87 | Deleting stale connection from pool for pulsar://dest:32006 use_count: -1 @<PHONE_NUMBER>000000
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:184 | [<none> -> pulsar://dest:32006] Create ClientConnection, timeout=3000
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:106 | Created connection for pulsar://dest:32006
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-2, test] Getting connection from pool
2023-10-07 17:06:20.427 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-3, test] Getting connection from pool
2023-10-07 17:06:20.428 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-0, test] Getting connection from pool

and then I saw the reconnction logic but got a lot of failure logs like:
2023-10-07 17:06:23.430 ERROR [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1234 | [<none> -> pulsar://dest:32006] Connection closed with ConnectError
2023-10-07 17:06:23.430 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-1, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:23.430 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-2, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:23.430 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-3, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:23.430 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:147 | [persistent://public/default/test-p-partition-0, test] Schedule reconnection in 0.1 s
2023-10-07 17:06:23.430 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:263 | [<none> -> pulsar://dest:32006] Destroyed connection
2023-10-07 17:06:23.538 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-1, test] Getting connection from pool
2023-10-07 17:06:23.538 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:87 | Deleting stale connection from pool for pulsar://dest:32006 use_count: -1 @<PHONE_NUMBER>000000
2023-10-07 17:06:23.538 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:184 | [<none> -> pulsar://dest:32006] Create ClientConnection, timeout=3000
2023-10-07 17:06:23.539 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:106 | Created connection for pulsar://dest:32006
2023-10-07 17:06:23.539 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-0, test] Getting connection from pool
2023-10-07 17:06:23.539 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-2, test] Getting connection from pool
2023-10-07 17:06:23.540 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-3, test] Getting connection from pool
2023-10-07 17:06:23.568 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:382 | [<IP_ADDRESS>:58515 -> dest:32006] Connected to broker
2023-10-07 17:06:23.627 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:87 | Deleting stale connection from pool for pulsar://brokers-broker-1.brokers-broker-headless.pulsar.svc.cluster.local:6650 use_count: -1 @<PHONE_NUMBER>000000
2023-10-07 17:06:23.627 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:184 | [<none> -> pulsar://dest:32006] Create ClientConnection, timeout=3000
2023-10-07 17:06:23.627 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:106 | Created connection for pulsar://brokers-broker-1.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.632 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:87 | Deleting stale connection from pool for pulsar://brokers-broker-0.brokers-broker-headless.pulsar.svc.cluster.local:6650 use_count: -1 @<PHONE_NUMBER>000000
2023-10-07 17:06:23.632 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:184 | [<none> -> pulsar://dest:32006] Create ClientConnection, timeout=3000
2023-10-07 17:06:23.633 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:106 | Created connection for pulsar://brokers-broker-0.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.633 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:87 | Deleting stale connection from pool for pulsar://brokers-broker-2.brokers-broker-headless.pulsar.svc.cluster.local:6650 use_count: -1 @<PHONE_NUMBER>000000
2023-10-07 17:06:23.633 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:184 | [<none> -> pulsar://dest:32006] Create ClientConnection, timeout=3000
2023-10-07 17:06:23.633 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ConnectionPool:106 | Created connection for pulsar://brokers-broker-2.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.656 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:384 | [<IP_ADDRESS>:58516 -> dest:32006] Connected to broker through proxy. Logical broker: pulsar://brokers-broker-1.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.664 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:384 | [<IP_ADDRESS>:58519 -> dest:32006] Connected to broker through proxy. Logical broker: pulsar://brokers-broker-2.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.673 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:384 | [<IP_ADDRESS>:58518 -> dest:32006] Connected to broker through proxy. Logical broker: pulsar://brokers-broker-0.brokers-broker-headless.pulsar.svc.cluster.local:6650
2023-10-07 17:06:23.722 WARN  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1630 | [<IP_ADDRESS>:58516 -> dest:32006] Received error response from server: ProducerBusy (org.apache.pulsar.broker.service.BrokerServiceException$NamingException: Producer with name 'test' is already connected to topic) -- req_id: 4
2023-10-07 17:06:23.722 WARN  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ProducerImpl:281 | [persistent://public/default/test-p-partition-1, test] Failed to reconnect producer: ProducerBusy

finally, after a long time reconnection, the client recovery
2023-10-07 17:07:12.180 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-1, test] Getting connection from pool
2023-10-07 17:07:12.196 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-3, test] Getting connection from pool
2023-10-07 17:07:12.196 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-0, test] Getting connection from pool
2023-10-07 17:07:12.197 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\HandlerBase:72 | [persistent://public/default/test-p-partition-2, test] Getting connection from pool
2023-10-07 17:07:12.237 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ProducerImpl:209 | [persistent://public/default/test-p-partition-1, test] Created producer on broker [src:58516 -> dest:32006]
2023-10-07 17:07:12.253 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ProducerImpl:209 | [persistent://public/default/test-p-partition-3, test] Created producer on broker [src:58518 -> dest:32006]
2023-10-07 17:07:12.253 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ProducerImpl:209 | [persistent://public/default/test-p-partition-0, test] Created producer on broker [src:58518 -> dest:32006]
2023-10-07 17:07:12.256 INFO  [49156] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ProducerImpl:209 | [persistent://public/default/test-p-partition-2, test] Created producer on broker [src:58519 -> dest:32006]

The entire reconntion from first try to final success cost nearly 60 seconds, which seems too long
Reproduce
Version
pulsar: <IP_ADDRESS>
pulsar python sdk: 3.3.0
Step

run pulsar server
using python client producer to send message, sample code:

import time
import pulsar

client = pulsar.Client('pulsar server address',
                       connection_timeout_ms=3000,
                       operation_timeout_seconds=3)

producer = client.create_producer(topic='persistent topic name',
                                  send_timeout_millis=1000,
                                  producer_name='test')

def send_message(content):
    while True:
        try:
            print(f'connection: state: {producer.is_connected()}')
            msg_id = producer.send(content.encode('utf-8'))
            print(msg_id)
            time.sleep(5)
            break
        except Exception as e:
            print(e)

while True:
    send_message(input())

input something to make sure the connection is ok
close the network connection to the server manully
reconnect the network

Expection
I believe this could not be the client issue, and please help triage if necessarily. The client reconnection is expected to be more quick and smooth

There is a similar fix (https://github.com/apache/pulsar/pull/21144) in core repo but I didn't look into this fix currently

There is a similar fix (apache/pulsar#21144) in core repo but I didn't look into this fix currently

Thx Yunze for the information


[BUGFIXRemoved Style from HTML file

Submission Checklist
Required

[ ] The pull request title clearly contains the name of the sheet I am editing.
[ ] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[ ] The pull request makes changes to files in only one sub-folder.
[ ] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] I have authorization from the game's publisher to make this an official sheet on Roll20 with their name attached.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

Character Sheet Info Roll20 Internal Use only.

Hello @BronsonHall can you approve this PR too, please?
The PR before that has broken some style elements in production and I needed to fix that.


Contribution Guide

Hey pals,
could you add a CONTRIBUTING.md file to the repo? We've got all the Delta Icons as SVGs, so could probably help you out with some stuff :)
Cheers!

Just put your (svg+xml) in svgs folder add xml in drawables and connect your drawables to package name in grayscale icon xml

Thanks for your interest in contributing, @leifniem! I’ll add a CONTRIBUTING.md file shortly.

Done! If anything is unclear, feel free to let me know. I’ll be happy to help.

Nope, perfectly clear, thank you @patrykmichalik i hope i'll find time this year to add some icons, have to finish my thesis first sadly

Thanks, @leifniem! Best of luck with your thesis.


First run issue

~
❯ cddf #alias for 'cd ~/Code/dotfiles'
_z:22: no such file or directory: /Users/kevinsuttle/.z

Any ideas? Seems to only have happened on first invocation. My dotfiles are all symlinks in ~, pointing to the above directory, if that helps. Homebrew installed version of z.

I am also seeing this issue from zsh.

+1 on this issue, just got it...

I also see this issue on zsh.
z version: d5adc9a6239c2ee44309fd78bca68f301eb0d45a
zsh --version: zsh 5.0.8 (x86_64-unknown-linux-gnu)

OK, I'll have another go at this ASAP

Thanks @rupa !

Downloaded today, same issue.

I had the same problem, and I did what @FedericoCeratto suggested. not sure if it's from this or from the restart of the zsh, but it now works.

Have the same issue on fresh run of vagrant when trying to cd into "/home"
_z:22: no such file or directory: /home/vagrant/.z
Even with the error it does cd me into home directory.

I'm having this issue now

Just got this, first run after install.

cd Documents/Code
_z:22: no such file or directory: /Users/choey/.z

Same error for me as well, please look into it ASAP.

Same here!

I have this error at the first run after install. After it's OK.

Same issue, but seems to work just fine after .
Repro steps:

new Mac (expensive step!) I'm also using oh-my-zsh.
brew install z
add . /usr/local/etc/profile.d/z.sh to .zshrc
open new terminal window (I'm using iTerm) and follow along…

Last login: Fri Dec 13 07:42:48 on ttys001
>  ~ cd Documents
_z:22: no such file or directory: /Users/beau/.z
>  Documents cd ..
>  ~ z doc
>  Documents

yup, it's also happened in my terminal
~
❯ brew install z
==> Downloading https://github.com/rupa/z/archive/v1.9.tar.gz
==> Downloading from https://codeload.github.com/rupa/z/tar.gz/v1.9
##O#- #
==> Caveats
For Bash or Zsh, put something like this in your $HOME/.bashrc or $HOME/.zshrc:
  . /usr/local/etc/profile.d/z.sh
==> Summary
🍺  /usr/local/Cellar/z/1.9: 5 files, 20.7KB, built in 5 seconds

~ 8s
❯ cd Workspace

~/Workspace
❯ z wo
zsh: command not found: z

~/Workspace
❯ vim ~/.zshrc # add . /usr/local/etc/profile.d/z.sh

~/Workspace 10s
❯ source ~/.zshrc

_z:22: no such file or directory: /Users/shaw/.z

like after fist install, .z not found when is using, should check .z exist

This seems to be a harmless error. After first-run shows this error, then ~/.z exists and the z command works.

Bump #256.


future::Fuse is a bit weird and has out of date documentation

The documentation talks about Some/None which are nowhere in sight. Instead, it returns NotReady if the value has already been returned. That's probably fine although returning Some(value) and then None forever would be more in-line with Iterator::fuse.
I know this issue is a bit vague but, beyond fixing the documentation, I don't really know the correct thing to do here.

Just to be clear, this is talking about this Fuse.

Ah yeah this was all a remnant of a time long since passed, thanks for the issue!


feat: add C implementation for math/base/special/betainc

Resolves #649, #3423
Description

What is the purpose of this pull request?

This pull request:

adds C implementation for math/base/special/betainc

Related Issues

Does this pull request have any related issues?

This pull request:

resolves #649 #3423

Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines

@stdlib-js/reviewers

This PR will need the C implementation for math/base/special/kernel-betainc to be merged to develop.

Reference:-


Custom empty dot color

have you any plans to add a possibility to change empty dot color?
today with fixed opacity at the dots in some screens is hard to see the dot that is not selected.

you need just transparent dot color ? @murilopf-up

Yeah, it would be nice if we can control the opacity or background color of EmptyDot.
I can try to send a PR if you are busy

is this what you want ?

i'll publish new version to npm.
if not, give me some feedback. and i'll handle it
@murilopf-up

Yeah, that's it!
I will be able to change the opacity and background color?

if i publish it, you can handle only background color.
opacity is control by fixed animated value.
you also want to use opacity value.?
i think it's not necessary.
@murilopf-up

I think it's not necessary, you are right!
I asked just to confirmm thanks @pratt3351

i publish it on npm !
you can use it on v.0.4.0
enjoy!


Add config option to disable HTML repr

Fixes #9830.
Open questions:

I added four lines of code at the beginning of _repr_html_() of each class that defines this method. We could outsource this (in a decorator?), but it's probably overkill right now. I refactored this into a decorator, I think this is cleaner even for the few classes we have.
I didn't find a way to set a config option only temporarily (for the current session without writing to the config file) – is this possible somehow? set_config() doesn't seem to support it, but maybe I missed a context manager or something similar?

Sure, I'll add a test. Does anyone have an answer to my second question? Basically, I'm looking for something like mne.set_log_level(), which is only valid within the current session (so not permanently).

what other options do you have in mind?

Message ID: @.***>

If we haven't described our config options so far, I think we should describe all of them. But maybe @drammock knows if there's already some documentation.

Does anyone have an answer to my second question? Basically, I'm looking for something like mne.set_log_level(), which is only valid within the current session (so not permanently).

The current way to get this behavior is just to set os.environ['...']. It will be temporary to that session

... and I don't think there is a single place where we describe all options. Instead we try to describe each option around where it's used, e.g., the 3D options should be described in set_3d_options. For this new param since it's more "global" in scope like set_log_level, we could just add it to the config tutorial for now, and figure out in a separate issue if we want to add all options somewhere else later (I'm not yet convinced we should/need to so we should discuss separately).

The current way to get this behavior is just to set os.environ['...']. It will be temporary to that session

OK, that's what I did in the test.
Re describing config options, I'm fine with descriptions in different places, but maybe an overview of all possible values would be nice. Maybe even built into mne.get_config() somehow? Whatever we decide, I'd vote for tackling this in a separate PR, since this is a bit outside the scope of this PR.

I'm fine with descriptions in different places, but maybe an overview of all possible values would be nice. Maybe even built into mne.get_config() somehow?

mne.get_config("") returns a list of all valid config keys. (no explanation of what they do though, but fodder for a search engine or git grep).

mne.get_config("") returns a list of all valid config keys. (no explanation of what they do though, but fodder for a search engine or git grep).

That's probably good enough for now. WDYT @agramfort?

mne.get_config("") returns a list of all valid config keys. (no explanation of what they do though, but fodder for a search engine or git grep).

If we wanted a more thorough documentation of what they all do, a nice way to do it would be for mne.get_config("") to return a dict instead of a tuple, with the dict values being a short one-sentence description of what each key does and its valid values.

I could do that? In this PR?

I could do that? In this PR?

go for it. mne.get_config("") is mostly there for informational/interactive purposes, it's only used twice in the codebase in ways that should be compatible with dict too:
$ git grep "get_config('')"
mne/utils/tests/test_config.py:24:    assert (len(get_config('')) > 10)  # tuple of valid keys
tutorials/intro/50_configure_mne.py:84:assert 'MNEE_USE_CUUDAA' not in mne.get_config('')

oh, rereading, maybe you weren't volunteering :)  and even if you were, it should probably be a separate PR.

That's OK, I'll do it in a separate PR. So I guess this one is ready?

All green – @agramfort please feel free to merge if all of your comments have been addressed!

thanks @cbrnr
can you open issues for the next PRs to complete to follow up? 🙏


gentx-49cfa98558d06866f4e8a6f258d92e75c4ceaf6e.json

Hi, your gentx seems to not be valid. Please check:
You have stakedrop amount
Correct chain id in gentx command
JSON data has not been modified manually (signature invalid)


Guarding an NPC?

Is it possible, that an NPC guard an other NPC? Would be great that a higher ranked NPC gets his own guard.

That's... an interesting concept. I don't know if that falls under the category of reasonable usage...

I am searching something like this: https://www.spigotmc.org/resources/npc-groups.14399/
He wanted to defend a group leader, or defend anyone on the group.
But it's not so important.

I´m using now the Value Squad, this is what I wanted :)


feat: allow form data through default body serializer

I was trying to use openapi-fetch for file uploading, but by default that wasn't possible (using multipart/form-data). Looking at the source code I noticed that part of the solution for fixing it seemed to be missing as defaultBodySerializer never allows FormData to be passed through it:
if (requestInit.body) {
  // Here, bodySerializer always returns a JSON string by default
  requestInit.body = bodySerializer(requestInit.body);
  // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
  if (requestInit.body instanceof FormData) {
    requestInit.headers.delete("Content-Type");
  }
}

I'm trying to fix that in this PR by allowing FormData to be passed through the defaultBodySerializer enabling file uploads with multipart/form-data by default.
Changes
Allow FormData to be passed through defaultBodySerializer as body to enable file uploading by default.
How to Review
Upload a file as part of multipart/form-data
Checklist

[ ] Unit tests updated
[ ] docs/ updated (if necessary)
[ ] pnpm run update:examples run (only applicable for openapi-typescript)

Thank you for this fix! I’d accept this change if you also added a test that was failing before your fix, and passes with.
Also be sure to add a Changeset for this that adds a patch to openapi-fetch so it can be released on merge!

Thanks @drwpow! I added the test and a changeset entry. I'm having a small problem with typings though as the request body is always expected to be a string and I'm trying to send FormData.  I'm wondering how to tackle that, since I couldn't find the part where the body type is defined.

Looks good! But I see we have a type error in the tests we should probably fix in openapi-fetch/index.d.ts.


Update workshop with new cloud-agentless onboarding

[x] Prerequisites: Update onboarding screenshots https://sysdig.awsworkshop.io/0-prerequisites/2-sysdig_account.html
[x] Install: Change onboarding description (get rid of cloudtrail details and describe new solution) https://sysdig.awsworkshop.io/1-install.html
[x] Install: Change Terraform-based instructions and screenshots https://sysdig.awsworkshop.io/1-install/1-terraform.html (don't forget clean-up section also)
[x] Install: Change CFT-based instructions and screenshots https://sysdig.awsworkshop.io/1-install/2-cloudformation.html (don't forget clean-up section also)
[x] Threat Detection: Change explanation removing CloudTrail references https://sysdig.awsworkshop.io/4-threat-detection.html
[x] Threat Detection: Rename "CloudTrail" section and rewrite explanation https://sysdig.awsworkshop.io/4-threat-detection/1-cloud_threat_detection.html
[x] Threat Detection: Reassess cloud event detection scenario which is based on cloudtrail (details, screenshots, etc). https://sysdig.awsworkshop.io/4-threat-detection/1-cloud_threat_detection/52_detecting_runtime_cloud_security_threats.html
[x] Dig deeper Threat Detection: Rewrite details and change diagram. https://sysdig.awsworkshop.io/4-threat-detection/9-digdeeper.html

Branch created: #35

done! closed


Coherency fixes

There was an option for coherency computation introduced recently.
Some places weren't checking whether coherency is enabled and thus wrong information was shown in such case.

Thanks, looks like I forgot to change a few places 😘


Update to API 7

This plugin is no longer maintained since I don't have time for it.
I'm pretty sure that there are other Sponge plugins which have the same capabilities and are maintained.


[Component] - Snackbar

If you watch the video below, you will understand the bug. Essentially, if you slightly swipe the snackbar without swiping enough to close it, the onClose button fails to close the snackbar.
Additionally, the timeout function that should automatically close the snackbar after 5 seconds also becomes inactive.
When in this state, the only way to close the snackbar is to swipe it

@elisa-hery Ready for QA time: https://spark-ui-uhip-n4q4w74h4-sparkteams-projects.vercel.app/iframe.html?id=components-snackbar--close&viewMode=story 🙏

@soykje I tested all these cases on safari web / safari mobile / chrome web : it's all good, this bug is fixed ✅
Nevertheless it made me notice 2 things :

on safari (Version 17.4.1), with keyboard navigation, enter or space don't trigger action or close button (I know you cannot work on safari, but at least maybe I should show you)
with a long text in the action button, the button takes the whole space (and also it's not vertically aligned), and I'm not sure this is what we want :

maybe we can talk about this !

we created a new task for this --> https://github.com/adevinta/spark/issues/2249
@soykje fixed it ✅


Update README and examples

Closes #62

Use git clone instead of go get as that no longer works outside of modules.
Have main() as entrypoint for each example and set the package to main to allow these to run as stated in the README.md
For examples/df.go ignore some noisy things like FUSE etc.

@klakin-pivotal could you have another look?

ping @klakin-pivotal

Thanks @dveeden and apologies for the long turnaround on the review.


creating OAuthClient doesn't work on minishift on Windows

this code doesn't work on windows: https://github.com/jstrachan/gofabric8/blob/00fb2488c1a8c2e8d2dccad0f65284526e37c48a/cmds/deploy.go#L524
we should modify the code to

generate a local oauthclient.yml file
on minishift execute this command automatically oc apply --as system:admin -f oauthclient.yml
recommend users type oc apply --as system:admin -f oauthclient.yml

when you say recommend users, do you mean :

on remote install recommend users to type.....

yeah - I just mean we output that users should run oc apply --as system:admin -f oauthclient.yml - whereas for minishift we run that command automatically for the user

i.e. replace the current output: https://github.com/jstrachan/gofabric8/blob/00fb2488c1a8c2e8d2dccad0f65284526e37c48a/cmds/deploy.go#L543-L555 with oc apply --as system:admin -f oauthclient.yml

Worked on https://github.com/fabric8io/gofabric8/pull/581


Fix edge case in collisions

This PR fixes a bug where, if digdug and an enemy swapped positions between themselves, it did not count as a collision, due to the fact that the server never saw both the enemy and digdug in the same position.
Due to this bug, digdug and an enemy could pass through each other, while staying both alive, as seen on this video.
https://github.com/dgomes/ia-digdug/assets/15705566/85e3f884-e91a-4291-a7ea-2e2fb74129ce

Acho que é mais fácil:
diff --git a/game.py b/game.py
index 982cf13..0964bf0 100644
--- a/game.py
+++ b/game.py
@@ -234,6 +234,8 @@ class Game:
     self.update_digdug()

   self.collision()

   for enemy in self._enemies:
       if enemy.alive:
           enemy.move(self.map, self._digdug, self._enemies, self._rocks)

commit 7e44e71 solves this issue


WIP: add fingertip provisioner

Does execute successfully for me, but testing on a clean machine would be welcome.
Requires fingertip >=0.2.1, which should be easier now that it has a copr.

Thanks for the new plugin. I've played with it a bit and ran into the following exception:
Traceback (most recent call last):
  File "/home/psss/git/tmt/tmt/base.py", line 396, in go
    step.go()
  File "/home/psss/git/tmt/tmt/steps/provision/__init__.py", line 61, in go
    guest.go()
  File "/home/psss/git/tmt/tmt/steps/provision/fingertip_.py", line 41, in go
    .apply('ansible', 'package', name='rsync', state='present')
  File "/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/fingertip/machine.py", line 127, in apply
    fingertip_last_step)
  File "/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/fingertip/machine.py", line 175, in _cache_aware_apply
    m = func(self, *args, **kwargs)
  File "/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/fingertip/plugins/ansible.py", line 62, in main
    _ansible(m, '-m', module, '-a', ' '.join(module_args))
  File "/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/fingertip/plugins/ansible.py", line 35, in _ansible
    f'ansible_ssh_private_key_file={m.ssh.key_file}']
  File "/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/fingertip/plugins/backend/qemu.py", line 417, in key_file
    s = os.stat(key_file)
FileNotFoundError: [Errno 2] No such file or directory: '/home/psss/.virtualenvs/tmt/lib/python3.7/site-packages/ssh_key/fingertip'

Any additional configuration needed? I used the latest version from pip.

Ouch, this is a Python packaging issue. Meanwhine, could you try an RPM or specifying a path to checkout with PYTHONPATH?

I hope it is fixed now in v0.2.3, but I'd still go for an RPM for now (native dependencies, VM image cleanup job, more tested).

OK, sorry, the RPM is wrong too =) Will fix.

0.2.4 (copr) should work better

Thanks for the fix. Tested with fingertip-0.2.4-1.g0c72912.fc31.noarch and works fine. It's super quick! Beautiful! :-)

Wow, didn't expect it to start working that soon =)
It can be made even faster if I make it cache the prepare step, but it's pretty unclear to me how to cache it properly, as in, when to invalidate it. Got any suggestions? Can that 'specify-the-same-run' interface be used here? How?

@t184256, do you plan to convert the code into a dynamic provision plugin? In other words rebasing on the latest master?

Yes, but I didn't get to it yet.

@t184256, do you plan to work on this in the near future?

Not in the near future, unfortunately.

Ok, let's re-open this once you have time.


chore: bdd-spring-1575656474 to 0.0.1

chore: Promote bdd-spring-1575656474 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


exporters/cmake/OpenSSLConfig.cmake.in: Detect missing platform->sharedlib_import

Some platform implementations are without sharedlib_import(), so we need
to check that it exists before using it.

This pull request is ready to merge

Merged
dd5fe94a61b4455630cbb2988da71949e88f8b6a exporters/cmake/OpenSSLConfig.cmake.in: Detect missing platform->sharedlib_import


CanvasItemEditor: Fix losing position for drag'n'dropped scenes

Fixes #26549.
Supersedes #36309.
Note: Tested on 3.2 as drag and drop is broken on Linux/X11 in master.

Some issues I noticed (not created by this fix):

Drag and drop of scenes in an empty scene doesn't work well. It properly creates an inherited scene, but it doesn't get it marked as unsaved with (*), and it also opens a new, empty scene which takes focus, so it looks like it didn't even work.
The drag preview doesn't take the target node's transform into account, so if you drag a Sprite or scene e.g. on a rotated parent node, or a scaled one, the preview will be unaffected but once dropping, the new node will properly be subject to the transform. This could be good to fix so that WYSIWYG when dragging and dropping.

I am not sure this is the expected behavior in fact. If I am not mistaking, when you position a node2d as instantiated into a scene, you override the instantiated scene's position in the instantiating scene.  This behaviors continue once you dropped the node anyway, as you won't have the origin as considered as the initial position in the instantiated scene.
I think the right way to solve the problem would be to simply set the position to (0,0) during the drag&drop preview, it would probably be more consistent IMHO.

See the screenshots below that show the behavior after this PR.
Note: the "fire" sprite is not the root node, but it's positioned at the origin of the scene being instanced to mark it. The root node is actually the tree on the bottom right (which therefore has a non-zero position in its own scene).
Original scene:

Preview when dragging that scene in a new scene:

(Same as before, the origin of the dragged scene is under the cursor.)
After dropping the scene:

(The origin of the dragged scene was dropped at the position of the cursor, as I would expect it to be.)
Before this PR, the center of the bottom-right tree (root node of the dragged scene) would be at the cursor position, since the previous code would discard its pre-existing position information.

The whole point being that if you design your scene with a root node that has a non-zero position, you have a valid reason to do so. The editor shouldn't discard this information.

The whole point being that if you design your scene with a root node that has a non-zero position, you have a valid reason to do so. The editor shouldn't discard this information.

Well, that's the question. What I mean is that this information will be discarded anyway once you drop the subscene, as the original position is overridden in the parent scene. So basically, once the subscene is dropped, you have no more way to adjust the subscene position considering the original position in the subscene as there is not even a pivot icon considering this origin.
Basically, for now, the position information of the root node in the subscene is only used for the drag&drop preview, but nowhere else. So I think the simple solution would be to reset the position to zero in the preview.
We can also go for your solution, which might be a little bit more expected for the drag&drop, but I fear that it also could mislead users into thinking that they can still manipulate the scene with an origin which is no more considered once the scene is instantiated.

Right, I see your point.
I still tend to think that it's better to respect what the devs designed in their original scene, even if I don't see much use case for having a root node with non-zero position in the first place. One could imagine a scenario where you make your scene with such an offset specifically because that's what you want to enforce when instantiating them in other scenes, but then you don't bother about keeping that initial offset information.
Morever, the fix in this PR makes the behavior consistent with what happens when you instantiate the scene from code or via the "Instance a scene" button of the scene tree panel. The scene will be instantiated at the target node's origin, while preserving the transform of the instantiated scene.
See:
Scene to instantiate, root node has a non-zero position:

After instantiating it using the button in the Scene tree dock, the new node's position is target_node.position + new_node.position:

The information about the original scene's offset is indeed lost, but I haven't seen anyone complain about it so far (again, having a scene with a non-zero position for the root node is quite a niche situation already).
So this PR makes the drag behavior match the instantiation behavior (instantiating is equivalent to drag and dropping with the original scene's origin dropped on top of the target node's position).

Sure it make sense too. If this is the most expected behavior I guess it makes sense. :)

I forgot to leave a review, sorry ;_;

Post-merge reviews are still welcome :) Especially if you disagree with the change ;)

Cherry-picked for 3.2.3.


Public method for UI-less reload in e. g. Groovy scripts

Hey, I've ran into a problem recently where I had to reload the config files automatically in a Groovy script with the Jenkins CLI. In our case I had to expose the business variable with reflection, this would be definitely a cleaner solution.

Thank you for this pull request! Please check this document for how the Jenkins project handles pull requests.