cocoapods use_frameworks! with Swift doesn't work

Hi,
I'm trying to use NUI via Cocoapods using the use_frameworks to compile for Swift and it doesn't work.
It is showing an error: NUIParse.h file not found.
I checked there are more people with the same problem.

I have created a fork with a fix for this problem, but I haven't tested using Objective-C or without use_frameworks! option. I can create a pull request if you need.
My suggestion is to have a branch specific for this case.

+1 What's the branch?

https://github.com/peantunes/nui/tree/feature/support_to_swift_cocoapods_framework

Still can't get it to work, even with that branch. :(

After using this myself for around 5 months, I filed a pull request for my improve_framework_support branch.
This should get rid of any include of non-modular header inside framework module errors.
If you're seeing something like fatal error: 'SenTestingKit/SenTestingKit.h' file not found, have a look at https://github.com/tombenner/NUIParse/pull/2
Using both timbodeit/NUI:improve_framework_support and timbodeit/NUIParse:improve_cocoapods_framework_support, I'm able to use NUI with cocoapods, using frameworks, importing them in Swift (using the native import syntax without a bridging header).

@timbodeit Awesome man! Not a Swift user but I plan on merging your branch into mine, which I plan on regularly maintaining. Could you please update the README to include all steps required in order to get the project working in a Swift project? That would be immensely helpful. Right now the instructions are the same as what is included in the original fork (not sure if that is correct or not).

@Stunner There really isn't anything special to do. All you have to do in your Swift file is to import NUI. Everything else is more or less the same as Objective-C.
I'm happy to update the Readme, but I would feel more comfortable doing that after both PRs have been merged. (If that is actually happening).
From looking at your branch: did you just not contribute back upstream or is tombenner/NUI not actively maintained anymore?

@timbodeit I have two pull requests that have gone ignored. It appears (unfortunately) that this original fork of the project is highly inactive so I am taking it upon myself to maintain (and enhance) it for the time being. You can look at the fork graph and see that I have some history pulling in changes from other forks into mine.
If you update the README I can guarantee you I will merge it into my fork within a day. I believe that good documentation is what keeps projects going (even after they are abandoned [like this one]) so I do my best to keep it as up to date as possible. Additionally, since I am not actively working with Swift, I would like some place to point others to in case they have questions on how to go about it.

Ok, I had a look through last years pull request history.
Only a single PR has been merged within the last year. The rest didn't receive a single comment by any of the maintainers. Travis CI has been failing as far as the history goes back. My PR on NUIParse has been sitting for 5 Months without any input.
While I don't want to falsely accuse someone of abandoning their own project, I don't know what else to make of it.
@tombenner Please consider transferring the NUI project to an organization and adding motivated people such as @Stunner as maintainers. I haven't thoroughly checked the quality of the code on his fork, but on first sight it looks like he is doing pretty good work.
I find this sort of thing to be working pretty well for CocoaLumberjack. Author attribution in the Readme still goes to Robbie Hanson, but he is not very involved in the project anymore. Instead there are three other Maintainers currently managing the project.
IMHO that's a way better use for a project (and much better reference for the author), than slowly letting it die.
@Stunner It's nice to see that there is someone else actively working on NUI. However anybody developing a Pod that uses NUI can't rely on your fork as you can't specify sources in podspec files.
I would suggest cutting your fork loose from the upstream project, turning it into it's own repo and changing it's name. This would allow you to make releases and push them to the Cocoapods specs repo.
Please also duplicate NUIParse and have a look at the pull request.
Should you regularly be making releases of your fork, I'd be interested in further contributions

I would suggest cutting your fork loose from the upstream project, turning it into it's own repo and changing it's name. This would allow you to make releases and push them to the Cocoapods specs repo.

@timbodeit Interesting take, but I'm not too eager to do that unless my changes sufficiently deviate from NUI. I feel that doing that would potentially confuse people, especially if my changes are largely supplementary to the project, rather than a substitute. Your concerns over others not being able to easily utilize my project are valid and I think I can overcome that by specifying the exact line to place in one's Podfile to reference my project in my repo's README. Additionally, keeping my fork as a fork of NUI actually gets it more views as people look at the forks graph and see that my repo is most active and up-to-date which gets some people over to at least star it. But interesting suggestion nonetheless.
I'll take a look at NUIParse as well when I get a chance/have to make changes to the parsing engine (which I plan on doing in the long-term). Right now I am working on getting the custom override capabilities done with all styleable objects in NUI which is a long process to say the least. I would really like to hear your thoughts after reviewing my code for it, whenever you get the chance.

@Stunner My concerns were not about somebody not knowing how to reference your project in the Podfile.
Instead, it is about versioning. If you don't change the name, you can't push releases to the cocoapods specs repo. Without releases, you can't lock versions in your Podfile. And I normally don't just use the current master of any pod, unless the repo is my own, especially when it comes to App Store Releases.
The next part of the issue are other Pods. They don't have a Podfile (except for the Example Project). We are currently separating the different UI components of one of our Apps into multiple internal Pods. In the case of our Pod for common UI elements this dependency tree (of internal pods alone) goes three levels deep.
It is theoretically possible to leave nui in those podspecs without a version specification and then specify some github source in every single Podfile that we have. Problem is my Pods won't lint if I do that. And I'm not going to turn the linter off for pushing them to our internal specs repo.
And on a side note: Your fork of nui currently won't lint either, even when including my changes. That's because of the problems in NUIParse. And you won't be able to tell the linter where to get that Pod from. The only way (without a private specs repo) is to fork NUIParse, rename it, release the renamed version to cocoapods, and using the new Pod in your NUI fork.
I do understand, that you might not care about those things and I'm not trying to pressure you into making changes to your repo if you don't want to do them.
I'm simply saying, that for me personally your fork comes with too many limitations to be of any use. They would be solved by you regularly making releases.
I admit, you won't actually have to rename the git repo to do that. Though the name of the the Podfile does need to be different to do that. I usually don't expect a fork to be more actively maintained than the upstream project. That's the only reason why I suggested renaming the entire thing.

@timbodeit Fair enough, thanks for taking the time to explain. I plan on tagging releases in my branch that can be linked to in the custom way, but it doesn't seem that would work for you. Could it be that this problem is a limitation of the linter rather than a problem with open source project workflow? Perhaps another issue much like this that hasn't been filed as yet?
From my experience working with open source projects, I know that maintainers typically spend time working on things they personally use. Considering your workflow appears to be far more complex than mine, and considering much of what you are doing with respect to CocoaPods goes over my head, I don't know if I can commit to doing what you recommend (primarily due to, as you mentioned, a lack of necessity for me).
What I think may work out (assuming of course this project remains inactive by the primary maintainers and other active maintainers aren't added) is you create a fork, merge in from active forks, and resubmit under a different name yourself as per your suggestions. I think that is the only realistic way to seamlessly move forward and to get around the problems you have brought to light. Additionally, you would be fixing this problem of yours for others as well. Also, you can add me and other actives as maintainers, thus just costing you some initial setup time.


Provide accent color to buttons and notices

This is an enhancement or feature.
Summary
Makes the theme accent color also usable for buttons (.btn--accent) and notices (.notice--accent).
Context
The accent color is the only one that's not available as button or notice color. As this color is used for links, I like to have it also available for buttons. Added notice as well for completeness.

Looks good, thanks for the enhancement!


Buttons not available on Pico Unicorn 1.19.17

Pico Unicorn Pack does not have any button variables in 1.19.17

If it still is available, the unicorn examples should be updated, as the example code is what I used.
Buttons were working in 1.19.16:

The button constants are on the module, rather than the class instance.
Example code needs to reflect this!

Added a commit onto https://github.com/pimoroni/pimoroni-pico/pull/733 to change the module, rather than the examples. Should be in the next release!


What is the new width when using Jimp.AUTO

After
Jimp.resize(Jimp.AUTO,260).getBuffer(
Is there any way to know in the callback of getBuffer what the new width is?
thanks

image.bitmap.width should work

@andy4545 , @xmatmen has the right answer. Hope this helps.


When selecting video new instance of VLC opens and immediately closes

I am currently running Debian Testing (Buster) and I have had some issues with youtube-viewer. Previously, I was also getting the same issues on Debian 9 Stretch too (I only upgraded this installation a few days ago).
When I select a video to play it displays relevant video info in terminal and then attempts to open a new instance of VLC and immediately closes it afterwards. This is the error that is displayed:
VLC media player 3.0.6 Vetinari (revision 3.0.6-0-g5803e85f73)
QObject::~QObject: Timers cannot be stopped from another thread

After this error is displayed then it loops back to the search prompt.
I can still play videos perfectly fine if I copy the URL and launch it out of VLC though.
Also it is worth noting that I was never able to install all of the recommended Perl modules too, for some reason the Perl module Term::ReadLine::Gnu::XS never installed properly so maybe that has something to do with this.
Whenever I attempt to install Term::ReadLine::Gnu::XS it shows the following:
cpan Term::ReadLine::Gnu::XS
Reading '/home/mate/.local/share/.cpan/Metadata'
  Database was generated on Fri, 01 Mar 2019 18:41:02 GMT
CPAN: LWP::UserAgent loaded ok (v6.36)
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
CPAN: YAML loaded ok (v1.27)
Reading '/home/mate/.local/share/.cpan/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.074)
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/mate/.local/share/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Sat, 02 Mar 2019 21:54:44 GMT
.............
  New CPAN.pm version (v2.22) available.
  [Currently running version is v2.20]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.

...............................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/mate/.local/share/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/mate/.local/share/.cpan/Metadata
Running install for module 'Term::ReadLine::Gnu::XS'
CPAN: Digest::SHA loaded ok (v6.01)
Checksum for /home/mate/.local/share/.cpan/sources/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.36.tar.gz ok
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20181129_28)
Configuring H/HA/HAYASHI/Term-ReadLine-Gnu-1.36.tar.gz with Makefile.PL
Could not find neither libtermcap, libtinfo, libncurses, or libcurses.
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
  HAYASHI/Term-ReadLine-Gnu-1.36.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK

Try to remove the --quiet argument in the configuration file to see what errors you get.
Also make sure that youtube-dl is installed. Otherwise, some videos cannot be played.
Alternatively, if vlc [youtube-url] works, then you can consider adding the following player-entry in the configuration file of youtube-viewer:
  video_players => {
    # ...
    vlc_native => {
                      arg => "*URL*",
                      cmd => "vlc",
                      fs => "--fullscreen",
                      novideo => "--intf dummy --novideo",
                      srt => "--sub-file *SUB*",
                  },
},

...then set the value of video_player_selected to "vlc_native":
  video_player_selected  => "vlc_native",

Regarding the Term::ReadLine::Gnu::XS module:

Could not find neither libtermcap, libtinfo, libncurses, or libcurses.

You need to have the readline library installed (which may be named libreadline or libreadline5 or libreadline6) and the tinfo library (which may be named libtinfo or libtinfo5)  in order to build this module.
If the module is available in the repo, better to install it from there. It may be named libterm-readline-gnu-perl.
Let me know if this solves the issue. Thanks.

Removing --quiet did nothing.
I have youtube-dl installed.
I tried using vlc_native and that didn't work either. I did however get a different error with it:
Your input can't be opened:
VLC is unable to open the MRL '[youtube video url]'. Check the log for details.

I installed libterm-readline-gnu-perl and when I attempted to reinstall youtube-viewer there were no issues this time.
VLC still doesn't seem to work, however when I change the value of video_player_selected to "mpv" it works just fine. I also came across this thread where another user had a similar issue with VLC.
I would prefer VLC, but if only mpv works it's better than not working. Is there anything else that can be done?

On my system, I have VLC 3.0.6 installed and it works okay. If you're using an older version of VLC, maybe try to update to the last version to see it changes anything.
Nothing else do be done, I'm afraid.


Templated slides should be considered only one slide

If I have a slide like this:
# Agenda

1. Introduction

--

2. Deep-dive

--

3. ...

It should count as a single slide, but it does not. For example, in the slide counter, it will show up as 3 slides.

True. Otherwise, when trying to print to PDF, I get so many duplicated slides that it even does not make sense!

The wiki documentation is not up-to-speed on this yet, but #177 added support for excluding single slides from being counted as well as incremental slides, which is what you get when using the -- slide separator.

I've added a section about the count slide property to the wiki now.

Thanks, can be closed then.


add property overlay to ClaimPreview

Fixes
Adds duration overlay in ClaimPreview.
Issue Number: closes #7385
What is the current behavior?
Currently only ClaimPreviewTitle shows duration.
What is the new behavior?
Claim previews also show duration.
Other information
Duration is implemented using the same code from the overlay code already in ClaimPreviewTitle
PR Checklist
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes)
[ ] Documentation changes
[ ] Other - Please describe:

Please check all that apply to this PR using "x":

[x] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[x] I added a line describing my change to CHANGELOG.md
[x] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

Nice - Almost ready to merge.
Somehow your changelog entry went to the bottom of the changelog rather to the top unreleased section.

Oops- just fixed @jessopb !


add a way to list titles by date added to nps database

that way it'll be easier to check the newly added titles

or maybe just a way to see the titles added in the last x hours/days?

Yeah that's something that I can implement. I'm not sure if you know this, but the title ids (which the list is sorted by) are incremental. The newest releases are going to be at the bottom of the list.

This was added in commit https://github.com/JK3Y/Swift-NPS-Browser/commit/bef3fb5f4df7d26cdbf5431e49be652a8a20d599#diff-ae82e50752909c84f986ea9b1416ae08


Add EShare application to store

EShare is a multi-screen interaction application which makes the user experience natural and enjoyable for home entertainment, business presentation, and educational training. To use this app on your Android phone or tablet, you need a TV/Projector/IFPD/IWB with EShareServer or ESharePro pre-installed.
Mirror from TV screen to PC
https://play.google.com/store/apps/details?id=com.eshare.clientv2&hl=es&gl=US
https://www.youtube.com/watch?v=r2SitEmphb0

This is unactionable by us - ask a vendor of that application to port it to webOS.


Optimize circe marshaller

replace data.utf8String with data.decodeString (utf8String calls
decodeString eventually)
replace jawn.parse with jawn.decode
get rid of circeJsonUnmarshaller

Nice!

Cool. Thanks for merging. :)

Thanks for bringing it up – I used it to simplify the code for the other JSON libs, too.


The quickfix window used too many buffer numbers

1, I usually go to buffers with number+tab (mapped to number+<C-^>), it's convinent when buffer numbers are small;
2, But, I found that everytime quickfix window opens, the used buffer number is increased. And I often toggle the quickfix window.
3, How can I keep the buffer number of quickfix fixed ? Thanks!

Hi,
On Wed, Jan 23, 2019 at 12:14 PM Bram Moolenaar
<EMAIL_ADDRESS>wrote:

Since nothing should depend on the buffer number, we can wipe out the buffer
and use the same number again later. Just have to make sure the same
autocommands are triggered.  We could also make the buffer unlisted instead
of wiping it out. It might work and be less "special", but there is a small
chance it does cause trouble. We could try it and think of anything that
could go wrong, and if it doesn't work go for the first solution.

I have created pull request #3902 to reuse the quickfix/location list
window buffer. Try this out and let me know if you see any issues.
https://github.com/vim/vim/pull/3902

Yegappan

It works. Great! Thank you!
And I can't reproduce the crash with gvim_8.1.0877_x86.zip, was it solved?

The pull request #3902 has been merged in patch 8.1.0877. Can this issue be closed now?

Let's assume this was fixed.  If there still is a problem, please create a new issue and describe it.


Update error codes

After PR gets merged we should update error codes in sample apps

Instead of throwing only InvalidSessionSettleRequest if namespaces are invalid we should throw more specific error such as: UserRejectedChains from the docs


Form protection

Currently the application has two methods of spam protection: the option of approving all new users (DRIBDAT_USER_APPROVE), and the option of disabling registration completely (DRIBDAT_NOT_REGISTER) to force all logins through external authentication - offloading the spammer/user management to external platforms like GitHub or Slack or another OAuth provider (#280). On larger sites we are often weeding out bot users. Thankfully they do not yet seem to be able to do much damage, but as we have very little protection on the content side, this is bound to become a problem.
Flask WTF, which we are already using, recently added support for more captcha services. Similarly there is flask-simple-captcha. We are currently investigating support for:

Altcha
CERN captcha
hCaptcha
OpenCaptcha
mCaptcha
Friendly Captcha

Note that there is strong pushback on this from some users, sometimes with good reason, as summarized by the Buster project:

reCAPTCHA challenges remain a considerable burden on the web, delaying and often blocking our access to services and information depending on our physical and cognitive abilities, our social and cultural background, and the devices or networks we connect from.

Open source and privacy-protecting, reliable options are what we want, ideally without API dependencies - please share ideas here.

hCaptcha has issues running with blueprints. I haven't managed to get it to work fully.

Note that, while not really a spam protection, e-mail activation is available in the latest releases.

When I research this topic, and in particular all the anti-captcha services out there, I think that trying to fight off bots is a losing battle. I'm going to focus my efforts on moderation tools instead, so that users can flag and alert admins to questionable content, as well as an efficient clean up mechanism for dud/inactive accounts.

Cool: https://proton.me/blog/proton-captcha

I see a lot of people using Cloudflare's Turnstile e.g. via server-side validation like https://github.com/Tech1k/flask-turnstile/


Fix to guidance on different resource groups for VNET and ASE

Hi @garvincasimir, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@garvincasimir thanks for your help with this topic. We appreciate your contribution to improving the Azure docs.


Reorg Nixpkgs --- rip off bandaid approach

Issue description
Nixpkgs' architecture is not the best. Issues:

Leaks memory: too many cycles mean nothing can be GC'd
overriding is gross: We should compose small parts into the final thing we want. "Modifying" the whole post composition is fundamentally anti-declarative

Potential solution

I think we need to expose all the functions we callPackage on their own.
As a middle ground, also expose the function to be fixed ("all packages") but no fixed point "yet"
derivations shouldn't leak either inputs, but just return string (single output) or record of strings. Anything we want to expose should be done with passthru
No .override .overrideAttrs .extend or similar. If you want something different, you need to rebuild the fixed point manually.

This is a radical shift that would make many "minor" overrides quite a bit more annoying, in addition to other breakage. But I think it would also put us on a much firmer, more sustainable foundation. Any idea how we get there incrementally?

I have more questions than answers. Here we go :)

If you want something different, you need to rebuild the fixed point manually.

We'll want to help with this in some way. Also there's real information in the glue, that we can't ignore.

package arguments have generic names, because otherwise the user can't know where to inject their version of things
packages need to specify versions and variants of their dependencies somehow

The current pattern is to write an abstract package function somewhere in pkgs/, then callPackage it with the right dependency versions/variants in pkgs/top-level/all-packages.nix.
I suppose this information can be made first class as a function from something like pkgs to the package function arguments?
How will packaging functions like runCommand and buildGoModule be replaced?

rip off bandaid [...] Any idea how we get there incrementally?

This seems like a good idea because incremental changes would be too numerous and disorganized. For this change to be viable, we need a plan. I'd suggest experimenting in a fork, adding to Nixpkgs only, so that it can be merged without breaking continuity for users and maintainers. Packages can migrate individually. The two solutions should coexist in the same monorepo to make the migration feasible; incrementality not by making small changes, but by interoperability during the migration. The risk is that the migration gets stuck because the new solution isn't good enough, so that's why we need to validate the new solution in a fork first.

derivations shouldn't leak either inputs, but just return string (single output) or record of strings. Anything we want to expose should be done with passthru

The new mkDerivation equivalent must accept only declared arguments like name and env : attrsOf stringLike.
If it doesn't have overriding, we don't need passthru. // on the result will do.
nix-repl> builtins.length (builtins.attrNames hello)
42

I kid you not.
nix-repl> hello.exe
error: attribute 'exe' missing

:sob:

Some tangential(?) questions

can we split stdenv into parts? There's the basics like mkDerivation and setup.sh and the hooks, and then there's toolchain packages, which we want to be able to override. stdenvNoCC is an abomination. I think we should have setupenv and toolchain in the buildInputs etc. "Standard" is an illusion, just like the FHS.
can we split the mkDerivation logic into composable parts? There's a lot of logic that gets added by the language infrastructures. If the mkDerivation logic was composed, those language infrastructures can integrate a lot better. #119942 allows defining such logic, but is restricted to "prototype inheritance" rather than something more composable like the module system.

Wrote #6507 to discuss the definition of "package" as the interface between Nix itself and expressions. It needs to be far, far more conservative for compatibility reasons of course and I think these should be largely distinct conversations, but the connection is present.

No .override .overrideAttrs .extend or similar. If you want something different, you need to rebuild the fixed point manually.

This is a radical shift that would make many "minor" overrides quite a bit more annoying, in addition to other breakage. But I think it would also put us on a much firmer, more sustainable foundation. Any idea how we get there incrementally?

That's one of the main selling points of nix/nixpkgs.

[overriding is] one of the main selling points of nix/nixpkgs.

It is important to me too.
Overriding, as it exists, is inconsistent and a bit buggy at times because of the complexity of implementing it correctly while trying to work around the fact that multiple levels of overriding don't compose well.
For this reason alone, it's worth looking into alternatives.

The risk is that the migration gets stuck because the new solution isn't good enough, so that's why we need to validate the new solution in a fork first.

Let me add that reverting to the status quo is a perfectly acceptable outcome at any point before deprecation.

Some tangential(?) questions

I think those are both excellent points, but it is useful to separate the steps causing mass rebuilds (those) from things that are more purely nix expr orgnaization and so should not.

I think we need to expose all the functions we callPackage on their own.

I completely agree. More and more power has been added to make manipulation of the post-callPackage'd derivation and package sets convenient, but it has drawbacks that make large-scale composition difficult.
I've been calling the function that can be callPackage'd a "proto-derivation" - the thing that can produce a derivation. I've been using this as the base unit of composition, as opposed to override/overlay approaches. This tends to produce easier to understand behavior and easier composition. The outcome can still use overrides, but that becomes far less common. Re-use is as easy as thing = callPackage "${some-other-src}/some-dir" {a-override = 42;};
Using scopes allows nice unification of various package sets enabling this to work:
using pkgs {
          hello-go = ./pkgs/hello-go;
          hello-perl = ./pkgs/hello-perl;

          haskellPackages = using pkgs.haskellPackages {
            hello-haskell-library = ./pkgs/haskellPackages/hello-haskell-library;
          };
          hello-haskell = ./pkgs/hello-haskell; # has access to above library and rest of pkgs.haskellPackages

          python3Packages = using pkgs.python3Packages {
            hello-python-library = ./pkgs/python3Packages/hello-python-library;
          };
          hello-python = ./pkgs/hello-python;

          # Escape-hatch into full nixpkgs overrides
          hello-python-override = callPackage: (callPackage ./pkgs/hello-python {})
                 .overrideAttrs (_: {name="hello-python-override";});

          # Example: Use the nix expresssions in an external project
          project-hello-rust = "${project}/some-dir";
        }

@tomberek Looks nice. Some questions.

What do you mean with "scopes"?
What will using be responsible for?
How are the per package default arguments declared?

Doesn't seem like a bad idea to start listing requirements. I'll make a start.
Must have:

Packages can declare which (variants of) dependencies that want to inject into their generic parameters
Cross compilation keeps working
Dependencies are memoized (multiple uses of the same derivation cause only one evaluation of the package function)
Package sets can be customized without forking Nixpkgs
A transition path: sufficient compatibility with existing Nixpkgs patterns, back and forth
...

Nice to have (maybe):

Other packages / package sets can be introspected while constructing the overrides

borrowing other packages' choices of dependencies: nix.inputs.boehmgc (not entirely unlike input propagation, but at the eval level, and precise)
omitting packages from a package set based on a condition, previously: self: super: optionalAttrs super.stdenv.isLinux { ..... })

...

The Nixpkgs Architecture Team has now been formed to discuss and develop ideas like this.


timestamppb.timestamp cause "json: cannot unmarshal object into Go value of type string" after upgrade v4.6

Describe the bug

I use golang and upgrade go micro from v4.5 to v4.6
I expected that all of my integration test should pass
What happens instead? My logger print errors below: {"id":"go.micro.client.codec","code":500,"detail":"json: cannot unmarshal object into Go value of type string","status":"Internal Server Error"}
In general it is said go.micro.client.codec has error json: cannot unmarshal object into Go value of type string.

How to reproduce the bug
My message structure in proto file
message Meeting {
    // @inject_tag: json:"start" validate:"required"
    google.protobuf.Timestamp start = 1;
}

The golang structure created by protoc
type Meeting struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// @inject_tag: json:"start" validate:"required"
	Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start" validate:"required"`
}

When I assign value to meeting.Start, the code like:
	meeting.Start = timestamp.New(model.Start) // timestamp imported from "google.golang.org/protobuf/types/known/timestamppb"

There is no such value if I continue using go micro v4.5. I am using libprotoc 3.21.6 and protoc-gen-go v1.27.1
Go Version output:
go version go1.17.13 darwin/amd64

The go env output:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/zhihong/Library/Caches/go-build"
GOENV="/Users/zhihong/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/zhihong/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/zhihong/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.17.13"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/r7/f018pp653m3_fw0xv9jx_tgh0000gn/T/go-build2635807831=/tmp/go-build -gno-record-gcc-switches -fno-common"

Any suggestions welcomed, thanks,
James

Thanks for reporting this! We should definitely look into this. Are there any tests, non specific to your system that you could provide that we could test with?

Hey @gzhhong / James,
just switch the clients DefaultContentType to "application/proto". I would as well switch server AND client to gRPC.
Let me know when you need help.
Kind Regards,
René

@Davincible , Hello David, I upload a test project at https://github.com/gzhhong/test-grpc. I hope I made it clear in the readme and the code.
@jochumdev , Hello Rene, could you please help to correct my sample code if possible?
Thanks both of you.
James

@gzhhong hmm the request is never actually reaching the server on the second one.. interesting. This is gonna take some debugging.
Thanks for the example!

Hey @gzhhong / James,
just switch the clients DefaultContentType to "application/proto". I would as well switch server AND client to gRPC.
Let me know when you need help.
Kind Regards, René

Hello @jochumdev / René ,
How to set DefaultContentType to "application/proto", can you give an example, thank you very much.
It's not okay to write like this
client.DefaultContentType = "application/protobuf"

Then I wrote it like this, and it always feels weird.
client.DefaultContentType = "application/protobuf"
client.DefaultClient = client.NewClient(client.ContentType(client.DefaultContentType))

Thank you !

Hi @tttao7 ,
I recommend something like (untested):
package main

import (
	"go-micro.dev/v4"
	grpcClient "github.com/go-micro/plugins/v4/client/grpc"
	grpcServer "github.com/go-micro/plugins/v4/server/grpc"
)

func main() {
	service := micro.NewService(
		micro.Name("greeter"),
		micro.Server(grpcServer.NewServer()),
		micro.Client(grpcClient.NewClient(client.ContentType("application/protobuf"))),
	)
}

Switching Server & Client to grpc will boost your application a lot AND it will work with protobuf.


SA1119: False positive with switch expression

Directly using the value that a switch expression evaluates to requires the use of parentheses:
var input = 5;
var output = (input switch
    {
        1 => "one",
        _ => "some other number",
    })
    .ToUpper();

StyleCop reports the parentheses as unnecessary, even though removing them results in a compiler error.
(Tested in JetBrains Rider by adding StyleCop.Analyzers from NuGet to an empty project – I hope Rider's own features aren't conflicting here.)

What version of the package were you using? If you are using 1.1.118 then you will see a warning, but if you use the latest prerelease 1.2.0-beta.435 it is no longer warning for me.


Add Stateful example app to blue-green and expand-contract

Elasticsearch cluster added to blue-green and expand-contract
Corresponding updates to READMEs
Update test/make.sh / Makefile

A forthcoming PR will have additional Elasticsearch specific validation.sh scripts for blue-green and expand-contract

The validation scripts for blue-green and expand-contract have been updated for the Elasticsearch cluster in the second commit.


Added the ability to load multiple files with the same domain/locale.

Hello,
I've just tested your bundle and for me the above change allows me to merge two translation files with the same name/locale into a single translation unit. Else the last file will be the only one 'exposed'.
Thank you for your time and effort in writing this bundle, saved me a lot of time and I hope you can consider my change. If you need further details, let me know and I'll gladly offer them to you.
Kind regards.

postponed


why response times chart always no data when i use docker in master/slave?

As mentioned in the question, when I used Windows to start the master and Docker to start the worker to work, Response Times Chart always showed no data at about the 9th collection point. I tried to change Locust version, but it didn't work. This won't happen if my worker is also on one Windows
如题，当我使用windows启动master，docker启动worker进行工作时，response times chart在到大概第9个收集点时候总会显示no data，我尝试换locust的版本，但是这并不起作用，如果我的worker也是在同一台windows上则不会出现此情况
locust version 2.11.0
python version 3.8.13
master in win10
worker in centos's docker container

Did you check logs for errors?
You are very sure that you didn't stop the test? Can you show corresponding status (running, stopped) status of the test? Can your report corresponding users graph?


added ability to set FileNameGenerator from Factory

Hello!
I've added an ability to set FileNameGenerator into FileUpload from FileUploadFactory.
Thank you.

Is there a schedule - for a new release with this feature?

Hi, I just tagged .1.5.1

@adelowo thx


macOS: Setup .app bundle build for Raven

Currently Raven doesn't build an .app bundle for macOS. The user experience would improve a lot, since macOS users are accustomed to using .app for their work. Even better: Drag & dropping a file onto the App bundle could open Raven with that file.

I took a shot at this a while ago for an internal build, but it's more of a proof on concept and needs a lot more polish. Also: No drag & drop. If somebody wants to pick this up, please do.
https://github.com/OpenTimelineIO/raven/pull/18


Incorrect filename from --get-filename option

Situation:
youtube-dl --get-filename "https://www.youtube.com/watch?v=L0MK7qz13bU"
FROZEN - Let It Go Sing-along _ Official Disney HD-L0MK7qz13bU.webm

youtube-dl "https://www.youtube.com/watch?v=L0MK7qz13bU"
WARNING: Requested formats are incompatible for merge and would be merged into mkv.
ls
FROZEN - Let It Go Sing-along _ Official Disney HD-L0MK7qz13bU.mkv

Expected:
youtube-dl --get-filename "https://www.youtube.com/watch?v=L0MK7qz13bU"
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
FROZEN - Let It Go Sing-along _ Official Disney HD-L0MK7qz13bU.mkv

youtube-dl "https://www.youtube.com/watch?v=L0MK7qz13bU"
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
ls
FROZEN - Let It Go Sing-along _ Official Disney HD-L0MK7qz13bU.mkv

Duplicate of #5710.


Fix isInteger function

There is currently a method called isInteger that lives in /lib/isInteger.js.
It is incomplete and needs to be fixed!
Acceptance Criteria:

Running yarn test isInteger results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!

@BlakeGuilloud I would like to work on this 👍

Cool deal @vikene ! I'll apply the 'in progress' label. This buys you 24 hours! I requested a change in the PR you opened. Thanks for your contribution!

I'll take a look at this


BREACH concern: 'text/html' is always compressed

By having text/html "always compressed" you introduce a persistent BREACH risk to your data.
It would be better if you have text/html as the 'default' option for brotli_types, but allow people to override it to exclude text/html MIMEtypes.
By forcing text/html to be compressed all the time, a compressed HTML body containing some secret information could be vulnerable to BREACH.  Adjusting the defaults to allow brotli_types to be overridden to exclude text/html would help to mitigate this risk.
(NGINX upstream has gzip_types always compress text/html which is its own issue, and should probably be overrideable, yet it isn't - this is https://trac.nginx.org/nginx/ticket/1083 to some extent)

Keep in mind that for GZip in NGINX, https://trac.nginx.org/nginx/ticket/1083 has a workaround where you can gzip_types application/javascript text/css; for example to only hit those types, and make it ignore text/html content; if you want to mirror this, this would go a long way, since this is something NGINX already lets you do for GZip - it makes sense to have similar behavior for Brotli.

Oh, I see - this is because the "types" are merged with ngx_http_html_default_types... What a strange decision to add a default that is impossible to turn off.
Will fix soon. Thanks.

@eustas  Yeah, this has a bug in NGINX Trac to try and unbundle the 'default' type of text/html from the "Always Compress" list.  If we can override that in Brotli then the workaround that was stated there becomes even more secure (but further, we can specify compression types to NOT be text/html if we don't want it to be).
I await a nice fix :)

Moved the issue to the upstream


Fix Generic toolbar button for Service model

Purpose or Intent
This will fix problems with showing page for models which dont support supoorts_? and is_available?. But i think, that would be useful if supports_? can return false or nil when method does not exits instead of NoMethodError, but dont know if its possible.
@martinpovolny @lgalis
Parent Issue: #10328
Related Issue: #10434

@miq-bot add_label wip

@miq-bot remove_label wip


Feat: Removes "No route found..." fatal errors

Very annoying! This should be (at most) logged as a warning.

The more I think about this current behaviour the more I dislike it. To be clear I am absolutely LOVING this new createLocalizedPathnamesNavigation feature, I just think the API needs some DX tidy-up.
The current implementation assumes that you have input every valid URL (pages, routes or other) your NextJS site will ever interact with in the pathnames config. Not to mention external links. I think is an unreasonable requirement.
See the following example:

So yes I could do the following, but there will still always be edge cases we cannot catch:
if (href.startsWith('/api') || href.startsWith('http') || href.startsWith('mailto')) {
 return <NextLink href={href} />
} else {
 return <IntlLink href={href} />
}

Wouldn't it be great if we could just use the localized navigation APIs for everything?!
Will update this PR now.

So you can now see that although /unknown URLs do not cause a Typescript error, the autocomplete is still available.

Dynamic URLs will still throw a Typescript error if not specified via urlObject with params.

Let me know what you think, but this feels like we're moving in the right direction 🚀

@amannn I have updated the PR to reflect our discussion - lmk what you think!

@amannn - docs look great, I have added tests for each + typing tests.

@jlalmes Looks great, thanks! I added a commit that fixes some linter issues. Once CI passes, I'll merge and release this.
Thank you for the great PR! 🙌

Out in 3.0.0-beta.16!


Ab/fjetter/nworkers

AB results https://github.com/coiled/benchmarks/actions/runs/5667683049

For some tests the runtime improved by 50% while for others it regressed by... well it's off the charts.
Memory is also interesting. I don't understand why everything is red. IIUC we're still measuring process memory and not total VM memory.

]

FYI you can see all clusters for the CI run in the app at https://cloud.coiled.io/clusters?account=dask-benchmarks&clusterName=&tagFilters=GITHUB_RUN_ID%3A5667683049

FYI you can see all clusters for the CI run in the app at https://cloud.coiled.io/clusters?account=dask-benchmarks&clusterName=&tagFilters=GITHUB_RUN_ID%3A5667683049

That's useful, thanks


try to do inference in ui with tensorflow.js and allow the user to provide their own image

https://www.tensorflow.org/js/tutorials/conversion/import_keras

from efficientnet.tfkeras import EfficientNetB0
model = EfficientNetB0(weights="imagenet", include_top=False, pooling="avg")
import tensorflowjs as tfjs
tfjs.converters.save_keras_model(model, "model_tfjs/")

Sorry but I have a question: How to add a new image without embedding all the image?

faiss indices have a add method


chore: friendly OOM message

I'm not sure if it really works. On my machine, OOM Killer kills Postgres directly when OOM occurs so there is no chance to print a nice message, but I think users can view kernel logs on this condition.
If OOM is detected by our code, only the OOM thread (probably an optimizing thread) will be killed. Then optimizing stops. Users will view our logs to know OOM occurs.
If the background process is killed but Postgres is not killed, the background process just restarts after 1 second. OOM probably occurs again (since it's raisen from an optimizing).
Will it close #208 ?

If the OOM is caused by insert instead of optimize, which thread would be killed, and would be restart?

@cutecutecat The session thread (the thread who communicate with a session process) panics and users can just restart the transaction (in theory).


Why are generated files marked as executable?

Have you read the project documentation?

[x] Yes, but it does not include related information regarding my question.
[ ] Yes, but the steps described do not work.
[ ] Yes, but I am having difficulty understanding it and want clarification.

Describe your question
The executable bit is set high on every file/folder created by goverter. Why is that the case?
Source code
I just ran the example on the getting-started guide.

Note: I also confirmed this behaviour on the latest version.

That's a bug. The generated file shouldn't be executable.

thanks for the quick answer, I was browsing through the code and can patch it if you want

Ahh thanks, I've already created an PR for this (:. Would you like to test / review the changes? (https://github.com/jmattheis/goverter/pull/129)

Fixed in v1.3.2.


Unable to build demo on OS X / Mac M1 - hardcoded nohome-1.1-1

When trying to build a demo, it fails with the error message below.
Building cluster
[+] Building 123.4s (7/51)
[+] Building 123.6s (7/51)
[+] Building 205.5s (18/51)
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 4.03kB                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                0.2s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 1.57kB                                                                                0.0s
 => CACHED [ 1/47] FROM docker.io/library/centos:7@sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407                                                                                0.0s
 => [ 2/47] RUN set -ex     && yum makecache fast     && yum -y install epel-release     && yum -y install        glibc        bzip2        curl        file        gcc        gcc-c++       make        mariadb-devel        mariadb-server  47.2s
 => [ 3/47] RUN set -x     && curl --output slurm-20.11.7.tar.bz2  https://download.schedmd.com/slurm/slurm-20.11.7.tar.bz2     && tar -xf slurm-20.11.7.tar.bz2 > /dev/null                                                                   3.4s
 => [ 4/47] RUN set -x     && cd slurm-20.11.7     && ./configure --disable-debug --prefix=/usr --sysconfdir=/etc/slurm --libdir=/usr/lib64                    --disable-x11 --disable-glibtest --disable-gtktest --without-hdf5 --without-  153.8s
 => [ 5/47] RUN set -x     && rm -rf /slurm-20.11.7  2> /dev/null     && groupadd -r --gid=995 slurm     && useradd -r -g slurm --uid=995 slurm     && mkdir -p /etc/sysconfig/slurm         /var/spool/slurmd         /var/run/slurmd         0.3s
 => [ 6/47] ADD cluster/slurm/*.conf /etc/slurm/                                                                                0.0s
 => [ 7/47] ADD cluster/slurm/*.sh /                                                                                0.0s
 => [ 8/47] RUN chmod 644 /etc/slurm/*.conf && chmod 600 /etc/slurm/slurmdbd.conf  && chown -R slurm:slurm /etc/slurm/*.conf && chmod 755 /*.sh                                                                                0.1s
 => [ 9/47] RUN mkdir /etc/slurm/plugstack.conf.d                                                                                0.1s
 => [10/47] RUN chmod 755 /etc/slurm/plugstack.conf.d                                                                                0.1s
 => [11/47] ADD cluster/slurm/plugstack.conf.d/cscs-slurm-nohome.conf /etc/slurm/plugstack.conf.d/                                                                                0.0s
 => [12/47] RUN mkdir /spank                                                                                0.1s
 => [13/47] ADD cluster/spank/nohome-1.*.rpm /spank/                                                                                0.0s
 => ERROR [14/47] RUN rpm -i /spank/nohome-*.rpm                                                                                0.1s
------
 > [14/47] RUN rpm -i /spank/nohome-*.rpm:
#18 0.097 error: Failed dependencies:
#18 0.097 	libc.so.6(GLIBC_2.2.5)(64bit) is needed by nohome-1.1-1.x86_64
#18 0.097 	libc.so.6(GLIBC_2.4)(64bit) is needed by nohome-1.1-1.x86_64
------
executor failed running [/bin/sh -c rpm -i /spank/nohome-*.rpm]: exit code: 1

After a bit of debugging, the issue seems to be connected to hardcoded and precompiled nohome-1.1-1.x86_64.rpm, which expect x86_64 architecture.
However, centos:7 image on M1 leads to the following data:
[root@b365ada0861e opt]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (AltArch)
[root@b365ada0861e opt]# uname -a
Linux b365ada0861e 5.10.76-linuxkit #1 SMP PREEMPT Mon Nov 8 11:22:26 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

Perhaps building of nohome could be done within the docker as well?

Hello @livenson, we haven't tested on M1 yet and unfortunately we can't provide the source for the RPM now. However, this Slurm plugin is only used to test a feature and doesn't affect the demo.
I propose two options:

use an already built image of the cluster replacing on deploy/demo/docker-compose.yml the build section for the cluster with image: "adabin/f7t-demo-cluster"
or edit deploy/test-build/cluster/Dockerfile and remove lines 68 to 74, but I don't know if it fails on later steps

So far confirming that removing those lines helps to launch - but still struggling with getting access to the services, though everything seems to be fine from logs. Might be again M1-docker networking specifics, still debugging.

Hi @livenson , the docker files were updated to handle this situation.
I'm closing this issue but please feel free to reopen it if there still any problem.
Best,


build folder should have README

otherwise this happens:

Doesn't necessarily have to be the same as the main README, since npm users (and others who just want the build) don't care about e.g. the 'developing and building' section

Took the easy path and copied the regular readme to build, but it is there henceforth :smile:


[CSL-728] Fix and add new tests for 'computeSharesDistr'

Due to tests in 'master' being broken over [CSL-728], they were previously
disabled. In the meantime, a fix was developed, along with more complete
tests for 'computeSharesDistr'.

@rockbmb CSL-728 is closed. Don't work on closed issues. Create new issues if you want to fix something in issue which is already closed.

Also, @rockbmb, it's better to fix warnings directly in master, because PRs are sometimes merged with delay (especially if there are some things which need to be fixed).


Don't see any existing content in bibliotheca

I don't know if it's a matter of authorizations or what, but all 3 categories (books, topics and guides) are empty for me.

Same for me!

Solved


Add orjson.OPT_SERIALIZE_NUMPY to Handle Numpy Serialization in quixstreams

Add ability to serialize numpy float values as part of the quixstreams dumps function by adding OPT_SERIALIZE_NUMPY to orjson options to fix serialization errors using numpy with custom reducers in windowing. Closes #372

Closing the issue.
The workaround for how to customize the serialization can be found here.
Thanks @cale-vdw for bringing this up 👍


Remove ppx_cstruct from dependencies, shorten options

The goal is to move to (a) cstruct-free and (b) smaller binary size.
This is the path towards using the same approach as ocaml-dns (a GADT map), and also what ocaml-tls did in recent years (remove the not supported enums, etc.). While this commit adds code, it removes ppx_cstruct. In subsequent commits, we'll remove more code, and likely result in a smaller (and thus more manageable) codebase.

From 582496 bytes for dhcp_wire.a to 384604 bytes. This PR is ready for review/merge, and at the same time, I have more plans to make the codebase smaller.

Whoah that's really impressive 2MB for unused options! I really like it!

@palainp it's 200kB, not 2MB.. ;)

@palainp it's 200kB, not 2MB.. ;)
Oups, my eyes were buggy ;)

I pushed a final commit which removes the sexplib dependency as well -- and all ppx stuff. instead, we manually construct the strings for the log messages.
reasoning is similar to https://github.com/mirage/mirage-tcpip/pull/505 - it is about maintenance and code size (also build time and dependency cone).


Move cardabbrs.txt to cardabbrs_template.txt

Own cardabbrs.txt won't be lost with a new tuo version.

Note that even if I'll merge this request, the final windows distribution (zip archive) don't depend on these changes and still may contain cardabbrs.txt
Do you really want to see it on source only side?

No if it won't be on sf it isn't important. (I screwd it anyway with an empty carrdabbr.txt wich would replace the original.)


TODO Weekly 11/8-11/14

[ ] Update Flowchart by end of the week #19
[x] ItemWebAnnotation
[x] WebAnnotationImage
[x] Target
[x] Annotation
[x] TextualAnnotation
[x] AnnotationBody

@cliolang We did it! I just tried the library out (node build/main.js after building it) and it generated the Tom and Jerry manifest! It works in Mirador and everything! 🍻  cheers!
Will you take a look at the edits I made to the flowchat? Feel free to delete them if they are not what you are looking for!
I think we are ready to move on to the HTML form, don't you think?

@waltster Oh wow that's a lot sooner than I thought! I am glad it worked! Awesome job Walt :) The flowchart looks good, I'll extra check it and close it tomorrow when I can look more closely at it. I also wanna make an infographic along the manifest to show what parts of the script correspond with whatever part so non technical people could understand what each class is generating.
I'm ready for the HTML form, maybe we can each make a general drawing/sketch of how we think the form should look like and then combine it? Also you went through typing an example HTML form when we last met, do you have a link to helpful documentation on setting up proper sections/elements for the form? What are your opinions of approaching this together?

Thank you! I got sucked into working on it earlier today and I think we finally had all the pieces to make it happen!
For the HTML form, I do not have anything special to point you to besides some general practices that would really help to link the Javascript to the HTML: 1) using unique ids for each <input /> element so the data can easily be read, and 2) making sure most of the data is valid (strings are strings, numbers are numbers, etc) before passing it down the pipeline.
I think we could go ahead and create some ideas of a basic form, make that, then add things. Maybe we could have some goals like:

[ ] 1. Create form with basic manifest metadata
[ ] 2. Add canvas option to form
[ ] 3. Add image option to form
[ ] 4. Add annotation option to form

And then just articulate what properties/values we need to get from the user and we will be all set!
I will get a basic template setup that adds our Typescript work into HTML as plain Javascript tomorrow so we can start working on this whenever you're ready. Really no rush from me, though.

Week goals done!


Remove throws from Date.add(components:) in Date+Math.swift

Hi!
I removed throws from Date.add(components:) in Date+Math.swift because it's impossible to catch errors throws from Date.add(components:) because Error occurs when implicitly unwrap optional at DateInRegion+Math.swift fails.
See the sample screenshot below.

I appreciate you would review this pull request.
Thanks!

Thank you

Release ad part of 4.04


Better handle vendored trees

By making sure -mod=vendor is not used or assumed as default
when there is a vendor/ directory.
make gen also needs the dependencies to be downloaded in the go cache (commands
like go list -m all do not work with -mod=vendor).

Part of https://github.com/istio/istio/issues/25330

In response to a cherrypick label: #25360 failed to apply on top of branch "release-1.6":
error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
M	Makefile.core.mk
Falling back to patching base and 3-way merge...
Auto-merging Makefile.core.mk
CONFLICT (content): Merge conflict in Makefile.core.mk
Patch failed at 0001 Better handle vendored trees

In response to a cherrypick label: new issue created for failed cherrypick: #25366


Mark guidelines in Anni as "missing (not enough data)"

Currently handled by analyze script (see #639)

[ ] Introduce a checkmark to mark a guideline as "missing (not enough data)"
[ ] Add explanation that this is handled by app and done to achieve same behavior in app when guideline is missing
[ ] Should not be counted in indicator
[ ] Should be automatically unstaged
[ ] Remove from analyze script

Introduced explicit "none" guidelines instread


Clarification: neutrino on mainnet?

I believe you can only use neutrino on testnet, is that true? Just wanted to clear this up and help anyone looking for information in the future!

Since the majority of people will probably want to run in a light mode, connecting to a public neutrino serving btcd, is any attention being given to items in neutrino/btcd? I don't see a lot of activity and the recent beta turned off neutrino support :(

@gaillard The spec (BIP157/158) changed slightly, and neutrino needs to be updated to follow this before it can be used on mainnet. It is definitely being given attention :)


Cloud Monitoring: On Cluster Prometheus -> Azure Monitor

As a operator, I want a working example of pushing metrics of Prometheus ot Azure Monitor so that I can utilize an Azure Monitor instance as means to monitor multi cluster deployments.
AC: documentation on how-to and limitations of pushing metrics from Prometheus to Azure Monitor. Store the docs in the KubeMalt Wiki.

Wiki created here. Will continue to update through creation of HLD/fabrikate and open sourced deployment version.


Filter compounds

PR into #75
working on filtering compounds by the portal id list

okay, filtering all the compound scripts (except for the knowledge graph (kg) ones... will do that much later). the overall numbers are still the same, because all of the ids in the input lists are indeed represented in the portal. yea!
also, added a rule back that somehow got deleted :)

Summary:
output_pieces_compound/01-pubchem/
20638
output_pieces_compound/02-glycan/
33754
output_pieces_compound/03-appyter-lincs-chemical-sim/
13448
output_pieces_compound/03-kg/
4102
output_pieces_compound/04-drugcentral/
3602


Kustomize patch issues

Two issues related to patches:

Monokle doesn't always find them (probably a core issue) - see invalid path below
Patches that aren't resources aren't shown in the Kustomize accordion panel - see below, none of the patches referred to in the overlay are shown in the panel

#3863 fixes the file refs - this was an issue with Desktop not passing file paths to core


Dashboard enhancements

I've been thinking about this for a while, and I think it'd be nice

if one could set the default directory for the dashboard. I tried defining a helper function for myself, something like this, but it doesn't seem to work (maybe due to (switch-to-buffer (doom-fallback-buffer) in +doom-dashboard/open?):

(defun doom-dashboard-home ()
  "Open the Doom dashboard at ~/"
  (interactive)
  (let ((default-directory (expand-file-name "~/")))
    (progn
      (cd default-directory)
      (+doom-dashboard/open (selected-frame)))))

if there was an option to disable Doom's behaviour of cding into the directory that contains the file the current buffer is visiting. I'm pretty sure Emacs by default doesn't do this, and Doom's behaviour has been a bit of an annoyance with my Magit workflow when doing magit-status. I have a solution for this (calling magit-status with a prefix arg, which forces it to ask for the repo location even if the current directory is a repo), but ideally there would be an option to disable this behaviour of Doom, either only in the dashboard (related to my previous point) or globally for all buffers.

if there was an option to disable Doom's behaviour of cding into the directory that contains the file the current buffer is visiting.

The default behavior of Doom's dashboard (when switching to it) is to cd into the project root of the last buffer you had open. I do this because it's annoying to accidentally close the last project buffer, land on the dashboard, and suddenly be in another project.
That said, I'll look into adding an option to change (and disable) this behavior.

or globally for all buffers.

Globally?  If so, I sympathize. I prefer that behavior too. Alas, this is an Emacs thing that can't be changed. I've gotten used to it. I've even added autocmd BufEnter * silent! lcd %:p:h to my vimrc.
That said, this should not interfere with magit. Magit seeks out the nearest git root from the current directory upward. So unless you have nested git repos, I don't understand why it gives you trouble. Could you shed some more like on how it interferes with your workflow?

Just added +doom-dashboard-pwd-policy to ui/doom-dashboard. To replicate your doom-dashboard-home you can set this to a fixed path string:
(setq +doom-dashboard-pwd-policy "~")

Perfect, thanks!
Also, yup, I do come from vim 😁 Although that was a good 3-4 years ago.
As for my workflow, I just went and dug up my old Emacs config and trying to remember my old workflow, I realized part of what I remembered about it was wrong. So on my old setup, just like Doom's, magit-status would open up the current git repo (if the current dir is one); so there's no difference there. But what I did realized differed was when closing the last buffer, I'd go back to *scratch*, whose cwd doesn't change (is the same one Emacs starts with, in my case ~/, which is not a git repo), so I could easily do magit-status and switch to whatever other project I wanted. Whereas in Doom, closing the last buffer would bring up the dashboard which as you said, up to today, its cwd would be the project root of the last open buffer. Therefore, after closing the last buffer or invoking my "open dashboard" binding I wouldn't get to choose the git repo I'd like to switch to next.
Btw I see you made +doom-dashboard-pwd-policy even more flexile than my [current] preference. That's great, kudos!

@hlissner It seems like one of the commits in range 86f445d..HEAD (probably 86f445d itself) "broke" +doom-dashboard-pwd-policy, as setting it to ~/ doesn't seem to have any effects (e.g. Doom still starts with ~/.emacs.d/ as dashboard's directory). 6c3d7ad works fine though.

I noticed some inconsistencies to when the dashboard decided to update the pwd, and discovered +doom-dashboard-reload wasn't always reloading the dashboard (a performance feature). So I moved the pwd-updating code outside of the condition and it (seem to) work perfectly now. Let me know if it gives you any trouble!

Actually, this issue runs even deeper and needs further investigation, so I'll consider this issue unresolved until I make some much needed improvements to buffer management in general in Doom.

Thanks for the update and for looking into this. I'll keep an eye on develop then :)

Alright, with the latest chain of updates this should be fixed. Give it a try and let me know if it gives you trouble!

Seems to be working great, thanks!

Hmm was there a change in the logic that handles closing of buffers/windows? I just noticed that doing q in notmuch doesn't close any of its buffers anymore. Same with doing C-c C-k in notmuch-message-mode, or q in ibuffer (and probably more).

What is C-c C-k bound to?

Yeah, basically. it's bound to message-kill-buffer (from message-mode).

Turns out this is standard Emacs behavior. In most of these buffers q is bound to quit-buffer, which doesn't kill the contained buffer. I'm tempted to add something like:
(defun doom*quit-window (orig-fn &optional kill window)
  (funcall orig-fn (not kill) window))
(advice-add #'quit-window :around #'doom*quit-window)

In fact, I think I'll run with this for a while. It's rare that I don't want the buffer killed with the window.
That said, I expect corner case issues, possibly with magit. If you're a magit user, could you give this a try?

Hmm, what is Emacs's standard behaviour?
Adding that advice doesn't seem to have any effects. I still can't close various notmuch buffers with q and message-mode with C-c C-k.
Also, I just tested and it seems like magit-status is unaffected by this issue. However, ibuffer is acting weird: before this issue appeared, it didn't have Doom's modeline, and pressing q would quit. With this issue, pressing q makes the Doom modeline show up and pressing it again will quit. But with notmuch pressing q doesn't do anything.

Hmm, what is Emacs's standard behaviour?

That said, I'm looking into the notmuch issue. As for ibuffer, could you try:
(setq ibuffer-use-other-window t)

This should make Doom's popup system handle ibuffer windows, which comes with the added benefit of buffer management (and removal of the mode-line) for its window.


How can I connect to a sqlite3 database file?

I am reviewing the command line options but do not understand how to connect to a sqlite3 database.  I have a file.db and the table name is account.  I want to create output suitable for a gorm model.
What command line options should I use?

sqlType     = goopt.String([]string{"--sqltype"}, "mysql", "sql database type such as mysql, postgres, etc.")
sqlConnStr = goopt.String([]string{"-c", "--connstr"}, "nil", "database connection string")

sqlDatabase = goopt.String([]string{"-d", "--database"}, "nil", "Database to for connection")
sqlTable = goopt.String([]string{"-t", "--table"}, "", "Table to build struct from")


docker 3.2.7 /bin/sh: [/vearch/vearch: No such file or directory

Hello,
I am running the image from docker and get an error.

Executing task: docker run --rm -it  vearch/vearch:3.2.7 <

/bin/sh: [/vearch/vearch: No such file or directory
The terminal process "bash '-c', 'docker run --rm -it  vearch/vearch:3.2.7'" terminated with exit code: 127.
could you please take a look or share the Docker file or document of how to build an image from source code?
Thanks,
Robin

What is the docker command you executed?
please run this cmd:
docker run -p 8817:8817 -p 9001:9001 --name vearch -v $PWD/config.toml:/vearch/config.toml vearch/vearch:3.2.7 all
others:
start master:
docker run -p 8817:8817 -p 9001:9001 --name vearch -v $PWD/config.toml:/vearch/config.toml vearch/vearch:3.2.7 master
start router:
docker run -p 8817:8817 -p 9001:9001 --name vearch -v $PWD/config.toml:/vearch/config.toml vearch/vearch:3.2.7 router
start ps :
docker run -p 8817:8817 -p 9001:9001 --name vearch -v $PWD/config.toml:/vearch/config.toml vearch/vearch:3.2.7 ps
config.toml reference：
[global]
# the name will validate join cluster by same name
name = "cbdb"
# you data save to disk path ,If you are in a production environment, You'd better set absolute paths
data = ["datas/","datas1/"]
# log path , If you are in a production environment, You'd better set absolute paths
log = "logs/"
# default log type for any model
level = "debug"
# master <-> ps <-> router will use this key to send or receive data
signkey = "secret"
# skip auth for master and router
skip_auth = true
# tell Vearch whether it should manage it's own instance of etcd or not
self_manage_etcd = false
# automatically remove the failed node and recover when new nodes join
auto_recover_ps = false
# support access etcd basic auth,depend on self_manage_etcd = true
support_etcd_auth = false
# ensure leader-follow raft data synchronization is consistent
raft_consistent = false
# unified master and router api
master_merge_into_router = false
self_manage_etcd = true,means manage etcd by yourself,need provide additional configuration
[etcd]
#etcd server ip or domain
address = ["<IP_ADDRESS>"]
# advertise_client_urls AND listen_client_urls
etcd_client_port = 2379
# provider username and password,if you turn on auth
user_name = "root"
password = ""
if you are master you'd better set all config for router and ps and router and ps use default config it so cool
[[masters]]
#name machine name for cluster
name = "m1"
#ip or domain
address = "<IP_ADDRESS>"
# api port for http server
api_port = 8817
# port for etcd server
etcd_port = 2378
# listen_peer_urls List of comma separated URLs to listen on for peer traffic.
# advertise_peer_urls List of this member's peer URLs to advertise to the rest of the cluster. The URLs needed to be a comma-separated list.
etcd_peer_port = 2390
# List of this member's client URLs to advertise to the public.
# The URLs needed to be a comma-separated list.
# advertise_client_urls AND listen_client_urls
etcd_client_port = 2370
pprof_port = 6062
# monitor
monitor_port = 8818
[router]
# port for server
port = 9001
# rpc_port = 9002
pprof_port = 6061
plugin_path = "plugin"
[ps]
# port for server
rpc_port = 8081
ps_heartbeat_timeout = 5 #seconds
#raft config begin
raft_heartbeat_port = 8898
raft_replicate_port = 8899
heartbeat-interval = 200 #ms
raft_retain_logs = 20000000
raft_replica_concurrency = 1
raft_snap_concurrency = 1
raft_truncate_count = 500000
#when behind leader this value,will stop the server for search
raft_diff_count = 10000
# engine config
engine_dwpt_num = 8
# max size byte
# max_size = 50000000
pprof_port = 6060
# if set true , this ps only use in db meta config
private = false
# seconds
flush_time_interval = 600
flush_count_threshold = 200000


fix(toolkit): do not deploy empty stacks

Do not deploy stacks without resources and issue a warning.
See also discussion https://github.com/awslabs/aws-cdk/issues/3142#issuecomment-507216326

Please read the contribution guidelines and follow the pull-request checklist.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

I wonder if we shouldn't destroy empty stacks if they already exist? Or inject some dummy resource in the empty stacks (like a WaitConditionHandle)? This might end up being a somewhat more natural way to handle cases of stacks that have been delayed non-empty, and now are becoming empty...

@RomainMuller have you decided what should happen with destroy and empty stacks? Something for this PR?

@jogold:

destroy should be idempotent - if you try to destroy a stack that does not exist, it's instant success!
if we don't deploy empty stacks, we need to check if the stack exists & destroy it if it does.

if we don't deploy empty stacks, we need to check if the stack exists & destroy it if it does.

@RomainMuller updated PR to address this.

We need integration tests for this

You mean with cdk-integ-tools or something custom for this? Any guidance?

We need integration tests for this

done


[MPG] Fix sop_class errors.

Reference issue
From DICOM Storage Classes UID Reference, we learn that
'DigitalXRayImageProcessingStorage' should be '1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>.1' instead of '1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>.1.1' . Due to mismatch, pynetdicom will produce 'not found error' for  'DigitalXRayImageProcessingStorage' class.
Tasks

[ ] Unit tests added that reproduce issue or prove feature is working
[X] Fix or feature added
[ ] Documentation updated (if relevant)
[X] Unit tests passing after adding fix/feature
[X] Apps updated and tested (if relevant)

Thanks!


Split into multiple documents

Proposal: 1) Introduction 2) MR 3) MEG 4) appendixes

FYI Just noticed there is a repeat of the "inheritance principle" section in the intro and the common principles parts.

Would you mind opening a separate issue about this?


Problem with RVM

Hi,
I am using rails app with RVM and I am using prax.. I could not get my app running even I followed rvm wiki page for prax.
Here is the log.
 PRAX_DEBUG=1 prax start --foreground
RVM project not found at: /home/ru2
ruby: warning: RUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead.
ruby: warning: RUBY_HEAP_MIN_SLOTS is obsolete. Use RUBY_GC_HEAP_INIT_SLOTS instead.
I, [2015-07-07T12:30:49.257646 #5889]  INFO -- : Prax is ready to receive connections on :20559 and :20558.
I, [2015-07-07T12:30:59.864210 #5889]  INFO -- : Spawning application 'market_place_api' [/home/ru2/market_place_api]
D, [2015-07-07T12:30:59.866176 #5889] DEBUG -- : ["/opt/prax/bin/racker", "--server", "/home/ru2/.prax/_sockets/market_place_api.sock"]
/home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound)
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/spec_set.rb:85:in `map!'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/spec_set.rb:85:in `materialize'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:132:in `specs'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:177:in `specs_for'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:166:in `requested_specs'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/environment.rb:18:in `requested_specs'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/runtime.rb:13:in `setup'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler.rb:122:in `setup'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/setup.rb:17:in `<top (required)>'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
E, [2015-07-07T12:31:14.358010 #5889] ERROR -- : ArgumentError: bad argument (expected URI object or URI string)
  /home/ru2/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb:1234:in `URI'
  /opt/prax/lib/prax/request.rb:136:in `determine_host'
  /opt/prax/lib/prax/request.rb:75:in `host'
  /opt/prax/lib/prax/handler.rb:66:in `app_name'
  /opt/prax/lib/prax/handler.rb:17:in `handle'
  /opt/prax/lib/prax.rb:21:in `perform'
  /opt/prax/lib/prax/microworker.rb:84:in `block in work'
  /opt/prax/lib/prax/microworker.rb:77:in `each'
  /opt/prax/lib/prax/microworker.rb:77:in `work'
  /opt/prax/lib/prax/microworker.rb:63:in `block in spawn'
I, [2015-07-07T12:31:14.358206 #5889]  INFO -- : Respawning failed worker
D, [2015-07-07T12:31:29.872559 #5889] DEBUG -- : Killing market_place_api (6114)...

This duplicates #128

I'm afraid I can't provide much help about RVM. I'm not using it, and I don't use any version manager anymore —I use the Ruby packages from Brightbox.
If anybody knows RVM and wants to help, please do!


Refactor using Policy Composition

[ ] Externalize all policy not related to tiering, e.g.
data movement
access time
metadata management
[ ] utilize the data object modified event handler and default delayed execution
[ ] factor code into policy engines
[ ] include issue #96

This work is now externalized into a new repository due to the lack of backwards compatibility.  This repository will now house only the Unified Storage Tiering plugin.


Method returning HTTP Status Code: 404 - No returned data

I've run into a few methods that return HTTP Status Code: 404 - No returned data, even though I can see data in the Dashboard that I would expect to be returned.
For instance,

meraki.getnetworklist(apikey, orgid)
HTTP Status Code: 404 - No returned data

meraki.getorginventory(apikey, orgid)
HTTP Status Code: 404 - No returned data

This orgid definitely has networks with devices in it that I can view from Dashboard. Using different orgid's and the same call may give me data, or may give me the 404.
Any ideas?

Easy fix... A handful of my Orgs didn't have API access enabled.

I found the issue.  When you add a switch to a network it must take 2min or so before you can configure the switch ports via the api.  I adjusted the work flow and have had the issues.


Name scoping error in pattern match lambda

\{ a, b: ob, c } -> seemingly introduces b into scope, when only a, ob and b should be introduced. In my case, b shadowed an outer let-bound variable also called b, so intellij-purescript thought that outer let-bound value was unused.
This should be a small example, and it seems to reproduce the same issue:
f =
  let b = 42
  in \{ a, b: ob, c } -> b

Did you mean purescript instead of haskell?

Yes, I meant purescript. Edited :)


What about a new module release?

Currently the module version is: Version 1.2.0 released May 22nd 2015
May I suggest to build a new one in order to take into account the last commits?

I second that!  I'm already using some of the features committed since 1.2.0.

+1

2.0.0 released.


Better error message when not allowed to change nickname

If the person whose nickname needs to be changed has a role higher in the role list than the bot - including being the owner of the server - then the error message is messy. We should catch this error message and send an explanation about what can be done to fix it, e.g.:

Attempted to change nickname "Colin" to "(ST) Colin" but was unable. This is likely for one of these reasons:

Colin has a role that is higher in the role list than the Bot on the Clocktower role
Colin is the owner of the server
Bot on the Clocktower needs to be re-invited to the server to grant it nickname-changing permissions

This could be sent to the mover channel rather than being a private message

Because this is going to affect server owners as well, which is really annoying to fix, I think the best bet here is to just silently fail it.


I have been unable to run Xopt with Python 3.11. that has pydantic version 2.5.3

Steps that lead to my issue with pydantic validator:

my python distribution is installed via latest Anacoda that comes with Python 3.11.5;
I then installed Xopt v 2.2 from conda-forge into a conda environment;
I am using a working YAML input to setup Xopt run but get the following error (Partially redacted)
Traceback (most recent call last): File "[.]/run_xopt.py", line 21, in <module>   X = Xopt(config="xopt.in.yaml")       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "[.]/anaconda3/envs/xopt-gpt/lib/python3.11/site-packages/xopt/base.py", line 220, in __init__   super().__init__(**kwargs) File "[.]/anaconda3/envs/xopt-gpt/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__   __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) File "[.]/anaconda3/envs/xopt-gpt/lib/python3.11/site-packages/xopt/base.py", line 132, in validate_model   if isinstance(data["vocs"], dict):                 ~~~~^^^^^^^^ KeyError: 'vocs'

My current solution is to create a conda environment with Python=3.9 that results in Python 3.9.18 and repeat Xopt installation steps. The resulting version of pydantic is 1.10.12 despite requirements.yaml on GitHub saying "pydantic>=2.3".

After spending two days trying to make xopt+gpt to work on institutional cluster, I have realized that Xopt version that works for me is 1.4.1; I managed to install it by limiting pydantic<2.0; I am still not sure my I get an error above with the latest Xopt version pydantic 2.6.1

You should use everything from conda-forge, including Python. Try a clean environment using: https://github.com/ChristopherMayes/Xopt/blob/main/environment.yml

I have been using old code to launch Xopt so I have finally figured out what has changed:

The current version of Xopt does not do Xopt(config="xopt.in.yaml");
One has to do Xopt.from_file("xopt.in.yaml");
Finally xopt:max_evaluations: 1000 is no longer allowed and one needs to do max_evaluations: 1000 instead.


does extern keyword actually affect a function's calling convention?

According to the Book

The pub means that this function should be callable from outside of this module, and the extern says that it should be able to be called from C. That’s it! Not a whole lot of change.

and from the FFI chapter

The extern block is a list of function signatures in a foreign library, in this case with the platform's C ABI.

as well as here:

The extern makes this function adhere to the C calling convention, as discussed above in "Foreign Calling Conventions".

However, when I actually compile pub extern non-mangled rust functions on x86-64 systems, i.e.:
#![crate_type = "dylib"]

#[no_mangle]
pub extern fn beef_float (x: f64, y: f64) -> f64 {
    x * y
}

#[no_mangle]
pub extern fn beef_maximum (x: u64, y: u64) -> u64 {
    if x >= y {
        x
    } else {
        y
    }
}

#[no_mangle]
pub extern fn beef_stack (d: u64, e: u64, a: u64, d2: u64, b: u64, e2: u64, a2: u64, f: u64) -> u64 {
    return 0xefbeadde + d + e + a + d2 + b + e2 + a2 + f;
}

#[no_mangle]
pub extern fn beef_pointer (p: &u64, x: u64) -> u64 {
    return *p + x + 0xdeadbeef;
}

with something like rustc -O -C prefer-dynamic, I don't actually see any difference in generated libraries' ABI calling convention, i.e., it's still the standard System V x86-64 calling conventions.
E.g., with extern keyword:
(gdb) disass beef_stack
Dump of assembler code for function beef_stack:
   0x0000000000000730 <+0>:	lea    (%rdi,%rsi,1),%rsi
   0x0000000000000734 <+4>:	add    %rdx,%rsi
   0x0000000000000737 <+7>:	add    %rcx,%rsi
   0x000000000000073a <+10>:	add    %r8,%rsi
   0x000000000000073d <+13>:	add    %r9,%rsi
   0x0000000000000740 <+16>:	add    0x8(%rsp),%rsi
   0x0000000000000745 <+21>:	add    0x10(%rsp),%rsi
   0x000000000000074a <+26>:	mov    $0xefbeadde,%eax
   0x000000000000074f <+31>:	add    %rsi,%rax
   0x0000000000000752 <+34>:	retq
End of assembler dump.
(gdb) disass beef_float
Dump of assembler code for function beef_float:
   0x0000000000000710 <+0>:	mulsd  %xmm1,%xmm0
   0x0000000000000714 <+4>:	retq
End of assembler dump.
(gdb) disass beef_maximum
Dump of assembler code for function beef_maximum:
   0x0000000000000720 <+0>:	cmp    %rsi,%rdi
   0x0000000000000723 <+3>:	cmovb  %rsi,%rdi
   0x0000000000000727 <+7>:	mov    %rdi,%rax
   0x000000000000072a <+10>:	retq
End of assembler dump.
(gdb) disass beef_pointer
Dump of assembler code for function beef_pointer:
   0x00000000000007b0 <+0>:	add    (%rdi),%rsi
   0x00000000000007b3 <+3>:	mov    $0xdeadbeef,%eax
   0x00000000000007b8 <+8>:	lea    (%rax,%rsi,1),%rax
   0x00000000000007bc <+12>:	retq
End of assembler dump.

and without extern:
(gdb) disass beef_stack
Dump of assembler code for function beef_stack:
   0x0000000000000770 <+0>:	lea    (%rdi,%rsi,1),%rsi
   0x0000000000000774 <+4>:	add    %rdx,%rsi
   0x0000000000000777 <+7>:	add    %rcx,%rsi
   0x000000000000077a <+10>:	add    %r8,%rsi
   0x000000000000077d <+13>:	add    %r9,%rsi
   0x0000000000000780 <+16>:	add    0x8(%rsp),%rsi
   0x0000000000000785 <+21>:	add    0x10(%rsp),%rsi
   0x000000000000078a <+26>:	mov    $0xefbeadde,%eax
   0x000000000000078f <+31>:	add    %rsi,%rax
   0x0000000000000792 <+34>:	retq
End of assembler dump.
(gdb) disass beef_float
Dump of assembler code for function beef_float:
   0x0000000000000750 <+0>:	mulsd  %xmm1,%xmm0
   0x0000000000000754 <+4>:	retq
End of assembler dump.
(gdb) disass beef_maximum
Dump of assembler code for function beef_maximum:
   0x0000000000000760 <+0>:	cmp    %rsi,%rdi
   0x0000000000000763 <+3>:	cmovb  %rsi,%rdi
   0x0000000000000767 <+7>:	mov    %rdi,%rax
   0x000000000000076a <+10>:	retq
End of assembler dump.
(gdb) disass beef_pointer
Dump of assembler code for function beef_pointer:
   0x00000000000007b0 <+0>:	add    (%rdi),%rsi
   0x00000000000007b3 <+3>:	mov    $0xdeadbeef,%eax
   0x00000000000007b8 <+8>:	lea    (%rax,%rsi,1),%rax
   0x00000000000007bc <+12>:	retq
End of assembler dump.

I.e., the functions produced are the same, and the parameters are passed in the expected registers or on the stack, all according to the X86-64 System V calling conventions.
Similarly on OSX:
(lldb) disass -n beef_float
good.dylib`beef_float:
good.dylib[0xe40] <+0>:  cmpq   %gs:0x330, %rsp
good.dylib[0xe49] <+9>:  ja     0xe65                     ; <+37>
good.dylib[0xe4b] <+11>: movabsq $0x8, %r10
good.dylib[0xe55] <+21>: movabsq $0x0, %r11
good.dylib[0xe5f] <+31>: callq  0xf37                     ; __morestack
good.dylib[0xe64] <+36>: retq
good.dylib[0xe65] <+37>: pushq  %rbp
good.dylib[0xe66] <+38>: movq   %rsp, %rbp
good.dylib[0xe69] <+41>: mulsd  %xmm1, %xmm0
good.dylib[0xe6d] <+45>: popq   %rbp
good.dylib[0xe6e] <+46>: retq
good.dylib[0xe6f] <+47>: nop

(lldb) disass -n beef_float
bad.dylib`beef_float:
bad.dylib[0xd90] <+0>:  cmpq   %gs:0x330, %rsp
bad.dylib[0xd99] <+9>:  ja     0xdb5                     ; <+37>
bad.dylib[0xd9b] <+11>: movabsq $0x8, %r10
bad.dylib[0xda5] <+21>: movabsq $0x0, %r11
bad.dylib[0xdaf] <+31>: callq  0xe87                     ; __morestack
bad.dylib[0xdb4] <+36>: retq
bad.dylib[0xdb5] <+37>: pushq  %rbp
bad.dylib[0xdb6] <+38>: movq   %rsp, %rbp
bad.dylib[0xdb9] <+41>: mulsd  %xmm1, %xmm0
bad.dylib[0xdbd] <+45>: popq   %rbp
bad.dylib[0xdbe] <+46>: retq
bad.dylib[0xdbf] <+47>: nop

(although it's unclear to me why the optimization flag on OSX doesn't remove the unnecessary frame pointer calculations and book-keeping)
So I'm curious about:

what (if any) difference including/excluding the extern keyword on rust shared library function definitions is ideally supposed to cause.
what kind of functions might be subject to this change, if there is one
if it does nothing, why is it present/suggested?

I imagine there is some case in which the extern keyword does something (in which case it would be nice if the documentation red flags these cases), or perhaps currently it does do nothing, but in the future extern guarantees "C ABI" calling conventions (x86-64 System V ABI on Linux/OSX), whereas functions without extern present may or may not be free to use an entirely different calling convention?

This might make more sense filed on rust-lang/rust rather than rust-lang/cargo.
The Rust ABI mirrors the standard calling convention in many cases, but not all. For example, our handling of aggregates passed by value differs from the standard C calling convention at least on some systems, IIRC. It may start diverging more over time, as well.

@sfackler oh dear, my apologies, i accidentally posted here :/
will repost on lang, sorry about that.


sriov: raise proper exception when SR-IOV parameter is not supported

Some SR-IOV parameters could be not supported by the device driver.
Nmstate must return a proper error message instead of a generic one.
2020-05-03 12:35:19,728 root         ERROR    NM main-loop aborted:
The device=eno1 does not support one or more of the SR-IOV parameters
set.

Ref: https://bugzilla.redhat.com/1819588
Signed-off-by: Fernando Fernandez Mancera<EMAIL_ADDRESS>

Rebased, thanks!


Missing 'use strict' issue introduced in 2.1.9-rc1

I've noticed several files with "use strict" in the top-level function have started failing jshint since 2.9.1-rc1 was published, with the message of a missing "use strict" statement. Anyone else noticed this?

Can you provide an example?

Yes I have noticed this too.
See: https://travis-ci.org/smart-facility/cognicity-reports-powertrack/builds/90874359

@benatwork99 You get different warnings:

Incompatible values for the 'strict' and 'globalstrict' linting options.

JSHint reports this warning when you use both strict: global and globalstrict (#2703)

Read only.

It looks like -W020 doesn't work anymore. Can you open a new issue?

I also have this problem.

@randspy Can you provide an example / a link to a file to reproduce this issue?

Might have actually just been a bugfix related to strict: "global" that revealed something in my project that was actually not right. The failing files all looked like this:
/*globals describe*/
describe('foo', function() {
  'use strict';
  // ...
});

In 2.8, this was passing with "strict": "global" in my .jshintrc

The strict option requires statements different from function declarations and IIFEs to be in strict mode. strict: true doesn't warn about global level code (while strict: global does) because it doesn't allow the use of a global "use strict" directive.
In 2.8.0, using strict: true, globalstrict: true you didn't get the error because jshint didn't warn when invocations and other expressions were not in strict mode: (fixed in #2678)
describe(); // jshint didn't warn
var a = 2;   // 'Missing "use strict" statement.', ok

In 2.8, this was passing with "strict": "global" in my .jshintrc

strict: global was introduced in JSHint 2.9.0, so in 2.8.0 it was interpreted as strict: true

@nicolo-ribaudo You are correct re. the different warnings, I should have read more carefully. Thanks for opening the new issue, I only got back to this today.

I think this is safe to close, but @lukeapage's recent assignment of the "Regression" label suggests otherwise. Luke: can you explain the regression here?

Although the distinction between "regression" and "bug fix" is sometimes
subjective, we're lucky in this case because it's fairly cut-and-dry. JSHint
2.8.0's documentation for the strict option explicitly described the
sub-optimal behavior:

Note: This option enables strict mode for function scope only. It
prohibits the global scoped strict mode because it might break
third-party widgets on your page. If you really want to use global
strict mode, see the globalstrict option.

...so changing that is a regression.
It's taken me a while to recognize that because the change is otherwise an
improvement (it helps users write more code in strict mode in a safe way). It
wasn't until gh-2810 that I reviewed the old documentation.
@hughes I appreciate your courtesy when you say, "it probably should have been
failing all along," but I have a feeling many of our users would not be so
forgiving if the new error you reported appeared in a minor release.
For anyone following this discussion: I've submitted gh-2822 to preserve the
legacy behavior. My short-term recommendation would be to use strict: global
for Node.js code. We can make this unnecessary in JSHint 3; strict: true can
"do the right thing" depending on the rest of the configuration.

@jugglinmike This issue can be closed

Right-o


detect uBlock Popup blocker

We have just had one of our clients, say to us that they use uBlock and they tried to do a payment on our website, which requires a popup to launch and them to verify the card owner details with their bank (normally done via SMS or an Auth app)
However uBlock blocked the popup, which has now caused the customer grief.
Describe the solution you'd like
We would like to be able to disable the submit button or/and display a banner saying please disable uBlock  for this website.
this one (https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm)

should be resolved with v1.2.0, #26


fix type consistency in jni wrapper code

fix warnings from jni wrapper casting types.
This is small enhancement that I felt necessary to fix during investigation of #220

looks nice


running lhm with binlog on

Hello,
How can you run lhm with binlog turned on?
Creating/Dropping triggers fails because the user running the migration does not have SUPER privileges.

maybe we should enable and disable this before/after the migration is done.
Can anyone confirm if pt-online-schema does that ?! cc @camilo

Setting GLOBAL variables requires SUPER privilege in the first place. This would need to be granted by the DB admin anyway so we can't automatically change it before/after the Lhm run.
show global variables like 'log_bin%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | ON    |
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+

I guess we could check for log_bin == "ON" && trust == "OFF" and abort the migration before starting, but I'm not sure that's worth it either. I'd say let it fail and leave it up to the user to decide.
Just for background:
MySQL's paranoia here is because the binary log records the SQL commands and not the actual stored data so functions must always be deterministic -- avoid NOW(), UUID() etc.
Using set GLOBAL log_bin_trust_function_creators = 1 just means users who already have ALTER ROUTINE are trusted to create functions. It's still up to you to design sane stored procedures either way... if you trust the migration script you should allow it on your server, or just run migrations with a user that has SUPER.

if you trust the migration script you should allow it on your server, or just run migrations with a user that has SUPER.

I agree, there is no way LHM can do its job without enough perms, and

Setting GLOBAL variables requires SUPER privilege in the first place.


Push.isEnabled() is not working

What App Center service does this affect?
Appcenter Push Notification
Describe the bug
I cannot check the Push.isEnabled, it returns an error :
Cannot read property 'isEnabled' of undefined.
To Reproduce
I'm trying to simple console.log the Push.isEnabled() result.
Expected behavior
I expected to get the boolean result of isEnabled
Screenshots
Thats the result of my console.log("PUSH",Push)

Thats the result of my console.log(pushEnabled) after const pushEnabled = await Push.isEnabled();

Desktop (please complete the following information):

OS: Android
Browser Chrome

Smartphone (please complete the following information):

Device: Moto G5
OS: Android 8.1.0

It also affects the Push.setEnabled.
In some way Push is becoming undefined after i do the console.log("PUSH",Push).
It is imported on the top of the component.
import Push from 'appcenter-push';

Looks like react-native link appcenter-push did not do its job.
My MainApplication.java was not updated, so i ran react-native unlink appcenter-push and then ran react-native link appcenter-push and added the following lines:
import com.microsoft.appcenter.reactnative.push.AppCenterReactNativePushPackage;
...
            new AppCenterReactNativePushPackage(MainApplication.this),

And now it's working good, so i'm closing this issue.


Update the bounding box using an interval rather than a timeout

Fixes #34
Fixes #11
Fixes #16
Fixes #19
Fixes #27
Fixes #31
Fixes #33

Also fixes issue with binding / modifying dataurl.