Some packages do not use absolute gapplication path in desktop files

Issue description
Icons are missing in the menu for some applications. At least Gnome Maps and Gnome Weather.
Application are installed and can be invoked by command lines. It seems that it is just .desktop files that are missing.
Steps to reproduce
Install Gnome Maps and/or Gnome Weather. Related icons won't show in the Gnome Menu.
This can be worked around by creating .desktop files in ~/local/share/applications for the user.
Technical details

system: "x86_64-linux"
host os: Linux 4.14.88, NixOS, 18.09.1676.7e88992a8c7 (Jellyfish)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.1.3
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Do you mean that you have installed the packages with nix-env and bash -c 'IFS=:; for d in $XDG_DATA_DIRS; do find "$d" -name org.gnome.Weather.Application.desktop; done' returns no output?
Please note that GNOME Shell might need to be restarted for newly installed applications to appear due to a Freedesktop spec bug: https://github.com/NixOS/nixpkgs/issues/12757

Well, Gnome Maps and Gnome Weather seem to be installed by default with Gnome. I guess services.xserver.desktopManager.gnome3.enable = true; in configuration.nix is enough to have it installed.
But, to further investigate, I did execute the commands you suggested:

nix-env -i gnome-weather
bash -c 'IFS=:; for d in $XDG_DATA_DIRS; do find "$d" -name org.gnome.Weather.Application.desktop; done'

Result:
/home/user/.nix-profile/share/applications/org.gnome.Weather.Application.desktop
/run/current-system/sw/share/applications/org.gnome.Weather.Application.desktop

So, there actually is a .desktop file, for Weather. For Maps, there is also a .desktop file: ``.
/home/user/.nix-profile/share/applications/org.gnome.Maps.desktop
/run/current-system/sw/share/applications/org.gnome.Maps.desktop

(Notice: it's Maps.desktop and not Maps.Application.desktop)
On another computer, still in 18.03, with Gnome installed (services.xserver.desktopManager.gnome3.enable = true;) and not having run nix-env, I only have:
/run/current-system/sw/share/applications/org.gnome.Weather.Application.desktop

I'm not (yet) super proficient with Nix, but I understand that there is a system wide file installed from configuration.nix and a user specific one installed with nix-env. Seems good.
For Weather, in both 18.03 system wide desktop file and 18.09 user specific desktop file, we have:
Icon=org.gnome.Weather
For the desktop file of Gnome Photos, which is an application showing a proper icon in the menu, I have multiple Icon entries, with localizations. E.g. Icon[fr]=org.gnome.Photos.
The cause could be either the missing localization of icons in the desktop file; or a failure to link org.gnome.Weather with any actual icon file path.

I am not certain if the whole application entry was missing in the menu, or just that a question mark was displayed above the name instead of the proper icon. Could you clarify which one is the case?

Well, Gnome Maps and Gnome Weather seem to be installed by default with Gnome. I guess services.xserver.desktopManager.gnome3.enable = true; in configuration.nix is enough to have it installed.

Yep, that should be enough if you do not exclude them using environment.gnome3.excludePackages.

* `nix-env -i gnome-weather`

I was only trying to determine if you installed the apps using nix-env or through configuration.nix. Either one should be enough.

(Notice: it's Maps.desktop and not Maps.Application.desktop)

The name does not really matter; the .Application suffix is just something the Weather authors decided to do for some reason.

For the desktop file of Gnome Photos, which is an application showing a proper icon in the menu, I have multiple Icon entries, with localizations. E.g. Icon[fr]=org.gnome.Photos.

The non-localized Icon key is used as fallback so that should not be the case.

I am not certain if the whole application entry was missing in the menu, or just that a question mark was displayed above the name instead of the proper icon. Could you clarify which one is the case?

No menu entry whatsoever is showing when hitting the meta key and searching both in the entire grid or by typing a few character for « Weather » or « Météo » (its name in French). No question mark icons.

The non-localized Icon key is used as fallback so that should not be the case.

After having double checked, I noticed that there is actually also a non localized Icon entry in the desktop file for Gnome Photos (which is showing properly in the menu).

I don't know if it helps, but I successfully worked around with a desktop file put in ~/local/share/applications. I did it with a file path (to a downloaded SVG file) as a value to Icon, with no localization.
Icon=/path/to/svg/file

So, the problem seems to come from a missing mapping between Icon=org.gnome.Weather and an actual icon.

Some news. I did the test you requested.

Do you mean that if you cp /run/current-system/sw/share/applications/org.gnome.Weather.Application.desktop ~/.local/share/applications and restart GNOME Shell, it will not appear in the menu

Yes, absolutely.

but after you change the Icon to an existing absolute path it will appear?

No (to my surprise). When I worked around the bug, I made a desktop file from scratch. So I tried other changes.
In the copied desktop file, there is:
Exec=gapplication launch org.gnome.Weather.Application

When I replace it with Exec=gnome-weather, I suddenly have the icon showing (without needing to restart). This way, I get the Gnome Weather icon without having to change the Icon entry (but I can have another icon with a path to its file).
In the (working from start) Gnome Photos desktop file, there is Exec=gnome-photos.

bash -c 'IFS=:; for d in $XDG_DATA_DIRS; do find "$d" -name org.gnome.Weather.png; done'

Icons are found, various sizes (PNG files).

Sorry, I did not find the package you want me to install. At https://nixos.org/nixos/packages.html I cannot find anything like glib*bin, glib*dev or gapplication.

The package is glib and it contains the gapplication binary in the bin output (or possibly in the dev output on old nixpkgs).

So I:

Removed the local desktop file to get back to a situation with Gnome Weather not showing in the menu.

Added glib to the configuration.nix and nixos-rebuild switch.

Restarted the computer, just to be sure.

Gnome Weather is not showing. But gapplication seems to be installed.
find / -name gapplication

find: ‘/run/user/1000/gvfs’: Permission denied
/nix/store/wsc3l9m3s0n4hpby4d69frqi7zyi5fnm-system-path/share/bash-completion/completions/gapplication
/nix/store/zb1m0cjd8d9m7c76q2zr8nrnzi6him4s-glib-2.56.0/share/bash-completion/completions/gapplication
/nix/store/0g0icfkz98f3hcb5sin35z2ciq1nsfv1-glib-2.56.0-dev/bin/gapplication
/nix/store/rdj63a6h1pvmxzaaz8w179f9pdl7jhva-system-path/share/bash-completion/completions/gapplication
/nix/store/g2jrz7fm4lnwrbhl444bcppls1ccfq7r-system-path/share/bash-completion/completions/gapplication

But it is not in the path, or at least I do not have the completion in a terminal when I type gapp<tab>.
It was probably already installed before I explicitely added glib in configuration.nix. I can find it on my other (18.03) computer with no modifications to configuration.nix.
I am not sure I understood well what you requested me to do. I would have been very surprised to have Gnome installed without glib.

OK, so I added glib.dev instead of glib in configuration.nix and then nixos-rebuild switch.
After that, I can see both Gnome Weather and Gnome Maps showing in the menu (with no local .desktop workaround).

Adding here because I believe my case is related:
While testing GNOME apps, I noticed that gnome-podcasts would download but not play anything. When launched from the terminal $ gnome-podcasts or from the Alt + F2 launcher with gnome-podcasts audio playback worked normally. The activities overview launcher and $ gapplication launch org.gnome.Podcasts both failed to play audio.
After that exploration, I added this ~/.local/share/applications/org.gnome.Podcasts.desktop file:
[Desktop Entry]
Name=Podcasts
Comment=Find and listen to internet radio stations
Exec=gnome-podcasts
Icon[gl]=org.gnome.Podcasts
Icon=org.gnome.Podcasts
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Player;GNOME;
Keywords=podcast;internet;radio;music;
StartupNotify=true

I then restarted GNOME Shell by doing Alt + F2 restart, and audio playback when launched from Activities worked as expected. The gapplication as above still failed, however.

I can confirm that gnome-weather has an icon in my WM (Awesome). However, as @nalck has said, there are issues with the usage of gapplication launch - I experience it with Gnome Weather. I guess gapplication launch is especially problematic if the DE is not Gnome.
I'm ccing @lethalman @hedning @worldofpeace as the Gnome packageset maintainers who may be interested in solving this.

I can also confirm that installing glib has also fixed this.

I guess there's one we need to patch in gnome-weather.

share/applications/org.gnome.Weather.desktop
134:Exec=gapplication launch org.gnome.Weather

not stale

The gnome-maps package in nixpkgs as it is now is IMPURE because it's .desktop file relies on gapplication which is not guaranteed to be present because it is not set as a dependency for the package.
I am not a gnome maintainer so I don't know what is the best way to solve this problem, If I knew what to do(that will be merged) I would have already submitted a PR. But as I can see, there was no progress on this issue for a long time so I might as well do it myself rather than wait for years until someone else fixes this.
The only solutions that come to my mind are:

replacing the Exec=gapplication launch org.gnome.Maps %U portion of the .desktop file to something like this:

''Exec=${lib.getExe' glib "gapplication"} launch org.gnome.Maps %U''

or completely abolishing gapplication and just starting the program normally which might not be ideal because I don't even know what gapplication is and why it's used to start things.

@NixOS/gnome @JohnRTitor Do you think any of these is an acceptable solution?

It could go to preFixup with phase with substituteInPlace to substitute gapplication with this.
Sounds like a solid fix, could you open a PR? But CC @jtojnar anyway


Can you please tell me where to put the config file for tslint

Always get "Your tslint configuration file is missing or invalid. Please ensure that tslint.json exists and is valid JSON."
The tslint.json exists in the root folder of my own working repo.
i have used
[tool_tslint]
config = tslint.json
or
[tool_tslint]
config = ./tslint.json

setting, but the review doesn't work. Can you please help me and thank you in advance.

Is the config file in the root of your repository?

I added some script  in the tslint.py to output log.
here is the result:
Failed to load /src/tslint.json: Could not find custom rule directory: node_modules/codelyzer
It seems that the tslint can't find the node module codelyzer, therefore I recreate the nodejs image, added this module at package.json. and after it, I can find module in the new image. But the problem still remains.
Any idea? Do I need to install the module globally? currently it is in the /tool directory
Thanks

@homeday When I add packages I use the package.json and things usually work out. I've never used codelyzer so I can't help much.

found a workaround, link the /tool/node_modules to current work directory.
since nodejs image work as a job not services, we can create a bash file and put it in somewhere inside container like /tool, in it
link the /tool/node_modules to current work directory, so that the relevant modules can be referred.
like:
ln -s -f /tool/node_modules /src/node_modules
shift 1
./node_modules/.bin/tslint $*
And add ENTRYPOINT at nodejs.dockerfile
ENTRYPOINT ["/bin/bash", "/tool/tslinterwrapper.sh"], so that the original arguments can be passed to the tslint command.


Thumbstick, Speedbar, and Speedometer

Contributors: @juliavankirk @iachella
#42 The app now features a Thumbstick instead of a D-Pad.  This controls both speed and direction of the vehicle, and should automatically stop the car when the thumbstick is released.
#43 The Speedbar is implemented for cruise control and speed-limit functionalities later on.
The Speedometer should show at which speed the vehicle is driving.

I will have a look at this later this afternoon if that is okay? 😊

Tested it on my laptop without issue (Worked perfectly) then tried it on my PC and there was quite a big delay between input and the car responding. I'm not sure why there would be a difference but I did double check everything and couldn't find any differences between the way it was run on the two machines.


Exception hierarchy for FrontEnd API

Details:

Exception hierarchy for FrontEnd API:implemented ngraph-based approach for error handling.

Tickets:

52255

Also maybe we can replace PDPD_CHECK(ngraph::frontend::ErrorCode::ERROR_GENERAL, ...) with something like PDPD_CHECK_GENERAL(...) or it will create too big overhead?

Also maybe we can replace PDPD_CHECK(ngraph::frontend::ErrorCode::ERROR_GENERAL, ...) with something like PDPD_CHECK_GENERAL(...) or it will create too big overhead?

We can do it, but I guess PDPD_THROW is enough.


No hopeless offers

Codecov Report

Merging #564 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #564   +/-   ##
=======================================
  Coverage   96.74%   96.75%
=======================================
  Files         240      240
  Lines       12737    12745    +8
=======================================
+ Hits        12323    12331    +8
  Misses        414      414

Hold on! Please leave this out of 0.5.2.
It will cause mayhem on schemas with attribute names with capital letters or spaces. I will fix it tomorrow morning.


fix for automatic code building in case of develop (pip -e) install

fix for #921
its a bit hacky but seems to work

Thanks!
Maybe we need to think about a long-term solution for this though.


CNI should be bumped, please mind the organization change appc -> containernetworking

Related #2565 as this has been fixed in CNI AFAICT.
/cc @iaguis

Related with #1765 and should be followed by same fix in kvm flavor.

This needs CNI to be tagged/released first (v0.3.0).

Ping @steveeJ ?

We'll cherry-pick bug fixes in v0.3.0 to a minor release.

For now we should do the minimally invasive change: https://github.com/containernetworking/cni/releases/tag/v0.2.3
Note that this doesn't change the import paths yet


[Feauture request] Easy UI

Can the interface be made more user-friendly? The sliders for setting the coordinates are completely inconvenient. You can use the mouse to select the desired area, as well as zoom in order to make the pixel perfect. You can also add an input / copy field for the current coordinates, for example, to transfer to colab. You can also add batch processing (for videos where the subtitles are always in the same place).
I don't know Chinese so I can write repetitive ideas. I'm sorry

Thank you for your suggesiton. It's a good idea, and I may refactor the UI next iteration.
PS: I'm sorry that I may do it slowly cause I'm bussy for full-time work.

Thank you for your suggesiton. It's a good idea, and I may refactor the UI next iteration.
PS: I'm sorry that I may do it slowly cause I'm bussy for full-time work.

In general, as a personal experiment, I can use any framework and do it myself, if it works out well, then you will merge it into the general branch.

Thank you for your suggesiton. It's a good idea, and I may refactor the UI next iteration.
PS: I'm sorry that I may do it slowly cause I'm bussy for full-time work.

In general, as a personal experiment, I can use any framework and do it myself, if it works out well, then you will merge it into the general branch.

It will be appreciated if you can implement this.


Screen reader focus - Listing detail page

User Story:
As a…. Person using a screen reader clicking in to the “See Details” page on a listing
I want…The screen reader to land consistently at the beginning of the content
So that…I can easily consume information in the order it is presented on the page
As a….Person using a screen reader returning to the listings page from a listing detail page
I want…The screen reader to land consistently at the beginning of the content
So that…I can easily consume information in the order it is presented on the page
Additional detail:
These changes should be made on Desktop and Mobile
Currently, screen reader focus is landing at inconsistent points within the page. It should always land on the beginning of the main content.
This happens on the “See Details” page AND when you go back to the listings page
Detail from live QA session with LH is outlined here
This is only present in NVDA
This will require browser stack’s beta NVDA screen reader, which can be slow
Design Asset Documentation:
Required (Y/N) N
(If yes) link here:
Technical Notes Link:
Change to UI components? (Y/N)
Acceptance criteria:
Given that I am a person using a screen reader on desktop
When I navigate into the “See Details” on a listing,
Then screen reader focus lands at the beginning of content for that page.
Given that I am a person using a screen reader on mobile
When I navigate into the “See Details” on a listing,
Then screen reader focus lands at the beginning of content for that page.
Given that I am using a screen reader on desktop on the “See Details” page on a listing
When I navigate back to the listings page,
Then screen reader focus lands at the beginning of content for that page.
Given that I am using a screen reader on desktop on the “See Details” page on a listing
When I navigate back to the listings page,
Then screen reader focus lands at the beginning of content for that page.
QA review instructions:
(Desktop testing instructions)
(Mobile testing instructions)

QA'd at https://detroit-public-staging.netlify.app/listing/233694e3-24eb-4263-ac94-ee82145b213e/cathedral_arts_apartments_10201_woodward_avenue_detroit_mi - if that's the right link, we can close this.


Rate limit

There is a rate limit for the public beta launch.
*Rate limit on registrations per IP is currently 10 per 3 hours
*Rate limit on certificates per Domain is currently 5 per 7 days
The plugins must track this to ensure a good functioning plugin. We have to track the requests per hour and limit the request. Maybe a queue will be handy to have in this situation.
Thanks to zEitEr from DirectAdmin forums for reporting this issue: http://forum.directadmin.com/showthread.php?t=51588&p=269400#post269400

I think that rate limit information is out of date. https://community.letsencrypt.org/t/rate-limits-for-lets-encrypt/6769 I don't think any of the limits are a problem for normal usage.


Add tvOS target

Since react-native now supports Apple TV, I added RNSound-tvOS target to the RNSound Xcode project.

@trepidity @jkimbo could you review and merge this, or find the right reviewers to do so?  Thanks!

@kurokky could you review and merge this?


Project future

OK, so given all... stuff... that happened around my other projects (VSCode debugger, Rider) I'm not really sure if i still want to do lot of F# OSS.
So I guess, we should somehow decide if anything is going to happen with this project. Theoretically we have many maintainers listed here, but practically I've been developing it on my own, with some suggestions from others from time to time.
Current state of the project:

It's opt-in extension for existing MsBuild system - user still need to have .fsproj file (tho, it's super simple) where he needs to add reference to FsToml target file responsible for generation of .props - this can be done as MsBuild SDK - whatever it really means - which will work automatically after SDK nuget package is added. F# integration with new .fsproj file works like that - @enricosada knows more about it.
User puts .fstoml file next to .fsproj file - it contains all important informations about project - file, properties, dependencies.
.fstoml is integrated with Paket - it replaces paket.references file [solution level Paket files are still needed]
.fstoml is transformed to normal MsBuild-XML .props file  put into obj dir - this makes it automatically imported every-time MsBuild access .fsproj file. It means, that our .props file is automatically imported when dotnet CLI is called, or when editor tries to crack project file. It doesn't require any changes to dotnet CLI, FSAC, FCS etc. It works with them out of the box
Drawback of this is that user needs to rerun dotnet restore whenever .fstoml file is changed. It may not be as big problem as same behavior is required for Paket integration with new .fsproj

I don't know if it's best way of doing things. I know that it's a way that provides best integration with existing ecosystem without any changes to existing tooling.  What in my view is really important for possible adoption of the project.
CC: @alfonsogarciacaro @cloudRoutine @forki @matthid @dsyme @7sharp9

Sorry I was watching on this project. But you are right, we should just start to bootstrap this into some projects of the ecosystem. As I'm currently on FAKE & Paket I can do it if people there agree.

Not entirely related to this issue, but I hear you @Krzysztof-Cieslak and I'd like to share my biased and likely wrong view of the current state of F# OSS.
In spite of everything, I think we're living a really good moment for F# OSS as this tweet from @haf summarizes. The tooling is getting better and better which encourages people to approach F# and also to start contributing. We're enjoying wonderful synergies: devs like Fable no because Fable itself but because it's really pleasant to work with Ionide, and this is also thanks to the improved F# compiler error messages by @forki, etc. Paradoxically it's this popularity which attracts big players and makes Jetbrains, for example, create an F# IDE. I perfectly understand your concerns about this threat (specially considering they can just take YOUR stuff to compete with you), but we've seen at fsharpX the compromise of the community with Ionide. I think this is not only because Ionide is a fantastic tooling but also because it's a symbol of the wonders a community member can do, and I don't see this compromise disappearing all of a sudden.
That said, at the same time there's a risk this momentum dies from its success. The more users we have the more responsibilities we take on our shoulders, and the longer we have to dedicate to make sure our projects keep up with the ever changing OSS ecosystem. Open source development has many funny moments but also others that are not. So IMHO we need to be careful not to fight too many battles.
That's not to say fstoml could bring great benefits to the F# ecosystem but as everybody knows it's difficult to establish a new standard: users need to learn a new thing (even if it's easier than the old one), community splits, editors need to support it somehow (here at least editors with a GUI for project files)... and even as awesome as the F# community is, resources are still limited ;)

A better project configuration format is a neat idea that I'd like to come back to in the future, it's just not super important to me right now.
As for JetBrains that's kinda cool, but it doesn't change any of my plans or what I'll be working on.
Once paket is fully featured on netcore with no nuget dependency, FAKE is working on netcore, FSharp.Editing is up and running to the point where I'm not the only person who can work on it, and netcore projects are supported in VFT, then I'll come back to this and see what's up.

Speaking for myself, i can help anyone who will continue, if has questions i can answer about msbuild/newsdk/integration/possibile enhancements, any time, as usual.
I cannot commit to maintain or actively help/code to move forward this project (and probably i was not a target for that).
For same reasons (time and focus) i didnt commit to other projects i'd like to play with.
Sry for lenghly post, but this is a common issue i see lately, and because lots of tooling dev are here, i'd like to explain why.
About Rider, i enjoy ionide and vscode a lot, and for me is good news, but is just another editor i am not going to use (like atom or emacs, but i use vim for example). Some people may like that, for reasons, good, more choice.
Rider will be a big bonus if that help other projects, using shared components (FCS for example) contributing to these instead of just consume it. But we create shared components also for that, to enable new scenarios.
Ionide currently has lot of polish, enhancement, performance and new ideas (the signature code lens are amazing, and i really say that every time i speak about f# in vscode). And a really nice user experience, thx @Krzysztof-Cieslak about that, thx a lot.
And ihmo is there to stay, because is really a joy to use.
Is not an easy feat to have a complete product, proto are easy, ionide is really complete. Is on a different level then other projects, who are poc or optional usage. And you helped everyone, fixing shared components to arrive there.
I think some components are finally converging in the F# tooling ecosystem, not just FCS/FSAC and vf#, but also soon between mono/.netfull/.netcore, for all .NET languages.
We can leverage some, and that mean maybe collaborate to existing projects (because resources are a finite amount) to fix our pain points, or replace some.
About tooling, ihmo we really need to discuss somewhere about near future (1year, or 2), to revise what are the pain point now, and how to best fix that, in the current and near future ecosystem who changed quite a bit (oss, merge and split of fsharp/fcs/vf#, new sdk, languageserver, etc).
The new sdk and oss changed things a bit, users now see that just for .net core, but is going to be used  really soon for mono/.net full users too (it's not just netstandard2.0 the big win).
For example we are going to use the same msbuild, with new sdk, without modifications, in all three big players, with the same tooling code (project parsing will change a bit, and will be finally the same for VS and FSAC and XAM), finally.
And that's going to help with other scenarios, like xam ios or fable, or corert.
That may impact other projects like forge too, because more tooling mean overlap, but also opportunity to offload parts of tooling, when make sense. Or opportunity to reuse or integrate existing code/tools.
Tooling is more stable now, and flow/experience has really improved, so possibile gain are minor now. finally.
fstoml was the right answer to a big issue with old fsproj, but has a minor impact with new fsproj, and that's not just because xml is less verbose, but also because the tools used with new fsproj, and the flow.
Recreate the flow is lot of work and feedback, and possibile friction.
But we can see that only after using a bit, not everything can be seen at design time, without feedback using it.
Ihnmo fstoml project can help some scenarios, but like everything has tradeoff on usage, so we'll see feedback soon (with this milestone, is now a bit more public and easy to try).
The way you integrated with current msbuild help a lot to lower the bar for adoption, and i agree with pro and cons as @alfonsogarciacaro said.

I think we should throw all our combined weight behind bazel instead, starting here – to leapfrog the current build systems of F# and support large enterprise projects (like mine) that needs cascading builds and fast recompile times.

@Krzysztof-Cieslak Code with Ionide is amazing. You should absolutely not give it up.

@Krzysztof-Cieslak - I agree with @haf, please don't give up on Ionide. Why not charge for it after a trial period or for commercial usage? At least give us the option to pay you something. (I don't think open source should mean free.) Can you change the license so JetBrains can't steal your work. Just curious, but what would you want from the F# community that would make you happy to continue working on the project?

Not sure I would agree that jumping to bazel would help anything at all.

@7sharp9 I think it would. Why don't you think so?

You can't really change the license for ionide because it itself uses oss code churned around between different repo over the years.
I think you would freeze the codebase, zero support other than send me a PR and add all new features as chargeable.

Can we please focus on this project, instead of getting sidetracked by Ionide awesomeness?


nb_conda_kernels doesn't uninstall properly and breaks the notebook

After conda uninstall nb_conda_kernels my notebook no longer works. I get the below error message when I try to start the notebook:
The 'kernel_spec_manager_class' trait of <notebook.notebookapp.NotebookApp object at 0x00000168B468AC18> instance must be a type, but 'nb_conda_kernels.CondaKernelSpecManager' could not be imported

Any idea where I can find that configuration value to delete it?

Running jupyter --paths I was able to find the config in the etc dir and delete it

Is this issue actually fixed?  It seems like a real fix would mean uninstall nb_conda_kernels removes that file itself.

Is this issue actually fixed? It seems like a real fix would mean uninstall nb_conda_kernels removes that file itself.

This https://github.com/conda-forge/nb_conda_kernels-feedstock/blob/master/recipe/pre-unlink.sh should take care to remove that piece at uninstalling time.

Running jupyter --paths I was able to find the config in the etc dir and delete it

Sorry for the resurrection. I have the same issue. I have nothing in /etc. Maybe you remember what did you delete specifically? :)

这个问题真的解决了吗？看来，真正的修复意味着要uninstall nb_conda_kernels删除该文件本身。

run the order，maybe occur uninstall pycharm, sure?


spdlog:  undefined reference to `fmt::v6::internal::assert_fail

/home/julien/.conan/data/spdlog/1.5.0/_/_/package/9df34d57e1d38147409e41fa69c20cd1153df23b/lib/libspdlogd.a(spdlog.cpp.o): In function `fmt::v6::internal::is_integral_type(fmt::v6::internal::type)':
/tmp/c3ipr/pr_961_6_4_37/.conan/data/fmt/6.1.2/_/_/package/038baac88f4c7bfa972ce5adac1616bed8fe2ef4/include/fmt/core.h:736: undefined reference to `fmt::v6::internal::assert_fail(char const*, int, char const*)'

When conan runs I get a warning WARN: spdlog/1.5.0: requirement fmt/6.1.2 overridden by your conanfile to fmt/6.0.0
Upgrading to fmt/6.1.2 solves the problem.
On Ubuntu 18.04, gcc-9

Good catch! I never noticed that warning from conan.
This looks like the same issue (#3) reported by @kershnerd a while back. I wrote a PR for the upstream project that addresses this issue, and a couple Mac-specific fixes, here: https://github.com/lefticus/cpp_starter_project/pull/35
This kind of problem really underscores the need for continuous integration.


Move setup-ko to new home of ko-build/setup-ko

Changes
Change imjasonh/setup-ko to new home of  ko-build/setup-ko
Submitter Checklist

[ ] ~Includes tests if functionality changed/was added~
[ ] ~Includes docs if changes are user-facing~
[x] Set a kind label on this PR
[x] Release notes block has been filled in, or marked NONE

Release Notes
NONE

/lgtm
/approve


Bigger label rendering issue

I have used the piecelable to place the label. But my labels size is bigger so half ( or small portion ) of the label is hiding under the chart slice. You can check this below image:

Can anyone please suggest how can I solve this issue?

Use different font color for now?

If I use different font color then it will be overlap on the chart slice. But I don't want it in that way. So if you can suggest any other way or fix this in the next version then it will be helpful.

Has there been any update on this issue?  We are experiencing the same problem.

I was able to fix this problem by adjusting the position.x value in the drawDataset function. In this part of the function (at line 112 of version 0.11.0):
    if (this.position === 'outside') {
      if (position.x < view.x) {
        position.x -= offset;
      } else {
        position.x += offset;
      }
      arcOffset = view.outerRadius + offset;
    }

I adjusted the offset to account for the width of the label. So now it looks like this:
    if (this.position === 'outside') {
      offset += (this.measureText(text).width / 2);
      if (position.x < view.x) {
        position.x -= offset;
      } else {
        position.x += offset;
      }
      arcOffset = view.outerRadius + offset;
    }

code above is added in pull request #61


Store action for user authorities and restrictions in a database instead of enum

Storing the authorities and restrictions in a database is more flexible and dynamic.
@muttaqin1

we have to store the roles enum too.

sure, can you provide the scheam for this

sure, i will send a pr soon.
@bellaabdelouahab

I have found a issue.
Lets assume our server is deployed. Now we want to create a Action.We have created a Action DELETE_ALL using http://localhost:4000/admin/action/create POST
const Action = {
DELETE_ALL:"DELETE_ALL"
}
The Action we have created now, can we use it?
No! Its useless.  Because we are setting actions to our routes manually =>
Router.get("/.....", restrictTo("ADMIN")(Actions.DELETE_USER)), someController)
We are restricting controller manually.
my solution is:
We have to create a route model.
Every route should a have a route  record.
The record will contain :
{
path:"/admin/create",(path will be unique. Easy to find)
Actions:["update_user"]
}
So when we create a action using a POST request. We can assign them to routes by pushing it to the route record's Actions array.
Middlewares will be called in every request. So if we push a Action to a route record.It will start working instantly.and we can add Actions to routes dynamically.
what do you think?
@bellaabdelouahab

I will write you within 4 hours, because it's 5 am now here 😁

I will write you within 4 hours, because it's 5 am now here 😁

11.30 AM here😆

Your proposed solution to create a route model and associate actions with routes dynamically sounds like a reasonable approach.
btw, I have a question.
After giving it some thought, I believe that the authorities and restrictions should be static. This means we don't need to store them in the database. On the other hand, we should keep the roles dynamic because we might need to create custom roles. For example, we could have a role named "restricted_to_b_class" that allows certain actions only for class B.
In summary, we can have custom roles where each role has actions. The actions can have one of four values: update, delete, get, getAll, or create. each of those value assosiated with a model here is a code sample :
`
// User model
// .....
roles: {
type: Role,
},
// .....
// Role model
// .....
update: {
type: String, // Changed to single string type instead of array
enum: ['user', 'project', 'calendar']
},
getAll: {
type: String, // Changed to single string type instead of array
enum: ['user', 'project', 'calendar']
}
// .....
`
I'm unsure whether we should keep both authorities and restrictions or just leave restrictions and remove authorities.
Each new user can start with a user role, and then we can add restrictions. If there are too many restrictions, we can create a new role.
I hope I have explained it clearly. Let me know if you have any further questions.

Your proposed solution to create a route model and associate actions with routes dynamically sounds like a reasonable approach.
btw, I have a question.
After giving it some thought, I believe that the authorities and restrictions should be static. This means we don't need to store them in the database. On the other hand, we should keep the roles dynamic because we might need to create custom roles. For example, we could have a role named "restricted_to_b_class" that allows certain actions only for class B.
In summary, we can have custom roles where each role has actions. The actions can have one of four values: update, delete, get, getAll, or create. each of those value assosiated with a model here is a code sample :
// User model
// .....
roles: {
  type: Role,
},
// .....

// Role model
// .....
update: {
  type: [String], // store the models names
  enum: ['user', 'project', 'calendar']
},
getAll: {
  type: [String],
  enum: ['user', 'project', 'calendar']
}
// .....

I'm unsure whether we should keep both authorities and restrictions or just leave restrictions and remove authorities.
Each new user can start with a user role, and then we can add restrictions. If there are too many restrictions, we can create a new role.
I hope I have explained it clearly. Let me know if you have any further questions.

You're absolutely right.we can create a role model ,but If we keep ACTIONS immutable then we can achieve all of those things we need without making a huge change on our current feature.
If our ACTIONS is immutable that means no new actions will exists after the deployment.So our routes which will be protected with restrictTo middleware with some ACTIONS, those ACTIONS won't change.
your sample model code:
// Role model
 // ....
create:{
type:[String]
enum:['user', 'project', 'calander']
},
 update: {
  type: [String], // store the models names
enum: ['user', 'project', 'calendar']
},
getAll: {
  type: [String],
  enum: ['user', 'project', 'calendar']
}
 // .....

this model is equivalent to this:
const Actions = {
CREATE_USER:"CREATE_USER",
CREATE_PROJECT:"CREATE_PROJECT",
GET_ALL_USER:"GET_ALL_USER",
GET_ALL_PROJECT:"GET_ALL_PROJECT",
//...
}

And we can make our current ROLES enum dynamic using a model:
{
name:{
type:String,
enum:"SUPER_ADMIN"
},
authorities:{
type:[String],
enum: Object.values(Actions)
},
restrictions:{
type:[String],
enum: Object.values(Actions)
}
}

Then we can create  some routes to create roles using the actions(constant).The functionality to assign roles to user is already implemented.
I think we dont need the restrictions array.Beacuse we can restrict user by removing one or more ACTIONS from the user authorities array.
what do you think about this? Btw, i am ready to implement your  solution.@bellaabdelouahab

Issue resolved by PR [#18 ]


select email field on ipad

fixes https://github.com/artsy/eigen/issues/139

Is this for merging? Because it looks perfectly fine to me :+1:

Yes


View: POI Divergence Report

Provide investigators information to debug POI divergences

Sharing a proposal from @leoyvens:

The idea is to store and serve the divergence reports not in a relational format in the DB, but to treat each report as a blob of data, possibly a big json. This can be stored in Postgres as a jsonb, and also on IPFS. This has a few benefits for the different users of divergence reports:
Core devs looking for bugs in indexer software will like the flexibility of downloading the file and then using a CLI or ad-hoc scripts to explore and diff it as desired.
Arbitrators may like the verifiability of having the dump content addressed on IPFS, so anyone can reproduce the steps of their investigation.
This approach is not the easiest to use for less technical consumers or for at-a-glance analysis, but after we complete a few investigations with this ad-hoc scripting approach, we will have a better understanding of what data would be useful for a more human-readable report format or a nice web frontend.


New version: OpenSourcePhysics.Tracker version 6.0.6

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.0 schema?

Resolves #41112

Microsoft Reviewers: Open in CodeFlow

@wingetbot waivers Add Validation-Domain


Update tests-task-2.js

Number 1 is prime too.

No, it's not a prime :)
https://primes.utm.edu/notes/faq/one.html

Ok , 10x!


english documentation?

Is this framework restricted to Chinese people?

@sundowndev Nope, it's mainly used by Chinese teams currently, so it's well documented now in Chinese in https://goframe.org . English documentation is not available currently, but the comments and GoDoc( https://godoc.org/github.com/gogf/gf ) are all in English. Any English documentation contribution is appreciated.

It is really misleading to compare gf with Django, Laravel or SpringBoot and not having English docs. Are you going to start the translation soon?

Hi @gqcn,
is it planned the translation of the doc in english ?
thanks
PS: english documentation, will really speed up the adoption if any ... think at "the history" of vue.js ...

@gqcn If the website was open source, it'd be easier for contributors to translate it, but it's not. There seem to be no starting point, like this isn't even a project goal. The fact that this issue is closed says it all.


Liquibase Bug triggered in the Upgrade of Spring Boot

Dear Support Team,
In liquibase Version 4.14.0, a bug was introduced:
https://github.com/liquibase/liquibase/issues/3205
This bug now suffices in our application due to the upgrade, and the fact that our schemas use hypers "-" within the schema name.
Please review the workarounds available for this, and implement it in our implementation as to bypass this issue (until the liquibase bug is fixed and we upgrade spring boot again)
Cyprus

Please note that we implemented this workaround:
/**
 * The Application class.
 */
@SpringBootApplication
@EnableConfigurationProperties(DgcConfigProperties.class)
public class DgcVerifierServiceApplication extends SpringBootServletInitializer {

    /**
     * The main Method.
     *
     * @param args the args for the main method
     */
    public static void main(String[] args) {
        **System.setProperty(GlobalConfiguration.PRESERVE_SCHEMA_CASE.getKey(), "true");**
        SpringApplication.run(DgcVerifierServiceApplication.class, args);
    }
}


Fixes bug #172 (adjust controls & rules when node/link added or deleted)

Also adds new API function EN_deletecontrol
Updates and re-arranges entries in the VBA and VB.Net headers

@LRossman took a quick look on this merge. Small thing: the function ENgetstatistic was deleted from epanet2.bas and the new function ENdeletecontrol should be added to the DEF file.
Big thing: we had a discussion on what to do when deleting elements which are associated with rules and controls, see #240. @samhatchett and I didn't like the "silent deletion" and preferred to give an error. I'm open to hear different opinions but this can't be done with these fast merges.

@eladsal if the code only issues an error message when the API client asks that a node or link appearing in a control or rule should be deleted then I don't see how it can ever actually be deleted. What action would the client take when such an error is generated? The only one I can think of is to delete the controls and/or rules that contain the object to be deleted, and there are no functions for doing that. Even if there were, the node/link indices in the remaining controls would still have to be adjusted manually by the client. Until these steps are taken the object in question cannot properly be deleted.
The actions described above are exactly what my latest commit does. Another alternative that I considered was to replace the index of the deleted object with a 0 in any affected control. That would void   the control without deleting it and without having to make any other code changes. The same would apply to a rule, but to actually make it void something like setting its priority to a negative number could be done which would add just a small amount of new code. However all indices higher than that of the deleted object in all controls and rules would still have to be adjusted. What held me back from implementing this approach was I didn't know how these voided controls and rules should be saved to an INP file.
Please note that deployment of v.2.2 cannot proceed until this issue is resolved.

@LRossman I really would prefer that we have these discussions before merging the changes.
My thinking, and I think that @samhatchett expressed the same thoughts is #240, is that the client should delete the controls\rules before deleting the elements and if these functions are missing we need to add them (I see you added the control deletion already, thanks). Not sure I like it but what would you say about giving the user a warning that a rule\control was deleted?

Please note that deployment of v.2.2 cannot proceed until this issue is resolved.

So let us resolve this.

if we are voting, I would vote again against silently removing link references from controls etc. From a higher "client" level perspective, it's not great to have important features of the data model change without our knowledge or control.

How about re-defining EN_deletenode as follows:
int EN_deletenode(EN_ProjectHandle ph, int index, int *actioncode);

where on input actioncode is either EN_DELETECONTROLS or EN_COUNTCONTROLS. If it's EN_DELETECONTROLS then all controls/rules containing the node are deleted as is the node. If it's EN_COUNTCONTROLS then on output it contains the number of controls/rules that reference the node. If that number is 0, then the node is deleted. Otherwise no deletion occurs. A similar re-definition for EN_deletelink would also be made.

I think that @LRossman 's suggestion about EN_DELETECONTROLS or EN_COUNTCONTROLS makes sense if you're using the toolkit directly as an end user - it's pretty intuitive and friendly...
However (speaking as an application developer), I would prefer an API that didn't let me delete a node unless I first explicitly remove it from the relevant controls. That seems to me more failsafe, since it involves direct action on the things that end up being affected. If I'm putting these actions into an undo stack, then this is also more failsafe, since I have to keep track of what changes were made in case the user changes their mind. If we implicitly remove nodes/links from controls, then there's no record of what they were in order to restore the prior state.

So how about
int EN_deletenode(EN_ProjectHandle ph, int index, int *statuscode);

where statuscode returns as 0 if there were no controls/rules containing the node which will be deleted and otherwise contains the number of controls/rules referencing the node which does not get deleted. Although this same information could be placed in the error code returned by the function I'm afraid that it would get ignored too easily.
I still like my proposal for using an actioncode better since if the first call to EN_deletenode with actioncode set to EN_COUNTCONTROLS comes back with a non-zero actioncode, and the client decides that it's OK to delete these controls/rules, then a second call to EN_deletenode with actioncode set to EN_DELETECONTROLS will do that in one fell swoop and also delete the node.
Going back to my earlier comment, what recourse does a client have if a node/link they want to delete appears in a control/rule. Either they must delete the control/rule or not delete the node/link. And right now there is no easy way to determine if an object appears in a control/rule. For controls, one has to call EN_getcontrol for each control and check its return parameters. For each rule, one has to first call EN_getrule to find the number of premise and action clauses, and then repeatedly call EN_getpremise and, for links, EN_gettrueaction and EN_getfalseaction to see if the object appears in the rule. A lot of work just to find out which rules should be deleted (not to mention there is currently no EN_deleterule function).

We need a function to delete rules with no relation to this discussion.
I can do with @LRossman actioncode proposal. @samhatchett, if you use this option with EN_COUNTCONTROLS wouldn't that work for your use case?

Let's summarize the proposed options for dealing with deletion of objects that appear in controls, under the assumption that nobody wants to keep the "silent" control deletion that was just implemented in the latest commit to dev:

Keep the declarations of EN_deletenode and EN_deletelink as they are now but return an error code and don't perform a deletion if the object in question appears in any control (simple or rule-based).

Add an action code argument to the two delete functions that on input determines if controls referencing the object will be deleted along with the object or if the number of such controls will be returned in the code with no deletion of either the controls or the object made.

I'm retracting my other proposal for adding a status code argument to the delete functions since it's really no different than option 1. There's a related issue when trying to delete the Trace Node in a water quality analysis. In this case I suggest that both options return an error code and not delete the node when this happens.
Can we reach a decision on which option to implement so we can move forward (I will defer to whatever you all decide). As far as I can tell, this is the last issue that stands in the way of v.2.2 being ready for release.
P.S. @eladsal the latest commit already contains a local function in rules.c that deletes a rule so it will be easy to write an EN_deleterule(EN_ProjectHandle ph, int ruleIndex) function that simply calls it.

thanks for the summary and the discussion. Given all that, I'd still vote for 1 - to error unless the node/link is free of encumbrances. It's not a super heavy lift for an application developer to interrogate the data model to find where the element is referenced.

Option 1 is included in 2, that is you get an indication that the element can't be removed (if you want that). @samhatchett wouldn't that work also for your use case?

sure, I get it. thinking about it as a "force=true" option helps me to conceptualize. I'm good with this. thanks!

Great, so let's go ahead with the second option.

OK, Option 2 it is. I'll work on it today (and, @eladsal , ask for a code review before merging).

This issue is not quite resolved. When EN_deletenode is invoked, even when there are no controls (either  simple or rule-based) that reference the node, it needs to delete the links connected to the node since a link can't exist without having two valid end nodes. So what happens if these links appear in controls? My suggestion is to make the same action code passed in to EN_deletenode apply to all of its connecting links. So if the code is EN_DELETECONTROLS then both the node and its controls as well as the connecting links and their controls all get deleted. If the code is EN_COUNTCONTROLS then the node and its connecting links only get deleted if none of them appear in any control. Otherwise the number of affected controls (by both the node and its connecting links) is returned in the action code and no deletions occur. Is this strategy acceptable?

@LRossman I think it is the right way.

Going over the v2.2 issues I found #239 regarding the trace node when deleting a node.


amp pages recaptcha v3 response grecaptcha and action-xhr. Kindly provide the sample run out of ideal.

Issue description

Environment

OS name and version:
PHP version:
Web server name and version:
google/recaptcha version:
Browser name and version:

Reproducing the issue

URL (optional):
Code (optional):

User steps

1. Visit page...

What's missing from the AMP documentation?
https://amp.dev/documentation/examples/components/amp-recaptcha-input/

i currently using amp-html, i dont know how to setup recaptcha v3, can you help me?
must amp-html valid
grecaptcha.execute('reCAPTCHA_site_key', {action: 'reCAPTCHA_example_action'});
where should i put the script to enable it to execute?

https://amp.dev/documentation/examples/components/amp-recaptcha-input/
I've read this but still dont know how..


crop compat Tech reborn rubber tree

it would be nice to have a range for height or if farmer could scan upwards for the rubber

wasn't there another mod with a rubber tree?... like IC2 or something?

yes ic2 and tech reborn


Fix a golint issue caused by typo

Signed-off-by: Guangwen Feng<EMAIL_ADDRESS>What this PR does / why we need it:
Fix comments to improve golint.

Merging as comments only fix


Cannot click next on install page

I'm trying to install it but once I get to the configure database page it won't let me click next. Also I cannot get php-mcrypt to work. It keeps telling me it's not installed even though it should be....

If you cannot get passed step 2 (database), this means you are using a PHP version that is not supported by BoxBilling, note that BoxBilling does not yet support PHP 7.x

Alright so what version should I use? Also is it possible to have two versions of php installed at the same time? I’m currently running a controlpanel that requires php7.2


Fix Liner Speed of Drivetrain

Currently, the swerve drive spins really fast, but moves very slow. That's a problem

It was feedforward


chore: add missing colors for iOS

remove palette
add colors from themes (except dims)
add hover/pressed state


python310Packages.anybadge: add missing inputs

Description of changes
Fix build (https://hydra.nixos.org/build/205590502)

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

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

2 packages built:

anybadge (python310Packages.anybadge)
python311Packages.anybadge


release v0.5.1

[v0.5.1] - 2021-05-16
Commits
Added

Added new scopes channel:manage:polls, channel:manage:predictions, channel:read:polls, channel:read:predictions, and moderator:manage:automod,
Added function Scope::description to get the description of the scope

all gh actions seem to be queued :) nice

https://www.githubstatus.com/
Investigating - We are investigating reports of degraded availability for GitHub Actions.
May 16, 07:17 UTC

https://www.githubstatus.com/incidents/zbpwygxwb3gw


[RFC] Improvements to the catalog backend

Status: Open for comments

Need
Performance of the catalog-backend can be improved significantly.
This RFC was created out of a need that was observed when deploying Backstage @ Zalando.
The catalog backend's database solution is simple and functions well, but we noticed significant slowdowns and poor ability to scale even with a modest amount of entities.
We roughly have 20k entries in the entities table.
In the current design of the frontend and the backend plugins, performance is found wanting.
For example, when querying the catalog table for data, the catalog plugin , by default attempts to query all Component entities from the table, resulting in a response of about 5k entries that takes 2 secs on the average per request.
These requests also , possibly due to the use of an ORM, overload the instance (with about 4GB of memory), prompting restarts.
From our testing, we were unable to handle loads > 8 Requests per second.
The frontend's default queries can be customized , as part of other PRs, but this RFC is about improving the design of the catalog-backend's tables.
Searching and querying
Searching and querying for entities are very dissimilar actions and should ideally be handled separately. Given that most entities have a section with specific fields and values (apiVersion, kind, metadata.name, spec.type) and a schema-less section (spec), we should ideally split the functionality currently satisfied by entities_search.
Searching for entities based on arbitrary path expressions, filters and ranges should be handled ideally by a GIN software/index such as elastic search.
Querying, for specific fields and values can be done much faster and will solve a majority of use-cases.
Proposal
This proposal attempts to improve the layout of the backend's table without too much disruption.

Add indexes on the entities table for specified fields : apiVersion, kind, metadata.name (in conjunction with namespace and kind) and spec.type.
Re-think the idea of using a text field to store the contents of an entity. A JSON or a JSONB storage type comes to mind.
JSONB has the advantage that it supports indexing nested fields, path queries and more compact storage, but has some caveats related to character encoding, that must be kept-in mind

Note: IMHO, I still think searching for documents based on ranges of values or matching the closes possible document should still be done by a specialized tool such as Elasticsearch, but a JSONB structure will perhaps make a subset of such queries easier.

Allow or discuss the possibility and ideas of providing a raw SQL interface. While ORMs are easy to prototype and start with, they might not produce optimal queries and often become bottlenecks. It might and should be possible for implementations to be able to run custom queries instead of using knex.

Note: no. 3 is still a very vague idea in my head and could use some brainstorming from the community.
As we ramp up on the usage of  the Catalog and Backstage, we figured out that this might be a relevant issue for others in the community as well and therefore begs a public discussion.

One additional improvement might be #4007 especially if you have a lot of API entities in the catalog.

We still haven't started holding APIs in the catalog, but it is highly likely we will run into the same problem, highlighted in #4007.
OTOH, We can solve a lot of problems mentioned in 4007, by bumping up the version of the API Entity Kind that supports linking to an external URL where the actual API definition is stored.
As to blob storage in the catalog, I am rather cautious and would tend to avoid it, not because of performance issues, but any bag like API would tend to be abused to store all sorts of irrelevant data in the catalog and any future migrations / technial debt resolution will become tricky.  But this is my opinion/heuristics, so please feel free to correct my assumptions.

Partly addressed by #4993

Allow or discuss the possibility and ideas of providing a raw SQL interface. While ORMs are easy to prototype and start with, they might not produce optimal queries and often become bottlenecks. It might and should be possible for implementations to be able to run custom queries instead of using knex.

Knex does allow falling through to entirely raw queries, using tx.raw('SQL', [variables]).

@GoWind @freben Knex is not an ORM, it's just a layer that abstracts away differences in SQL dialects and provides some utilities like migrations. We're essentially already writing raw SQL, just through a JavaScript interface.
Regarding JSONB and indexing the entity contents I somewhat agree, it could help to avoid the extra entities_search table, and for SQLite we probably just fall back to filtering in the backend instead. Would be a bit of a rework though.
We will be bringing in Elasticsearch to support search, but it will be done in a separate search system not directly tied to the catalog. The catalog APIs themselves will largely be kept focused at more manual browsing and filtering, at least that's the direction right now.

We will be bringing in Elasticsearch to support search, but it will be done in a separate search system not directly tied to the catalog. The catalog APIs themselves will largely be kept focused at more manual browsing and filtering, at least that's the direction right now.

:+1:  to this . I would agree on keeping elasticsearch separate for now.
What I meant by a raw interface was a way to install custom handlers  for API endpoints on the catalog-backend.
The motivation for this requirement stems from the fact that we have to do a lot of temporary mappings, APIs and migrations to eventually move the content in existing systems to the catalog-backend.
These usecases are currently limited by the querying/filter interface in the catalog API, but most importantly, doing all these mappings in the same runtime as the catalog backend will provide us simpler mechanisms to eventually migrate to the catalog database.
Another improvement we wanted to do was allow the refresh of locations in a separate thread.
Its not very compute intensive, but doing refreshes in the same thread handling the application requests makes the memory and CPU consumption patterns of the instances we are running the service on, very unpredictable and bursty.
Our application request serving needs have more or less stable patterns and we can provision predictable hardware capacity, whereas the locations refresh is bursty and offers minimal mechanisms for spreading the load across the day.
My suggestions would be as follows

Investigate and allow the refresh to occur in a separate thread, via configuration. This will prevent the main thread from being blocked serving what is basically a background, cron job.
allow refreshing location by kind, spec.type or another key . This can be used to schedule different refreshes during different periods of the day, to distribute the load more evenly.

@Fox32  : Do you see any concerns/additions here that might be of use to you as well ?
I would volunteer myself for any assistance (or PRs) for this topic. We would soon start needing more features from the catalog-backend, so I guess I can start with finding  a way to add a new entities schema, without disrupting the existing entities.
This can be done in 2 stage,

Add indexes for kind, spec.type and apiVersion on the existingentities table
Create a new JSON based entities schema.
3.Provide support in backstage for  migrating entities from existing entites to the new JSON entities.
Drop the entities schema.

Obviously a lot of these changes are going to be breaking changes, so I will have to synchronize with the backstage-core on what you plans you have for the catalog-backend.
Please do let me know what you think of the raw API endpoint idea . I admit its not very descriptive, but perhaps someone lese has an usecase for this.

@GoWind We're currently knee-deep in reworking the catalog backend. Here's the rought plan so far:

Refresh locations and entities individually rather than all at once. To achieve this we essentially add a processing queue in the database that's shared across instances, allowing the catalog processing to scale horizontally.
Lazily processing discovered entities and locations rather than the eager way it is done now. This means that when we discover an entity we put it on the queue for later processing rather than processing it straight away. It still get picked from the queue quickly though.
Allow entities to store state during processing that is provided back when they are processed again, allowing for caching of resources and avoiding unnecessary updates.
Seed the processing with a location provider interface, allowing for a more deliberate way of feeding the processing loop rather than the somewhat awkward bootstrap location.
Split out the registered locations store into a more well separated controller and store, and plugging it in to the processing via the new provider interface.
Make location entities first class entities that are stored and read back from the catalog, right now they're just used for processing then thrown away. This will make them part of the catalog graph and will allow us to store error information on them etc.
If possible, get rid of the relations table where entity relations are stiched together read time, and more this to processing instead. This should improve read performance.

Regarding processing in a separate thread, we're discussing using worker threads, but given that it's a completely separate V8 context it's something that needs to be set up in the backend and likely needs build tooling support as well.
I'd also like for us to provide a nicer interface at the controller/service level, just after the router, which you can then decorate to your heart's content :grin:

Sounds exciting. I can hardly wait !
How do you figure out fitting in the indexes and the JSON data types feature into this ?
Do you think this can be done in parallel, or weaved into your plan ?
We can implement some of the features and then bring it to backstage (or vice versa, solve it in backstage).
While we were discussing internally, yet another issue came up:  aliases.
Currently, the tuple (namespace, kind,metadata.name) is unique and has a corresponding UUID.
In large organizations, it is not uncommon to have many entities with a unique ID , but with a common, Human readable name. For example there could be multiple inventory teams where inventory is dependent on the context. The bigger the organization, the more likely such cases exist.
This is true in our case.  Multiple teams have aliases that are referenced in certain sub-systems in different ways.
We also have some issues mapping APIs into the catalog.
We have roughly 2k+ APIs and they are identified by an API ID, that is not human readable. Each API has multiple revisions (rev1, 1.1, etc). Currently any number of revisions might be deployed across the entire tech infrastructure.
This does not fit in well with the Entity structure of having a unique name for each entity. To solve this problem, the solution would be most likely a hack (set  name as ${id}+${revision}, but then it no longer becomes human readable.
To solve this problem, we thought of adding fields to the entity such as spec.searchableNames or spec.aliases : []string, but I am not sure how to add an index on this field. I guess the CatalogClient can take this and filter for entities that have this field (can it) , but this is slow, due to the design of the entities_search table.
Question: Do you think a first class Aliasing solution (maybe an Alias entity or a relation or both ? ) It could also be as simple as an indexable alternateNames or aliases field in the spec, that can be used to look up an entity UUID, based on a given alias.
I proposed Aliasing as a solution on Backstage, because I believe it might be a common enough problem to solve via Backstage and not require implementations to come up with hacked  together implementations of their own.

To second @GoWind´s request. Our problem is mainly the presentation perspective. We have no problem generating sufficient unique names, but these are effectively no names any longer - they are ids. While we miss the ability to represent entities by a human readable (and not naturally unique) alias, i.e. name.
The main point here is, that ids and names are to properties that starting at a certain number cannot any longer kept in sync. Thus, in our opinion, it makes sense to split this functionally and provide for both separate support in Backstage. As a company we have the additional problem, that we often have multiple names (aliases) for the same entity (especially in the case of teams), since things move fast and we need support the old naming until everything is updated.

I've been considering adding metadata.title, which the Template kind already makes use of. It would be optional and used exclusively for presentation purposes, and metadata.name would be used as the fallback.
This is a loose idea, not a declaration of intent :) does it match what your needs are?

(Mostly directed at @tkrop)

@freben  Should mostly be sufficient.
Rather than (Or, in addition to) adding support here, I think it would be better to allow customization of the Catalog Frontend plugin to display an arbitrary name on the initial catalog table and in subsequent Entity cards.
Currently in the home view of the catalog plugin, it is the metadata.name of the component that is shown.
Given that the spec of an Entity is arbitrary, rather than extend the model with yet another required/optional/well-known field, I think it would be a simpler solution to customize the UI to display an arbitary key from the Entity's description (which is also exactly what our original requirement is).
We could treat the spec as a map of properties to values and can use any value in the spec without distrubing the backstage Entity model.

As for slow responses, I did some profiling today and figured out what might be one of the causes
In the function toEntityResponses (https://github.com/backstage/backstage/blob/dddf2bc5d63df24b7af499c575b5f86656778271/plugins/catalog-backend/src/database/CommonDatabase.ts#L494),  the relations for each entity is fetched using a call to the getRelationsByFullname function
https://github.com/backstage/backstage/blob/dddf2bc5d63df24b7af499c575b5f86656778271/plugins/catalog-backend/src/database/CommonDatabase.ts#L500
The getRelationsByFullname function, reads the relations for the entities by using an IN clause on the fullName).
However, each entity in the entity response (DbEntitiesRow) already has an id field in memory.
The relations also have an originating_entity_id field.
Instead of searching using IN on a text match, this can be replaced by a JOIN ON row.id = relations.originating_entity_id, which should be IMHO, much much faster, as they are done on the primary key fields which should be indexed.
I have not profiled this join, but from experience, if this can be done, it should be much faster. Would you like a PR to improve this ? I am willing to debug this and raise one if we get much  improved performance.

@GoWind If you find it to be both faster on pg, and at least of similar speed on sqlite, then sure. See this comment https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/src/database/CommonDatabase.ts#L222 that is the result of me being down that path before and having to reverse the decision.
Since then, the indices have changed slightly, so it may be out of date

I should also mention, that as part of the catalog rewrite, we may choose to materialise the relations directly into the resulting entities. If we do that, the join will go away entirely.

Noted, I will inspect the sql statements generated for these filters/queries and see if I can find an improvment.

However, each entity in the entity response (DbEntitiesRow) already has an id field in memory. The relations also have an originating_entity_id field. Instead of searching using IN on a text match, this can be replaced by a JOIN ON row.id = relations.originating_entity_id, which should be IMHO, much much faster, as they are done on the primary key fields which should be indexed.

We actually need to look up by the name, we're querying for matches for source_full_name. originating_entity_id is something different and is used to delete and overwrite relations, but it's not used in the stitching together of the final entity.
As freben mentioned we'll be trying to move that step away from read time anyway :grin:

Interesting results .  where in and join on id have almost the same cost. Did some analysis using explain query
backstage_plugin_catalog=> explain select r.* from entities_relations r join entities e on e.full_name = r.source_full_name;
                                    QUERY PLAN
----------------------------------------------------------------------------------
 Hash Join  (cost=3636.66..5054.97 rows=48894 width=77)
   Hash Cond: ((r.source_full_name)::text = e.full_name)
   ->  Seq Scan on entities_relations r  (cost=0.00..1289.94 rows=48894 width=77)
   ->  Hash  (cost=3367.96..3367.96 rows=21496 width=26)
         ->  Seq Scan on entities e  (cost=0.00..3367.96 rows=21496 width=26)
(5 rows)

backstage_plugin_catalog=> explain select r.* from entities_relations r join entities e on e.full_name = r.source_full_name;
                                    QUERY PLAN
----------------------------------------------------------------------------------
 Hash Join  (cost=3636.66..5054.97 rows=48894 width=77)
   Hash Cond: ((r.source_full_name)::text = e.full_name)
   ->  Seq Scan on entities_relations r  (cost=0.00..1289.94 rows=48894 width=77)
   ->  Hash  (cost=3367.96..3367.96 rows=21496 width=26)
         ->  Seq Scan on entities e  (cost=0.00..3367.96 rows=21496 width=26)
(5 rows)

We have roughly 48k entries in relations and 21k entries in entities.

But there does seem to be a sizeable estimated cost difference when filter for the initial set of entities of a particular type.
Query 1 is I  think how the current filter filters for entities (but in memory).
backstage_plugin_catalog=> explain select * from entities where id in (select entity_id from entities_search where key like 'spec.type%' and value like 'service');
                                             QUERY PLAN
-----------------------------------------------------------------------------------------------------
 Nested Loop  (cost=7301.73..8158.65 rows=126 width=1021)
   ->  HashAggregate  (cost=7301.44..7302.70 rows=126 width=16)
         Group Key: entities_search.entity_id
         ->  Bitmap Heap Scan on entities_search  (cost=163.78..7301.13 rows=126 width=16)
               Filter: (((key)::text ~~ 'spec.type%'::text) AND (value ~~ 'service'::text))
               ->  Bitmap Index Scan on entities_search_value  (cost=0.00..163.75 rows=4176 width=0)
                     Index Cond: (value = 'service'::text)
   ->  Index Scan using entities_pkey on entities  (cost=0.29..6.84 rows=1 width=1021)
         Index Cond: (id = entities_search.entity_id)
(9 rows)

A join directly instead of a select and select, seems to have a much smaller startup cost (an order of magnitude)
backstage_plugin_catalog=> explain select e.* from entities e join  entities_search s on e.id = s.entity_id where s.key like 'spec.type%' and s.value like 'service';
                                          QUERY PLAN
-----------------------------------------------------------------------------------------------
 Nested Loop  (cost=164.06..8163.56 rows=126 width=1021)
   ->  Bitmap Heap Scan on entities_search s  (cost=163.78..7301.13 rows=126 width=16)
         Filter: (((key)::text ~~ 'spec.type%'::text) AND (value ~~ 'service'::text))
         ->  Bitmap Index Scan on entities_search_value  (cost=0.00..163.75 rows=4176 width=0)
               Index Cond: (value = 'service'::text)
   ->  Index Scan using entities_pkey on entities e  (cost=0.29..6.84 rows=1 width=1021)
         Index Cond: (id = s.entity_id)
(7 rows)

One of the my motivations for a raw interface was that I use it to compare and optimize my queries against that of knex.

Just a quick note on the explain results. Be aware of caching. 😃 I'm not sure if this is the case here, but I have personally drawn wrong conclusions based on cached results before 🙈

Hm are those exactly what knex issued? The s.key like 'spec.type%' is unexpected since we do equality testing with this.andWhere({ key: key.toLowerCase() }); - should not

@freben : I should have qualified my statements better

Query 1 is I think how the current filter filters for entities (but in memory).

Query 1 is NOT the query run by knex, but how I assumed it would generate queries.
Nevertheless, I think from the snippet you linked, to me it sounds like the actual filtering is done , perhaps in application memory (because you pass a key js fn ?) and not exactly in the database.
In any case, I will have to find ways to get the actual SQL statements generated, logged in the console for debugging (perhaps this is a nice improvement to the backend as well ? )

@Crevil  : Haha, Noted ! Thanks. I will check for caching of query plans/results when doing explains

@freben Sorry for coming back that late: I love the idea. Adding a metadata.title that has no unique constraint on it like metadata.name and making use of it in catalog presentation as primary field would definitely solve most of our problems. The metadata.name should only provide a fallback, if no metadata.title is available.
However, this would also change how people navigate: keywords in metadata.title will likely become the default terms used for searching entities. Anyhow, how can we help on delivering this. Should we open an issue or contribute with a pull request?


You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference

Some weights of XLMRobertaForSequenceClassification were not initialized from the model checkpoint at /bge/FlagEmbedding/examples/reranker/sft_model/0221-4/merged and are newly initialized: ['classifier.out_proj.bias', 'classifier.dense.bias', 'classifier.dense.weight', 'classifier.out_proj.weight']
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
Data process:   0%|          | 0/58 [00:00<?, ?it/s]
Data process:   2%|▏         | 1/58 [00:01<01:14,  1.31s/it]
Data process:   3%|▎         | 2/58 [00:01<00:36,  1.56it/s]
Data process:   5%|▌         | 3/58 [00:01<00:23,  2.32it/s]
Data process:   7%|▋         | 4/58 [00:01<00:18,  3.00it/s]
Data process:   9%|▊         | 5/58 [00:01<00:13,  3.91it/s]
Data process:  10%|█         | 6/58 [00:02<00:10,  4.76it/s]
Data process:  12%|█▏        | 7/58 [00:02<00:10,  5.04it/s]
Data process:  14%|█▍        | 8/58 [00:02<00:12,  4.02it/s]
Data process:  16%|█▌        | 9/58 [00:03<00:15,  3.14it/s]
你好推理的时候碰到这个问题是什么原因呢

transformers版本较高时，之前的微调代码的存储会出现问题，没有存储下来分类头。目前已经修复了https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/reranker/modeling.py#L60，建议使用新代码进行微调。

感谢大佬回复，但是我这里使用的就是最新的代码
def save_pretrained(self, output_dir: str):
    state_dict = self.hf_model.state_dict()
    state_dict = type(state_dict)(
        {k: v.clone().cpu()
         for k,
         v in state_dict.items()})
    self.hf_model.save_pretrained(output_dir, state_dict=state_dict)

另外transformers 版本 4.33.0

我重新测试了一下，好像是因为mix models导致的，下面是我的代码
from LM_Cocktail import mix_models, mix_models_with_data

# Mix fine-tuned model and base model; then save it to output_path: ./mixed_model_1
model = mix_models(
    model_names_or_paths=["/models/bge-reranker-base", "/sft_model/0221-4/checkpoint-150"],
    model_type='encoder',
    weights=[0.5, 0.5],  # you can change the weights to get a better trade-off.
    output_path='/bge/FlagEmbedding/examples/reranker/sft_model/0221-4/merged-150')

明白了。模型融合时需要设置model_type='reranker'，否则会导致参数加载不完整。另外，模型融合不是必须的操作。

想请问下，如果微调普通的reranker模型，之后应该怎么进行相似度计算。我微调之后的路径是这样的。

想请问下，如果微调普通的reranker模型，之后应该怎么进行相似度计算。我微调之后的路径是这样的。

Sorry, I don't understand your question. What is 普通的reranker模型?  The picture also has not been uploaded successfully.

想请问下，如果微调普通的reranker模型，之后应该怎么进行相似度计算。我微调之后的路径是这样的。

Sorry, I don't understand your question. What is 普通的reranker模型? The picture also has not been uploaded successfully.

The issue has been resolved; thank you for your reply. By "my regular reranker model," I mean those models that are not based on LLMs.


does rezero work in machine translation tasks?

hi, guys,
did you have experiments in machine translation tasks? e.g. WMT ende or enfr
I experimented with rezero in my machine translation task,  while training with fp16, using rezero brings loss scale reaching minimum , with/without layernorm, does that make sense？

Hi, thanks for your query. While we haven't tried with translation tasks, but we expect similar speed gains in enc-dec architecture as well. Let us if you find anything interesting.

hi, guys,
did you have experiments in machine translation tasks? e.g. WMT ende or enfr
I experimented with rezero in my machine translation task, while training with fp16, using rezero brings loss scale reaching minimum , with/without layernorm, does that make sense？

Hi，do you train by fairseq? (tai zong)

hi, guys,
did you have experiments in machine translation tasks? e.g. WMT ende or enfr
I experimented with rezero in my machine translation task, while training with fp16, using rezero brings loss scale reaching minimum , with/without layernorm, does that make sense？

I'm alse very interesting in its apply in NMT. does Rezero have improvements on WMT dataset?


Warning on component unmount

Hi, thanks for this library.
This component is working well for me but the only strange thing is that it gives me this warning every time the component unmounts. Is there something that I have to unsubscribe to in componentWillUnmount?
Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
in SvgImage (at index.js:18)
in MyImage (at index.js:71)
in RCTView (at View.js:60)
in View (at index.js:70)
in RCTView (at View.js:60)
in View (at index.js:69)
in RCTScrollContentView (at ScrollView.js:791)
in RCTScrollView (at ScrollView.js:887)
in ScrollView (at index.js:68)
in Login (created by Connect(Login))
in Connect(Login) (at SceneView.js:10)

try doing this -> got to svgImage.js inside the library folder and do the following changes

go to componentWillReceiveProps and add this.setState({ isMounted: false, fetchingUrl: null });
to the end of the function ..

it worked for me

hey also add this to the start of the component ->
constructor(props) {
super(props);
this.state = { fetchingUrl: null, svgContent: null, isMounted: true };
}

@appdemox sadly that didn't fix it for me, still getting the error (the same one described above)

so im not the only one...
same problem...
dont want to re-write library... any solutions so far?

thanks but that did not fix it for me..

Hi,
When this component mounts, it tries to fetch the svg file data and sets it to state. It is a one time operation. RN is warning about a potential memory leak in a case where a component maybe subscribed to an event listener, and continues to call setState when the event triggers (even though the component has unmounted). So calling setState after component has unmounted could be a sign that you have an event listener that has not been purged yet, and such event listener could cause memory leak. There is no memory leak in this case since the image is only attempted to be fetched once, and setState is called definitely just once. I could add a fix to not call setState if component has already been unmounted, but that is not the issue here.
It seems like there is an underlying issue with component in the root level.
I'll give you an example: If you have a loading spinner that uses this component, and this component fetches data from uri provided, and before the svg can be loaded, the actual data has been fetched so there is no need to show the spinner anymore.
In this case, you would probably be better off using an icon font or a svg from within project instead of loading it from remote uri (since there is no point making the user to wait for some time just to see a loading spinner).

The other case is that you actually have a view that needs to render an image, but the parent keeps modifying the key so the Image component keeps getting recreated multiple times. This could be a big perf issue in your app.
So I suggest you to put a console.log in the constructor of a parent component or in the SvgImage component itself, and see if constructor keeps getting called multiple times for a single image. If that is the case, you need to debug why the node kept getting recreated and fix the issue in your code.
Post your findings here after checking.
Cheers!


Is there any way to change or add fields to Prometheus AlertManager's default alert json format

I'm using prometheus AlertManager to send alerts and also using webhooks to send alerts using HTTP POST (https://prometheus.io/docs/alerting/configuration/#wechat_config). Prometheus Alertmanager generate default json format for alerts but i need to change the json format (simply need to put the default json inside one key "records" or simply need to add a field in the default json message). Is it possible to add new key fields in the json?.
Default alert json format
{
  "version": "4",
  "groupKey": <string>,    // key identifying the group of alerts (e.g. to deduplicate)
  "status": "<resolved|firing>",
  "receiver": <string>,
  "groupLabels": <object>,
  "commonLabels": <object>,
  "commonAnnotations": <object>,
  "externalURL": <string>,  // backlink to the Alertmanager.
  "alerts": [
    {
      "status": "<resolved|firing>",
      "labels": <object>,
      "annotations": <object>,
      "startsAt": "<rfc3339>",
      "endsAt": "<rfc3339>",
      "generatorURL": <string> // identifies the entity that caused the alert
    },
    ...
  ]
}

Need to add new fields
{
  "records":[
{ "value":

... --> Alert json will be here

}
]
}

Example json (added "records and value" to json)
{
  "records":[
{ "value":
{
  "receiver": "email-logs",
  "status": "firing",
  "alerts": [
    {
      "status": "firing",
      "labels": {
        "alertname": "CPUUsageAbove20%",
        "instance": "node-exporter:9100",
        "job": "node-exporter",
        "monitor": "my-project",
        "severity": "warn",
        "team": "raptors"
      },
      "annotations": {
        "dashboard": "www.prometheus.io",
        "description": "CPU usage on node-exporter:9100 has reached 60"
      },
      "startsAt": "2020-04-30T08:03:17.309164516Z",
      "endsAt": "0001-01-01T00:00:00Z",
      "generatorURL": "http://0ab6d9955c65:9090/graph?g0.expr=60+%3E+job%3Anode_cpu_seconds%3Ausage+%3E+20\u0026g0.tab=1",
      "fingerprint": "9c558a8c20c2ba08"
    }
  ],
  "groupLabels": {
    "alertname": "CPUUsageAbove20%",
    "team": "raptors"
  },
  "commonLabels": {
    "alertname": "CPUUsageAbove20%",
    "instance": "node-exporter:9100",
    "job": "node-exporter",
    "monitor": "my-project",
    "severity": "warn",
    "team": "raptors"
  },
  "commonAnnotations": {
    "dashboard": "www.prometheus.io",
    "description": "CPU usage on node-exporter:9100 has reached 60"
  },
  "externalURL": "http://5493399b56dc:9093",
  "version": "4",
  "groupKey": "{}/{team=~\"^(?:(raptors|leafs))$\"}:{alertname=\"CPUUsageAbove20%\", team=\"raptors\"}"
}
}
]}

There is no such option in alertmanager. Any json payload manipulation should be handled by webhook receiver.

What @paulfantom says. See https://github.com/prometheus/alertmanager/issues/701 also.
I'm closing it for now. If you have further questions, please use our user mailing list, which you can also search.


Easily Load Web Extensions

Description
User Stories

As an Sysadmin I want to add a web extension very easily so that I can enrich the functionality of the Web UI without much manual configuration.

Value

increase adoption of web apps and extensions

Acceptance Criteria

web service allows to load web apps from a dedicated, configurable apps folder
contents of the apps folder are a) app releases (.tar files) and b) optionally config snippets for the individual apps
web service extracts app releases at runtime and:

makes the contents available via http GET
inserts the apps into the config.json

mechanism to disable apps for the next service restart (e.g. with a file name prefix/suffix)
app signing for integrity check (followup?)

Context / history

first idea from @dragotin and Benedikt https://zoom.us/wb/doc/GG5IHxuaS2OEnn3UMXkIGg/p/54350342586368

Definition of ready

[ ] Everybody needs to understand the value written in the user story
[ ] Acceptance criteria have to be defined
[ ] All dependencies of the user story need to be identified
[ ] Feature should be seen from an end user perspective
[ ] Story has to be estimated
[ ] Story points need to be less than 20

Definition of done

Functional requirements

[ ] Functionality described in the user story works
[ ] Acceptance criteria are fulfilled

Quality

[ ] Code review happened
[ ] CI is green (that includes new and existing automated tests)
[ ] Critical code received unit tests by the developer

Non-functional requirements

[ ] No sonar cloud issues

Configuration changes

[ ] The next branch of the ocis charts is compatible

I would go for a "web" service based approach in the first iteration.

Add an extra config for an WEB_EXTENSIONS_PATH

add an extra route to the proxy as a web extensions-web prefix
add a mechanism to parse yaml files in the extensions to collect snippets for the merged config.json
add a signatures.json to every web extension (like oc10) and validate in the ocis web service

@micbar, @kulmann, @tbsbdr
web service allows to load web apps from a dedicated, configurable apps folder is fine in my opinion but i have concerns regarding contents of the apps folder are a) app releases (.tar files) in combination with web service extracts app releases at runtime and:... could be a tar.BOMB 💣 💥
following suggestions:

ocis scans a folder at startup to obtain available web-apps (apps have to follow a strict format)
the whatever-app.tar.gz is not extracted automatically at runtime (or startup) , instead we add a cli admin command to load an app, which means:

the cli loads the app (filesystem, gitHub release, etc.)
the cli scans the app if the artifacts contains everything and is valid (integrity, structur, configuration)
the cli extracts the app to the destination folder which is exposed to the public and can be loaded by web

another topic regarding app configuration, if a app can change over time (new version, etc.) the contained config should not be changed, instead i recommend the following:

the app-name/config.json should not be edited and stays the same over time.
the user has to add the app config to OCIS_HOME/config/web.yaml
ocis merges OCIS_HOME/config/web.yaml and app-name/config.json together, YAML wins.

I don't want to build a CLI in the first iteration. That's a UX improvement for small instance admins later on. Let's let the user unpack the app artifact (tarball) themselves.

@kulmann, @dragotin, @micbar, @tbsbdr ready for testing, please have a look and tell me if something is missing


Integration with ctl template repositories

This seems like it works well with the current PR for the django/docker repo:
https://github.com/20c/ctl-tmpl-django/issues/2
docker-compose.yml, django-uwsgi , Dockerfile, manage.sh, run.sh, compose.sh all look good
@vegu  one thing to note is that entrypoint.sh currently has the line
export DJANGO_SETTINGS_MODULE={{ project_name }}.settings

in aactl this would be aaactl.settings but currently the settings are located at account_service.settings
This could be resolved by adding a settings_name variable or standardizing the aaactl repo structure. What are your thoughts?

i think we should move account_service to aaactl to be inline with how we do it for all the other stuff.
a settings_name thing might be good too, but lets do the above first


Tflite model show a completely different result than frozen inference model

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No, I use a Github repo
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 x64
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: Samsung A3 2016
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below):1.13.1
Python version:3.6.8
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:9.0/7.4
GPU model and memory: Nvidia GeForce 840m

Describe the current behavior
Hello,
I have trained my custom dataset using the Github project link to create a model that detects eye region with landmarks.
I have converted the ckpt files model to pb and from pb to tflite model.
Everything is OK here when testing with ckpt files and pb frozen graph in prediction it gives 75 %, 80 % predictions :
That a result on ibug dataset

I have used ML Kit firebase SDK to integrate tflite model and I have followed instruction for how to use custom model.
For the first time, I tried to print just values (x,y) couples of points ( landmarks ) that can be drawn on the eye region contours
Describe the expected behavior
I got values but are not the same with the same image tested with ckpt files.
I have
Code to reproduce the issue
I have add a new issue on firebase Ml kit , you can find the code and logs here
Update:
This is the difference showing between tflite model prediction and frozen inference model prediction:

Tflite model prediction:

frozen inference graph model prediction:

How can I solve this?
I really need help to fix this problem.
Thanks

No activity.
Closing.
Please reopen if you're still having issues.
Thanks


Building on Mac OS X with Node v8.1.4 fails

Running script/build from a clean client on Mac OS X with Node v8.1.4 and npm v5.0.3 seems to result in build errors. @lee-dohm was able to reproduce this on his end too.
The errors:
Error: Module version mismatch. Expected 48, got 57.
    at Error (native)
    at Object.Module._extensions..node (module.js:597:18)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/willem/dev/atom/apm/node_modules/atom-package-manager/node_modules/git-utils/lib/git.js:8:16)
    at Object.<anonymous> (/Users/willem/dev/atom/apm/node_modules/atom-package-manager/node_modules/git-utils/lib/git.js:371:4)
    at Module._compile (module.js:570:32)
child_process.js:611
    throw err;
    ^

Error: Command failed: /Users/willem/dev/atom/apm/node_modules/atom-package-manager/bin/apm --loglevel=error install
    at checkExecSyncError (child_process.js:588:13)
    at Object.execFileSync (child_process.js:608:13)
    at module.exports (/Users/willem/dev/atom/script/lib/run-apm-install.js:14:16)
    at Object.<anonymous> (/Users/willem/dev/atom/script/bootstrap:29:1)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)

FYI, the line in git-utils/lib/git.js:8 is Repository = require('../build/Release/git.node').Repository;.

I'm getting this issue as well! I believe it has to do with the fact that you can't build apm with node 8.1.4, someone correct me if I'm wrong about this.

It sounds like #15041 should fix this.


[TextField] InputLabel still raised after clearing native input value

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
Even if it's non-standard way to manipulate inputs in React, we should be able to reset the Input state by doing this.inputElement.value = ''
Same happens when using formElement.reset() with a wrapping <form>
Again, I know it's not the recommended way to manipulate form elements, but I'd still expect that it behaves like natively
If it's not possible to fix this small bug (without the 'brutal' hack way), it's fine
Current Behavior 😯
The Input Label stay in raised position, as if the value was not empty
Steps to Reproduce 🕹
https://codesandbox.io/s/ov2vk41k99

Type in the input
Click Clear button
See that the Input Label stays in raised position

Your Environment 🌎

Tech
Version

Material-UI
3.6.2 (latest)

React
16.5.2 (latest)

Browser
Chrome  71

@caub I would look into React side. Last time I have checked, they ignore these types of DOM manipulations.

Thanks for the response, I have edited the codesandbox and tried triggering all sorts of events like 'change', but still the same.
It's fine no worry, I'll use a hack, or stateful inputs
Thanks

@caub You can try to use the React test helpers. There a variety of issues similar to this one on React side. Here is one of them https://github.com/facebook/react/issues/3249.


Sozial Apps

Social Apps (Facebook, Twitter )  are in the Section Tweak´s on iPad Air2 iOS 9.1.

@Packetfahrer I think this bug is in PreferenceLoader itself, it just need to be updated.

No longer relevant as this has since been fixed in the latest version.


部署后不能正常启动tomcat

tomcat启动时报以下错误信息：
严重: The web application [] appears to have started a thread named [Thread-229] but has failed to stop it. This is very likely to create a memory leak.
原因是部署后jdbc.properties配置文件的数据库连接被修改为jdbc:mysql://.server:3306/cmdb?useUnicode=true&characterEncoding=UTF-8
导致不能正常连接数据库

这个由于使用deploy.sh造成的，以修复


use parking_lot

Are there any significant improvements in benchmarks? I feel hesitant about adding a new dependency if not.

Could this be made into an optional feature while defaulting to the standard library ?

Could this be made into an optional feature while defaulting to the standard library ?

As of performance improvements, the main one is that parking_lot::Condvar is a lot cheaper to create compared to std::sync::Condvar cause the latter allocates.

As of performance improvements, the main one is that parking_lot::Condvar is a lot cheaper to create compared to std::sync::Condvar cause the latter allocates.

I'm okay with adding this as an optional feature, but I'd like to know how much this actually improves performance before merging. (I know parking_lot is basically faster than std, but switching to it doesn't necessarily help improve overall performance.)

Closing -- std mutex enough fast since https://github.com/rust-lang/rust/pull/95035


Add support for Scala 2.12

Hi, @BenFradet. Do you plan on releasing the support for scala 2.12 and spark 2.4.x ?

it's planned, haven't had time to do it though, feel free to open a PR :+1:

done