handle inaccessible api_url exception

Description:
On entering wrong inaccessible api_url end user gets to see nested error trace
Current error trace looks like:

Traceback (most recent call last):
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_exceptions.py", line 339, in map_exceptions
yield
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 854, in _send_single_request
(status_code, headers, stream, ext) = transport.request(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpcore/_sync/connection_pool.py", line 200, in request
response = connection.request(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpcore/_sync/connection.py", line 87, in request
self.socket = self._open_socket(timeout)
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpcore/_sync/connection.py", line 108, in _open_socket
return self.backend.open_tcp_stream(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpcore/_backends/sync.py", line 144, in open_tcp_stream
return SyncSocketStream(sock=sock)
File "/usr/lib/python3.8/contextlib.py", line 131, in exit
self.gen.throw(type, value, traceback)
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpcore/_exceptions.py", line 12, in map_exceptions
raise to_exc(exc) from None
httpcore.ConnectError: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ankushchander/workplace/open_source/rubrix-tryout/test_rubrix.py", line 5, in
rb.init(api_url="http://localhost:80000")
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 603, in wrapped_func
return func(*args, **kwargs)
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 617, in init
ACTIVE_API = Api(*args, **kwargs)
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 144, in init
self._user: User = users_api.whoami(client=self._client)
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/sdk/users/api.py", line 9, in whoami
response = client.get("/api/me")
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/sdk/client.py", line 79, in get
response = self.httpx.get(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 900, in get
return self.request(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 721, in request
return self.send(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 753, in send
response = self._send_handling_auth(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 791, in _send_handling_auth
response = self._send_handling_redirects(
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 823, in _send_handling_redirects
response = self._send_single_request(request, timeout)
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_client.py", line 854, in _send_single_request
(status_code, headers, stream, ext) = transport.request(
File "/usr/lib/python3.8/contextlib.py", line 131, in exit
self.gen.throw(type, value, traceback)
File "/home/ankushchander/workplace/.virtualenv/rubrix-env/lib/python3.8/site-packages/httpx/_exceptions.py", line 356, in map_exceptions
raise mapped_exc(message, **kwargs) from exc  # type: ignore
httpx.ConnectError: [Errno 111] Connection refused
Exception ignored in: <function Api.del at 0x7ff17980f310>
Traceback (most recent call last):
File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 155, in del
del self._agent
AttributeError: _agent

Change list:

[ ] handle connectionError expicitly.
[ ] check for existing attribute before Api delete call

Error trace now looks like
Traceback (most recent call last):
  File "/home/ankushchander/workplace/open_source/rubrix-tryout/test_ruibrix.py", line 5, in <module>
    rb.init(api_url="http://localhost:80000") #, api_key="12096-key")
  File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 603, in wrapped_func
    return func(*args, **kwargs)
  File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 617, in init
    __ACTIVE_API__ = Api(*args, **kwargs)
  File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/api.py", line 144, in __init__
    self._user: User = users_api.whoami(client=self._client)
  File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/sdk/users/api.py", line 9, in whoami
    response = client.get("/api/me")
  File "/home/ankushchander/workplace/open_source/rubrix/src/rubrix/client/sdk/client.py", line 88, in get
    raise RubrixClientError(err_str) from None
rubrix.client.sdk.commons.errors.RubrixClientError: Your Api endpoint at http://localhost:80000 is not available or not responding.

Hi @Ankush-Chander, and thanks for the PR.
The error message is quite better than the original one, but I think we can profit from this PR to create a common httpx --> rubrix client error manager.
We should handle all client HTTP methods ( get, post , put,...)  and not only the get one. So, the idea I have is to create a decorator for httpx errors handling, and just decorate the needed methods with it. The changes you've done in the PR could be rewritten as follow:
...
@with_httpx_error_handler
def get(.....)
   ...

and somewhere inside the decorator implementation:
def with_httpx_error_handler(f):
   ...
   try:
      f(....)
   except httpx.ConnectionError:
      raise GenericAPIError(...)

Could you tackle the changes in this way? Please, feel free to comment on anything you're not comfortable with.

Hi @frascuchon
A generic solution for all methods sounds great.
On it.

Hi @frascuchon
I added the reusable decorator in the same class.
Please review.

Sorry. I've been doing some tests after PR approval finding the error about returning the function value


pyfribidi: disable for pypy

Extension module. pypy is unsupported.

#9471

Could you also push this to 15.09.


Port to Slim

The custom routing I created is.. not amazing and generally just very clunky.
Porting the CMS to use Slim will make it more flexible, more approachable for developers, and likely more reliable.
Additionally, Slim already has config files available for Apache, NGINX, lighttpd. IIS, and Caddy so supporting a broader range of web-servers will be easier and will make it easier for me to build a proper API into the CMS, making it more powerful and less clunky to work with.
Todo
Main app

[x] Theme asset routes & response.
[x] Routing to the content & response for that.
[x] Redirect function.
[x] Exception handling.
[x] HTTPS redirects.

Plugins

[x] Allowing plugins to set routes (Current method is hard-coded in the index file)
[x] Migrate plugin routing to Slim
[ ] Admin
[x] Profile
[x] Robotstxt
[x] Sitemap

Other

[ ] Optimizations
[x] Using middleware to enforce URL slash constancy (this is good for SEO)
[ ] Review available middleware packages and decide if any of them are of value to AntCMS.
[x] HSTS when the HTTPS redirect is enabled. (Better security and potentially good for SEO)
[ ] Any corrections needed to the tests.

Closing this in favor of actually porting it to Flight, which is faster, better maintained, and easier to use compared to Slim.
Bit of a setback, but long-term I think it'll be best


Invalid CSS for @keyframes pulse, pulse--quiet and indeterminate-loop in large scale

Description
The large scale for barloader and coackmark includes a specific keyframe definition but the produced CSS is invalid:
.spectrum--large {
@keyframes pulse {
  0% {
    -webkit-transform: scale(1);
    opacity: 0;
  }
  50% {
    -webkit-transform: scale(1.5);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(2);
    opacity: 0;
  }
}
@keyframes pulse--quiet {
  0% {
    -webkit-transform: scale(0.8);
    opacity: 0;
  }
  50% {
    -webkit-transform: scale(1.5);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(2);
    opacity: 0;
  }
}

}

.spectrum--large {
@keyframes indeterminate-loop {
  100% {
    transform: translate(452px);
  }
}

}

Steps to reproduce

npm i<EMAIL_ADDRESS>Look for dist/spectrum-core-diff.css or in :

dist/components/barloader/index-diff.css
dist/components/coachmark/index-diff.css

Environment

Spectrum CSS version:  2.18.0

This is only an issue in the diff build.

Diff build is deprecated so we won't be fixing this.


Website Redesign

Website Redesign
This is an open request to any designers who may be interested in helping with this issue through the creation of design mockups, especially since while I can help with the implementation, my UI/UX design skills are sub-par. If you'd like to help, please let us know!
The current website is due for a proper redesign as new features and capabilities have been added without much consideration for the UI leading to a bloated cluttered experience. The requirements for the project have since increased in scope as Fontsource aims to be more of a "hub" for all things font-related.
The website has two primary sections to consider, the documentation and font directory:
Documentation
I'm a big fan of Vercel (which imo is a cleaner rendition of Next.js) and Chakra UI's documentation. The current Fontsource documentation is similar in layout, but could definitely get a little touch up in design and organisation. e.g. using accordions or sectioning off entirely different things like docs, guides and integrations
Other ideas to consider:

i18n support (I could help out with the Japanese docs)
DocSearch implementation (I'm not sure if it's necessary since there isn't that much documentation in the first place)
Possibly extending the max-width of the container for better readability?
Changelog

Other references:

Vitepress + Vitest

Directory
Google Fonts and Adobe Fonts are probably the two main players for a modern font directory, although I'm not really looking to compete with them in the first place since there is no real need to. However, it is still a fact that people use our directory and thus it is better for us to overhaul this section to a comparable standard.
Search and Directory Preview
Moving over to the more common approach where all fonts are previewable on the main page will allow fonts to be more easily discoverable and comparable. This does remove the need for the sidebar.
I think search doesn't need any technical changes, but it may be better to move away from the search modal for the main page to better accommodate adding previews on the main page. However, I still think we should keep the modal whenever the user uses CTRL+K anywhere on the site (maybe use kbar or cmdk). Similar to GitHub's new command pallete feature (which is under the feature preview tab currently).

#493

Additional ideas:

Global text preview state - in other words, changing the preview text on one page carries over across the entire website
Random button - fun little gimmick to randomly select a font

Font Preview
The layout can completely be redone, especially as there is more room without the sidebar. I'm not too sure what is the ideal format, but I do know we need the following elements:

Preview functionality with selection of variables
General information on the font where information can be scraped from #351
NPM installation guide (although maybe that should be on a separate tab like font download below)
Clipboard support for installation instructions
Links to NPM, GitHub, Source and Licenses.

Ideas to experiment with:

Variable font preview compatibility - add support to modify variable axis' to preview
#293
Possibly link to jsDelivr CDN? It's interesting to see that the jsDelivr CDN variant of a Google Font is used quite a bit (7M hits/mo for Roboto).

Font Download
This is on the same page as each individual font preview.
google-fonts-webhelper is a great project but has decayed from lack of maintenance. The Fontsource API can easily be extended to support downloading custom packages for users to directly self-host the files themselves.
Similar to the above implementation, we can let users modify variables and generate the appropriate CSS for them to use, with a direct download to the font files themselves. I think this important to allow this service to be accessible to configurations that do not support NPM or bundlers.
Other websites:

https://www.1001freefonts.com/
https://www.dafont.com/
https://www.fontsquirrel.com/

Maybe to help fit this on each font family preview page, we should use tabs?

#244

Of course, feel free to suggest any ideas or improvements if you think so! These are just a bunch of things I brainstormed in the span of an hour, so this probably doesn't cover everything. Once again, I'd love to hear from anyone who would be interested in helping out with the design process for this issue!

Also, under the Font Preview, a Flutter tab for an install guide and available parameters.

I am not a designer by profession, but I would like to contribute to this project.
May I redevelop the website from scratch?
Here is my plan.

Vite + SolidJS + Windi CSS
List fonts like Google Fonts on the root page
Move the search box to the header so that it can be searched at any time
Add random button to header
Move the ad banner somewhere else
A site of this size should be able to complete the search on the client side without using Algoria

I am also a Japanese speaker, so I can help translate the documentation.

Hey @Denden4096, whilst I'm open to new frameworks for the website redesign, I think we'd still want to stick with React/Preact rather than SolidJS due to:

Current maintainers unfamiliar with SolidJS making it more difficult to work on short term. It's also not as familiar for future contributors to also then get into
Weaker ecosystem means more work needed get things working (MDX? Algolia? The little React deps we have?). Lots more DIY which is just more maintenance to work with in the future.

I'd love to learn and work with SolidJS in my personal projects, but it's not ideal for projects that's needs a lot of collaboration for imo.
Just the other day jsDelivr offered to get their designer to try drafting up some mockups for us, so I'd like to wait for them before committing to anything else. I still do appreciate the offer and maybe we can still work together later on though!

Thanks @ayuhito, I would like to forgo working on the renewal of the Fontsouce's website for now. But I may continue to work with the Fontsouce project in the future.
Anyway, I can't wait to see how the Fontsouce's website turns out in the future!

We've started mocking up designs and they're coming along nicely. I'll post the designs in this issue when they're completely finished, but if you're interested in progress pics, you can join our Discord.
We've decided on going with a Remix + CF Workers website and use Radix UI + Stitches for our component library. Main reason for switching from Next.js to Remix is the SSR + first-class MDX support which would be a lot more flexible and performant than our current setup. Lots more to come soon!
Feel free to involve yourself if you're interested in helping!

Closing in favour of #558.


Task10,Task11,Task12,Task13,Task14

SourceCode/2023/Oct2023/Basics/Chirag/Task11/project.json
Looks like you forgot to add the Automation Hub URL. You can add this through "Project Settings".
Also, I noticed a few unnecessary packages in your project: UiPath.Excel.Activities, UiPath.Mail.Activities, UiPath.Testing.Activities, UiPath.UIAutomation.Activities. These aren't being used and removing them could speed up your process execution time.
In terms of scoring:

Code Completion: 1.5/2 - Project incomplete due to missing Automation Hub URL.
Execution: 2/2 - No issues here, just potential for optimization.
Annotations/Comments: 1/1 - No specific issues found regarding this.

Keep up the good work, and make sure to clean up and refine where necessary for the best results!

SourceCode/2023/Oct2023/Basics/Chirag/Task12/project.json
Score

Code Completion: 2
Execution: 1
Annotations and Comments: 1

Review

You seem to have no issues with code completion. Great job!
There is a big issue with the execution side of things. 5 unnecessary dependency packages detected. That will slow down your execution time. Make sure you just include packages in your project that you actually use. You can do this by going to Manage Packages and removing the unused ones.
Good job with the annotations and comments. Kept it simple and understandable.

Solution

Project settings > Add required Automation Hub URL.
Manage Packages > Remove unused packages (UiPath.Excel.Activities, UiPath.Mail.Activities, UiPath.Testing.Activities, UiPath.UIAutomation.Activities).
Remember, removing extra packages will speed up your process. With these taken care of, your process should run smoothly. Keep it up!

SourceCode/2023/Oct2023/Basics/Chirag/Task13/project.json
Scores:
Code completion: 2, Execution: 1.5, Annotations and comments: 1
Review remarks:

No Automation Hub URL in project settings: Head over to "Project Settings" and add the required URL.
Unused packages: Cleaning up can help make things run smoother. Consider removing unused packages like UiPath.Mail.Activities, UiPath.Testing.Activities, and UiPath.UIAutomation.Activities.

Keep up the work and remember, coding is all about continuous refining.

SourceCode/2023/Oct2023/Basics/Chirag/Task14/project.json
{
"Automation.csproj": {
"Comment": "There are few issues to address. First, your organization mandates defining an Automation Hub URL. Head over to 'Project Settings' to fix this. Second, there're two dependency packages 'UiPath.Mail.Activities' and 'UiPath.Testing.Activities' not being utilized. Get rid of these unused packages to make the process execute faster.",
"Score": {
"Code Completion": 1.5,
"Execution": 2,
"Annotations and Comments": 0.5
}
}
}

SourceCode/2023/Oct2023/Basics/Chirag/task10/project.json
Code Completion: 2/2
The code seems to be finished at the time of the review. No places were found where the code execution seems incomplete.
Execution: 1/2
The code is not used efficiently. There are several packages imported into the project that you aren't using. Please get rid of these as they are slowing your program down.
Annotations and Comments: 1/1
Even though the code has no comments or annotations, given its current structure and readability, it doesn't seem to require any.
Overall Score: 4/5
Suggested Improvements:

The project is missing Automation Hub URL. You need to add it in the "Project Settings".
Clean up your code by removing unused packages. In your project, you are not using these packages: UiPath.Excel.Activities, UiPath.Mail.Activities, UiPath.Testing.Activities, and UiPath.UIAutomation.Activities. By removing these unused dependencies, you can improve the execution time of your project.

@ChiragJindal1231998
Task -10
Code verified.
Task -11
Code verified.
Task -12
Code verified.
Task -13
Code verified.
Task -14
Code verified.


Integrate Sprint #3 of Team #1

This is the PR for Team 1 for the Progrss done on Sprint 3
solves #45 #76 #42 #78 #47

Tests are currently failing due to a not available server. It should work as soon as the server is back.


Added linkedin feature

What is this?
Linkedin feature updated.
Huacnlee can you a look into the code

You need rebase master and merge multiple commits into 1 commit.

And fix your committer name and email to relation GitHub user.


[BUG] Debug build fails when using adaptive icon foreground

:information_source: Info

Version: >=1.1.4
:speech_balloon: Description

Debug build fails:
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:processDebugResources'.

A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
Android resource linking failed
\app\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher.xml:4: AAPT: error: resource drawable/ic_launcher_foreground (aka com.example.app:drawable/ic_launcher_foreground) not found.

:scroll: Pubspec.yaml

name: <stripped>
description: <stripped>

version: 1.0.0+1

environment:
  sdk: ">=2.16.1 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  flutter_native_splash: ^2.1.1
  vrouter: ^1.2.0+21
  google_fonts: ^2.3.2

dev_dependencies:
  flutter_app_name: ^0.1.1
  icons_launcher: "^1.1.4"
  flutter_test:
    sdk: flutter

  flutter_lints: ^1.0.0

flutter_icons:
  android: true
  ios: true
  image_path: "assets/logo-bg.png"
  adaptive_icon_background: "#242424"
  adaptive_icon_foreground: "assets/logo.png"

flutter_native_splash:
  background_image: "assets/splashscreen_background.png"
  image: "assets/logo.png"

flutter_app_name:
  name: <stripped>

# The following section is specific to Flutter.
flutter:
  uses-material-design: true

  assets:
    - assets/

Make sure your android \res\mipmap-anydpi-v26\ic_launcher.xml is load image from mipmap like this
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
  <background android:drawable="@mipmap/ic_launcher_background"/>
  <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

and make sure images are generated to android \res\mipmap completely. Thanks

Here's my \res\mipmap-anydpi-v26\ic_launcher.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
  <background android:drawable="@color/ic_launcher_background"/>
  <foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Images did get generated inside \res\mipmap-xxxx

Ohh I got it. The plugin generate ic_launcher.xml incorrect I will fix it on next version. Now you can fix it by replacing @drawable to @mipmap in your ic_launcher.xml.

That did solve it indeed

New release is fixed this issue. Thanks

I'm having the same issue after the update, this is my pubspec.yaml file
flutter_icons:
  image_path: "assets/icon/applogo.png" #or .png
  adaptive_icon_background: "#000000"
  android: true
  ios: true

It looks like your AndroidManifest.xml required ic_launcher_round but you did not provide adaptive_icon_round.
You can solve this by:

remove this like android:roundIcon="@mipmap/ic_launcher_round" from your application AndroidManifest.xml
Or
add config adaptive_icon_round to let plugin generate missing icons to your project

add config adaptive_icon_foreground and adaptive_icon_round to let the plugin generate missing icons for your project

So, adaptive_icon_round, adaptive_icon_foreground and adaptive_icon_background are all three required for creating adaptative icons? In that case, would you please specify it in the docs?

@sbritorodr

Android adaptive icon will generate if you provide adaptive_icon_background  and adaptive_icon_foreground.
adaptive_icon_round is optional,  if you provide the plugin will modify your  AndroidMainifest.xml to add android:roundIcon="@mipmap/ic_launcher_round and create a new file ic_launcher_round.xml to mipmap-anydpi-v26

However in your case I see your   AndroidMainifest.xml is already include android:roundIcon="@mipmap/ic_launcher_round but you don't have ic_launcher_round resources.

Thank you, I've finally fixed my problem. I've followed your indications, deleted and regenerate the folders and finally worked. Thanks


Transpose of HypreSmoother

Currently HypreSmoother::MultTranspose is not defined. I am writing some multigrid that assumes the application of transpose of some solver/smoother during the multigrid cycle. So the code breaks when HypreSmoother::MultTranspose is called.
Is it because all the smoothers are symmetric so Mult is sufficient? Or the transposes of some of the smoothers are not easy to define? Can we at least redirect MultTranspose to Mult whenever the smoother is symmetric?

Looking at the code for hypre_ParCSRRelax it looks to me like all the Hypre smoothers are symmetric, so I recommend just adding a HypreSmoother::MultTranspose method that calls Mult. But I'm not entirely sure I'm right about hypre so maybe we should ask an expert?

I think redirecting MultTranspose to Mult makes sense when the corresponding operator is symmetric. When it is not symmetric, or unknown, we can through an error, for now.

Currently all the smoother options in HypreSmoother are symmetric

Currently all the smoother options in HypreSmoother are symmetric

This is probably assuming (at least in some cases) that the HypreParMatrix is also symmetric.

@chakshinglee, do you want to propose a PR for this?
I think there is generally no assumption for symmetry in the hypre smoothers, but we can discuss that in the PR...

Yes, I will submit a PR. Briefly, I am thinking to just add a flag to indicate symmetry so that the users can turn it on in the case when symmetry of the operator/smoother is known to them.

Thanks Chak. Discussion continued in #1879.


Output stellar property plots

Modify the script which runs SM-emp to output stellar property plots.

I have modified the script run_smemp_apf.ipynb to output the stellar property plots for each star and save to a directory.
Example plots:


Bind some useful methods in SurfaceTool to GDScript

These include:

generate_tangents()
add_to_format()
create_from()
append_from()

Reordered and grouped the bindings to match the header for improved readability.
Removed commented out generate_flat_normals() method which wasn't present
in the header.
Fixes #9946

I see a few other methods in the header which aren't bound, might be worth adding too:

void generate_tangents()
void add_to_format(int p_flags)
void append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform)

When adding them, to improve readability you could also reorder the bindings to match the header, so that it's easier to see if there are missing pieces.

I have removed commented out generate_flat_normals() method which wasn't present in the header. Is that okay? Or was it put there for future implementation?

I have removed the commented out generate_flat_normals() method which wasn't present in the header. Is that okay? Or was it put there for future implementation?

You did well, it was likely a leftover from a previous API.


backend logic: based on majority vote (for ingredients) a list of optional receipes from API

This dev tasks is still open and unassigned, bc we moved the whole user story to future work.


BaseClientService isn't thread-safe

Solve #592. Change the API of ConfigurableMessageHandler to expose an
enumerable of handlers and interceptors and NOT a list.

Ping... I'll be happy to get some feedback on this one.
Thanks!
Eyal

Can you setup you account to be recognized by google bot? (currently it says cla:no). This is probably done by signing CLA for your personal e-mail (if associated with your github account) or properly linking your github account with you corp e-mail.

I signed it and changed my primary account email to google as well.

I just improved the comment. I kept the 3 locks (since I think it's a better approach, lock only what you need with minimized scope).
Ready for a (maybe?) final review.
Thanks Jan for the thorough review.

Besides the nit, LGTM.


Seeing if clearing the session helps with Travis flakiness

http://stackoverflow.com/a/35705890 seems relevant as well

but wow, that worked and it was crazy fast! thanks

Fixes #270.

merging this, thanks @matt-gardner


some fixes

376b91c: quoting a quote that quoted an entry with media attachment broke the link to that media attachment → fixed!
8c9a4ea: quoting one's own entries to make a thread cluttered up the mentions → fixed!
07e420b: rewrote the night mode implementation according to @0x0ade's suggestion

yup!


Pose Detection Not Working For The iOS build

Plugin Version or Commit ID
v0.8.2
Unity Version
2020.3.21f1
Your Host OS
Windows 10 Home
Target Platform
iOS
[Windows Only] Visual Studio C++ and Windows SDK Version
Visual Studio C++: 14.29.30135
Window SDK: 10.0.19041.685
[Linux Only] GCC/G++ and GLIBC Version
No response
[Android Only] Android Build Tools and NDK Version
No response
[iOS Only] XCode Version
13.2.1 (13C100)
Command Sequences
I have build the iOS and desktop framework using the command :-
python build.py build --desktop cpu  --ios arm64 -vv
Log
2022-04-06 15:14:40.042293+0530 MediaPipeUnityPlugin[1302:315917] Built from '2020.3/staging' branch, Version '2020.3.21f1 (a38c86f6690f)', Build type 'Development', Scripting Backend 'il2cpp'
2022-04-06 15:14:40.043795+0530 MediaPipeUnityPlugin[1302:315917] MemoryManager: Using 'Default' Allocator.
-> applicationDidFinishLaunching()
PlayerConnection initialized from /private/var/containers/Bundle/Application/442306F9-8031-4C8A-A556-32F42DFF9C58/MediaPipeUnityPlugin.app/Data (debug = 0)
PlayerConnection initialized network socket : <IP_ADDRESS> 55000
Broadcasting "[IP] <IP_ADDRESS> [Port] 55000 [Flags] 19 [Guid]<PHONE_NUMBER> [EditorId]<PHONE_NUMBER> [Version] 1048832 [Id] iPhonePlayer(PsiBorgs-iPhone):56000 [Debug] 1 [PackageName] iPhonePlayer [ProjectName] MediaPipeUnityPlugin" to [<IP_ADDRESS>:54997]...
Waiting for connection from host on [<IP_ADDRESS>:55000]...
Remaining time:8s
Remaining time:7s
Remaining time:6s
Remaining time:5s
Remaining time:4s
Remaining time:3s
Remaining time:2s
Remaining time:1s
Remaining time:0s
Timed out. Continuing without host connection.
Started listening to [<IP_ADDRESS>:55000]
Starting managed debugger on port 56000
PlayerConnection already initialized - listening to [<IP_ADDRESS>:55000]
2022-04-06 15:14:50.258729+0530 MediaPipeUnityPlugin[1302:315917] Metal GPU Frame Capture Enabled
2022-04-06 15:14:50.258850+0530 MediaPipeUnityPlugin[1302:315917] Metal API Validation Enabled
-> applicationDidBecomeActive()
GfxDevice: creating device client; threaded=1
Initializing Metal device caps: Apple A13 GPU
Initialize engine version: 2020.3.21f1 (a38c86f6690f)
2022-04-06 15:14:51.041886+0530 MediaPipeUnityPlugin[1302:315917] Unbalanced calls to begin/end appearance transitions for <UnityViewControllerStoryboard: 0x100fc85f0>.
2022-04-06 15:14:51.042559+0530 MediaPipeUnityPlugin[1302:315917] Unbalanced calls to begin/end appearance transitions for <UnityDefaultViewController: 0x100e14750>.
UnloadTime: 4.978750 ms
Chose Kippie Uppie
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
OpScreenScript:PlayClickedKU_S()
UnityEngine.Events.InvokableCall:Invoke()
UnityEngine.Events.UnityEvent:Invoke()
UnityEngine.UI.Button:Press()
UnityEngine.UI.Button:OnPointerClick(PointerEventData)
UnityEngine.EventSystems.ExecuteEvents:Execute(IPointerClickHandler, BaseEventData)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()
Unloading 6 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 7.272042 ms
System memory in use before: 30.3 MB.
System memory in use after: 30.4 MB.
Unloading 12 unused Assets to reduce memory usage. Loaded Objects now: 1054.
Total: 1.105417 ms (FindLiveObjects: 0.089292 ms CreateObjectMapping: 0.036250 ms MarkObjects: 0.925833 ms  DeleteObjects: 0.053083 ms)
Unloading 4 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 8.574917 ms
System memory in use before: 30.5 MB.
System memory in use after: 30.5 MB.
Unloading 13 unused Assets to reduce memory usage. Loaded Objects now: 1029.
Total: 1.083292 ms (FindLiveObjects: 0.056625 ms CreateObjectMapping: 0.025042 ms MarkObjects: 0.572000 ms  DeleteObjects: 0.429125 ms)
Wrong Case Selected For Instruction Script
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
InsScript:NextClicked()
UnityEngine.Events.InvokableCall:Invoke()
UnityEngine.Events.UnityEvent:Invoke()
UnityEngine.UI.Button:Press()
UnityEngine.UI.Button:OnPointerClick(PointerEventData)
UnityEngine.EventSystems.ExecuteEvents:Execute(IPointerClickHandler, BaseEventData)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()
Unloading 6 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 8.404042 ms
System memory in use before: 30.7 MB.
System memory in use after: 30.3 MB.
Unloading 15 unused Assets to reduce memory usage. Loaded Objects now: 987.
Total: 2.238542 ms (FindLiveObjects: 0.245708 ms CreateObjectMapping: 0.049958 ms MarkObjects: 1.534917 ms  DeleteObjects: 0.407167 ms)
Bootstrap: Starting console window...
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogInfo(String, Object)
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Bootstrap: Setting global flags...
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogInfo(String, Object)
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
GlobalConfigManager: Global config file does not exist: /var/mobile/Containers/Data/Application/1BBDB4DE-E8F9-4E6A-B880-D48BE5271318/Documents/Cache/globalConfig.env
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogDebug(String, Object)
Mediapipe.Unity.GlobalConfigManager:get_Config()
Mediapipe.Unity.GlobalConfigManager:get_GlogLogtostderr()
Mediapipe.Unity.GlobalConfigManager:SetFlags()
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Bootstrap: Initializing AssetLoader...
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogInfo(String, Object)
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Bootstrap: Preparing ImageSource...
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogInfo(String, Object)
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Bootstrap: Loading the first scene...
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogInfo(String, Object)
Mediapipe.Unity.d__17:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Unloading 6 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 3.226542 ms
Calling Initializer
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Mediapipe.Unity.PoseTracking.PoseTrackingSolution:AssetInitializer()
Mediapipe.Unity.PoseTracking.PoseTrackingSolution:Awake()
Calling Initializer
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Mediapipe.Unity.PoseTracking.PoseTrackingSolution:AssetInitializer()
Mediapipe.Unity.PoseTracking.PoseTrackingSolution:Awake()
DetectionAnnotationController: Adding RectTransform to Annotation Layer
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, String, Object)
Mediapipe.Unity.MemoizedLogger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:Log(LogLevel, String, Object)
Mediapipe.Unity.Logger:LogVerbose(String, Object)
Mediapipe.Unity.AnnotationController`1:Start()
System memory in use before: 34.0 MB.
System memory in use after: 34.1 MB.
Unloading 2 unused Assets to reduce memory usage. Loaded Objects now: 2845.

No registered object with name: PoseLandmarkCpu; Unable to find Calculator "PoseLandmarkCpu"
at Mediapipe.Status.AssertOk () [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.GraphRunner+d__39.MoveNext () [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.WaitForResult+d__20.MoveNext () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.MonoBehaviour.StartCoroutine (System.Collections.IEnumerator routine) [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.WaitForResult..ctor (UnityEngine.MonoBehaviour runner, System.Collections.IEnumerator inner, System.Int64 timeoutMillisec) [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.GraphRunner.WaitForInit (Mediapipe.Unity.RunningMode runningMode) [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.ImageSourceSolution1+<Run>d__12[T].MoveNext () [0x00000] in <00000000000000000000000000000000>:0    at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <00000000000000000000000000000000>:0    at UnityEngine.MonoBehaviour.StartCoroutine (System.Collections.IEnumerator routine) [0x00000] in <00000000000000000000000000000000>:0    at Mediapipe.Unity.ImageSourceSolution1[T].Play () [0x00000] in <00000000000000000000000000000000>:0
at Mediapipe.Unity.Solution+d__4.MoveNext () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <00000000000000000000000000000000>:0
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:LogError(String, Object)
Mediapipe.Unity.MemoizedLogger:LogError(String, Object)
Mediapipe.Unity.Logger:LogError(String, Object)
Mediapipe.Unity.d__12:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
Additional Context
The Desktop version works great on the Unity Editor without any flaw, but as soon as I build the intermediate files for the iOS and use the X-Code for building the app, it outputs the above error.

PoseTrackingGraph: Config Type = CPU

Probably you have set CPU to Inference Mode to build for Desktop, but the sample app for iOS only supports GPU.
Please revert the change and build again.

@homuler Thanks For the info!!! I read somewhere that the inference mode has to be CPU so I set it to that, will try this method once and get back with the results.


AGGrid buttons spaced strangely when there is only one column

Would expect them all right justified like when there are multiple columns
Version 2024.5.1-rc4
Build d56e8f758228a7dfb78478f983f13c1d578dde11
Electron 31.2.0
Chrome 126.0.6478.127
User Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) enso/2024.5.1-rc4 Chrome/126.0.6478.127 Electron/31.2.0 Safari/537.36

Update: it is reproducible, you need to manually resize the column.


Domainsocket

This PR's commit was removed immediately after it was merged. Apologies for this incident.


Pass error in humanize/canonicalize address to the contracts

Currently, when an error happens on the Go side when parsing an address (both ways) the error is not returned to the contract, but instead the contract is halted.
We should add a Buffer field to the Go callbacks that will be filled in when an error happens, and then that error string should be passed into the wasm contract.
On the contract side, we need to expect it, and if we get it, convert it to an StdError variant.

We can report error strings since https://github.com/CosmWasm/cosmwasm/pull/443. However, in the import implementation we don't know which error types to report. Error strings are created by returning Ok(error_region_ptr), which is not happening in the current implementation.
pub fn do_canonicalize_address<A: Api, S: Storage, Q: Querier>(
    api: A,
    ctx: &mut Ctx,
    source_ptr: u32,
    destination_ptr: u32,
) -> VmResult<u32> {
    let source_data = read_region(ctx, source_ptr, MAX_LENGTH_HUMAN_ADDRESS)?;
    if source_data.is_empty() {
        return Ok(write_to_contract::<S, Q>(ctx, b"Input is empty")?);
    }

    let source_string = match String::from_utf8(source_data) {
        Ok(s) => s,
        Err(_) => return Ok(write_to_contract::<S, Q>(ctx, b"Input is not valid UTF-8")?),
    };
    let human: HumanAddr = source_string.into();
    match api.canonical_address(&human) {
        Ok(canon) => {
            write_region(ctx, destination_ptr, canon.as_slice())?;
            Ok(0)
        }
        // This check is unrelyable since we cannot tell by the error type if the error should be
        // reported to the contract or indicates a broken backend.
        // Err(FfiError::Other { error, .. }) => Ok(write_to_contract::<S, Q>(ctx, &error.as_bytes())?),
        Err(error) => Err(error.into()),
    }
}

pub fn do_humanize_address<A: Api>(
    api: A,
    ctx: &mut Ctx,
    source_ptr: u32,
    destination_ptr: u32,
) -> VmResult<u32> {
    let canonical = Binary(read_region(ctx, source_ptr, MAX_LENGTH_CANONICAL_ADDRESS)?);
    // TODO: how to report API errors back to the contract?
    let human = api.human_address(&CanonicalAddr(canonical))?;
    write_region(ctx, destination_ptr, human.as_str().as_bytes())?;
    Ok(0)
}

This will not be implemented as discussed in https://github.com/CosmWasm/cosmwasm/issues/445#issuecomment-658054106 and following comments.


Panic when scanning

The fact that there are a lot of unwrap's in the scanner code makes it so that the app panics when I run it against my home directory:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', [...]/deduplicator-0.0.3/src/scanner.rs:52:65
stack backtrace:
   0: rust_begin_unwind
             at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/panicking.rs:65:14
   2: core::result::unwrap_failed
             at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/result.rs:1791:5
   3: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
   4: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
   5: rayon::iter::plumbing::Folder::consume_iter
   6: rayon::iter::plumbing::bridge_producer_consumer::helper
   7: <rayon::vec::IntoIter<T> as rayon::iter::IndexedParallelIterator>::with_producer
   8: rayon::iter::extend::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
   9: deduplicator::scanner::duplicates
  10: deduplicator::app::App::init
  11: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
  12: tokio::runtime::park::CachedParkThread::block_on
  13: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
  14: tokio::runtime::runtime::Runtime::block_on
  15: deduplicator::main

Faillible actions (especially against the filesystem) should be properly handled (most likely skipping the affected files during the scan).

@beeb thank you for raising the issue. I will work on fixing these panics in the next few releases. If you'd like to contribute, please feel free to fork and raise PRs.

Similar issue but in different file
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/output.rs:23:36
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

https://github.com/sreedevk/deduplicator/pull/9 fixes this

Thank you @beeb I was able to run some tests against local data and merge the PR. I'll add unit tests in the future. but everything works as expected. Will create a new version now with these changes.


Support needed. Test service call in ngOnInit of component

I have just switched to testing with Spectator and Jest. I am trying to test if a service function is called during ngOnInit. It is just a simple utility service without any http calls.
On the component I have the following:
.....
@Input() arrangement: Arrangement;
public valgForm: FormGroup;
constructor(private vcs: ValgControlService) {}
ngOnInit() {
this.valgForm = this.vcs.toFormGroup(this.arrangement.Valg);
}
........
Now i wish to test if the toFormGroup function was called during ngOnit. Here is my current spec:
import {
SpectatorWithHost,
createHostComponentFactory,
SpyObject
} from "@netbasal/spectator/jest";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { MatCheckboxModule } from "@angular/material/checkbox";
import { Arrangement } from "../../state/types/arrangement.type";
import { ValgComponent } from "./valg.component";
import { ValgItemComponent } from "./valg-item/valg-item.component";
import { MatFormFieldModule } from "@angular/material/form-field";
import { ValgControlService } from "./valg.control.service";
function createArrangement(): Arrangement {
return {
Id: "1",
Name: "Onsdagsmotion - Beach Volley",
Number: "201900006051",
RegistrationDeadline: "2019-05-29T22:00:00Z",
CancellationDeadline: "2019-05-29T22:00:00Z",
Valg: [
{
Id: "2",
Name: "Vil du have frokost?",
Valglinjer: [
{
Id: "3",
Name: "Ja tak",
Price: 0.0
}
]
}
]
};
}
describe("ValgComponent", () => {
let vcs: SpyObject;
let host: SpectatorWithHost;
const createHost = createHostComponentFactory({
component: ValgComponent,
declarations: [ValgItemComponent],
imports: [
FormsModule,
ReactiveFormsModule,
MatCheckboxModule,
MatFormFieldModule
],
providers: [],
mocks: [ValgControlService],
shallow: true
});
const arr = { arrangement: createArrangement() };
beforeEach(() => {
host = createHost(<dgi-valg></dgi-valg>, true, arr);
vcs = host.get(ValgControlService);
});
it("should exist", () => {
expect(host.component).toBeDefined();
});
it("should have called toFormGroup", () => {
host.component.ngOnInit();
expect(vcs.toFormGroup).toHaveBeenCalledWith(arr.arrangement.Valg);
});
});
The test fails. Any help appreciated. Thanks.

Hi, please could you format your code using three backticks so it's readable?
```
Like this
```

Oh, sorry
@input() arrangement: Arrangement;

public valgForm: FormGroup;

constructor(private vcs: ValgControlService) {}

ngOnInit() {
this.valgForm = this.vcs.toFormGroup(this.arrangement.Valg);
}

import {
  SpectatorWithHost,
  createHostComponentFactory,
  SpyObject
} from "@netbasal/spectator/jest";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";

import { MatCheckboxModule } from "@angular/material/checkbox";

import { Arrangement } from "../../state/types/arrangement.type";
import { ValgComponent } from "./valg.component";
import { ValgItemComponent } from "./valg-item/valg-item.component";
import { MatFormFieldModule } from "@angular/material/form-field";
import { ValgControlService } from "./valg.control.service";

function createArrangement(): Arrangement {
  return {
    Id: "1",
    Name: "Onsdagsmotion - Beach Volley",
    Number: "201900006051",
    RegistrationDeadline: "2019-05-29T22:00:00Z",
    CancellationDeadline: "2019-05-29T22:00:00Z",
    Valg: [
      {
        Id: "2",
        Name: "Vil du have frokost?",
        Valglinjer: [
          {
            Id: "3",
            Name: "Ja tak",
            Price: 0.0
          }
        ]
      }
    ]
  };
}

describe("ValgComponent", () => {
  let vcs: SpyObject<ValgControlService>;
  let host: SpectatorWithHost<ValgComponent>;

  const createHost = createHostComponentFactory({
    component: ValgComponent,
    declarations: [ValgItemComponent],
    imports: [
      FormsModule,
      ReactiveFormsModule,
      MatCheckboxModule,
      MatFormFieldModule
    ],
    providers: [],
    mocks: [ValgControlService],
    shallow: true
  });
  const arr = { arrangement: createArrangement() };
  beforeEach(() => {
    host = createHost(`<dgi-valg></dgi-valg>`, true, arr);
    vcs = host.get<ValgControlService>(ValgControlService);
  });

  it("should exist", () => {
    expect(host.component).toBeDefined();
  });

  it("should have called toFormGroup", () => {
    host.component.ngOnInit();
    expect(vcs.toFormGroup).toHaveBeenCalledWith(arr.arrangement.Valg);
  });
});

Hmm... nothing is jumping out at me so far. Please could you provide the full source of your dgi-valg component including its decorator, along with the error message in the test failure?

Solved the issue myself with this test:
 it("should call toFormGroup", () => {
    const getFormGroupSpy = spyOn((host.component as any).vcs, "toFormGroup");
    host.component.ngOnInit();
    expect(getFormGroupSpy).toHaveBeenCalled();
  });

Thank, for your time.

Ah yes - you were providing a mock of ValgControlService but must create a spy in order to test whether its methods have been called.


[Feature] Lost & found / Monthly Featured Contest

Greetings ! Actually I wanted to suggest adding a new section **Lost and found section for pets ** & educational articles on pet care , pet food & health .
And we can also feature monthly pet event "Paws & perform : The ultimate talent show" or a photo contest .

Hi there, kindly assign me this issue, I am willing to work on this under the GSSOC tag.

@osmoosiis Thank you for raising these valuable suggestions! I'd be happy to help in implementing these features. @akshitagupta15june Could you please assign me the task?
You can find examples of my previous work and projects on my LinkedIn profile https://www.linkedin.com/in/prajna-paul-117086256/ and my GitHub account https://github.com/prajna321/.
Thank you!


Fixed broken or outdated links

link to JSR 349 did not render correctly, removed hyphen (which seems
to be the official variant anyway)
fixed broken link to Gant (codehaus shut down)
use updated link to Guava (Google Code shut down)

Coverage remained the same at 80.855% when pulling 78e38987ba9a63353837cbd325efc25eaf0ef264 on rbarbey:d11n/fixed-links into 3f310906f4831725500b0e8ae48e7fa7cf2e7355 on dropwizard:master.

Thanks!


feat: CanonStateNotification for commit and reorg

Removed NewBlockEvent notification and introduced event that holds both new and old chain and has information on the reorgs.
It contains both all blocks and their PostState. And it allows us to send both reverted and new rpc Logs and it is needed to re-add and remove tx from txpool.
This is part of the PR: https://github.com/paradigmxyz/reth/issues/2040

🤖 Generated by Copilot at 1c87a07
Summary
📦🔄🔗

This pull request updates the reth project to use a new notification type for canonical state changes, and adds support for sub-chains and syncing subscriptions. It also removes unused code, adds convenience methods, and improves testing and imports. The main files affected are crates/executor/src/blockchain_tree/*, crates/rpc/rpc/src/eth/*, and crates/interfaces/src/events.rs.

Sing, O Muse, of the reth project's mighty deeds,
How they forged a new interface for state providers,
And how they changed their notifications and subscriptions,
To match the canon state of the sub-chain and the chain.

Walkthrough

Replace NewBlockNotification with CanonStateNotification to support reorgs and commits (link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link)
Add chain_action variable to store the type of canonical state change in blockchain_tree (link,link)
Send chain_action notification to subscribers using canon_state_notification_sender in blockchain_tree (link)
Implement CanonStateSubscriptions trait for ShareableBlockchainTree and Chain (link,link,link,link)
Update RpcModuleBuilder and EthPubSub to use subscribe_canon_state method instead of subscribe_new_blocks (link,link,link,link,link,link,link,link,link,link,link,link,link)
Update tests to use TestCanonStateSubscriptions instead of TestChainEventSubscriptions and assert on CanonStateNotification variants (link,link,link,link,link,link,link,link,link,link,link)
Delete unused events module from reth_interfaces and test_utils (link,link,link,link,link)
Add BlockNumHash struct to represent a pair of block number and hash (link,link)

Use BlockNumHash as a parameter in log matching functions (link,link,link,link,link)
Pass BlockNumHash to matching_block_logs function in filter module (link,link)

Add removed parameter to matching_block_logs and append_matching_block_logs functions to indicate whether logs are removed due to reorgs (link,link,link)
Add tokio and tokio-util dependencies to reth_provider and reth_rpc crates (link,link)
Re-export revm types from revm-primitives crate (link)

Replace revm_primitives import with revm::primitives import in providers module (link)

Add TxIndex type alias for transaction index in a block (link)
Add SubChain trait to access state and blocks of a sub-chain (link)
Add assert_matches dependency to reth_executor crate for testing assertions on enum variants (link)

Codecov Report

Merging #2156 (4c6ce1f) into main (cf18edb) will decrease coverage by 56.20%.
The diff coverage is 0.45%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff             @@
##             main    #2156       +/-   ##
===========================================
- Coverage   71.76%   15.57%   -56.20%
===========================================
  Files         445      446        +1
  Lines       54030    54144      +114
===========================================
- Hits        38775     8432    -30343
- Misses      15255    45712    +30457

Flag
Coverage Δ

integration-tests
15.57% <0.45%> (-3.74%)
:arrow_down:

unit-tests
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

bin/reth/src/args/rpc_server_args.rs
0.00% <0.00%> (-52.64%)
:arrow_down:

bin/reth/src/node/mod.rs
0.00% <0.00%> (-7.37%)
:arrow_down:

crates/consensus/auto-seal/src/lib.rs
0.00% <0.00%> (-0.91%)
:arrow_down:

crates/consensus/auto-seal/src/task.rs
0.00% <0.00%> (ø)

crates/consensus/beacon/src/engine/mod.rs
0.00% <0.00%> (-88.80%)
:arrow_down:

...ates/executor/src/blockchain_tree/block_indices.rs
0.00% <ø> (-87.62%)
:arrow_down:

crates/executor/src/blockchain_tree/chain.rs
0.00% <0.00%> (-83.34%)
:arrow_down:

crates/executor/src/blockchain_tree/mod.rs
0.00% <0.00%> (-90.35%)
:arrow_down:

...es/executor/src/blockchain_tree/post_state_data.rs
0.00% <ø> (ø)

crates/executor/src/blockchain_tree/shareable.rs
0.00% <0.00%> (-33.97%)
:arrow_down:

... and 19 more

... and 309 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@mattsse i had some merging changes that i did, i fully removed NewBlockNotification and removed Sink as it is not needed for the broadcast channel (it is multi sender,multi receiver).
Had some refactoring, it should be good to merge now.


No cover image and metadata

Only tried it on dreame but the rendered epub is only titled as unknown.epub. Also, no cover and metadata. Option for get images was checked.

Thanks for the report! I fixed it for Dreame & FicFun (they use the same page), check out 2.5.1.
The option to get images only relates to images inside the chapter body so it doesn't need to be checked to get the cover. On a side note: downloading images doesn't always work when headless grabbing is used(for now). You can manually add the cover image in that case. Same goes for editing author/title and the other metadata when it shows as unknown. The program only really needs to have the chapters(chapter count) to work.

Thank you for the prompt response. I'll let you know if I see any other issues.


App customization based on the chain info and customizable theme

The changes include:

adding a config value (config/common.json  as well as query strings) for theme which let us customize the app per this config value (currently the available values are (polkadot, kusama, kusamanft)
reading the token symbol from the on chain configuration for the network

Looks good! We can then go ahead and load the sass files conditionally depending on theme I guess.
One thing I noticed when loading:

Looks good! We can then go ahead and load the sass files conditionally depending on theme I guess.
One thing I noticed when loading:

Should be fixed. It was because we were also loading the theme from chan Info. for now made it static only based on config. I'll consider to fix the UX to don't show the card till the chainInfo is loaded later.

Edit
Followed this tutorial for loading scss based on themes: https://github.com/hamidra/dotdrop/tree/load-themes
However, it takes two seconds to load any kind of styling. So there's probably a better way to do it.
Since we are deploying the two variation as separate apps, We should be good to load the theme styles statically. And it is also faster, so I don't think we need to load the scss dynamically if it makes the loading slow.

Since we are deploying the two variation as separate apps, We should be good to load the theme styles statically
Makes sense! lgtm


How to do android runtime permission

I found kivy very interesting for developing android applications but there is not documentation for a working kivy app to show implementations of androids new run time permissions.

ref https://github.com/kivy/python-for-android/issues/1183


Rat in a Maze problem

Dear Admin,
I present to you the addition of one of the fundamental and mostly asked coding problem - "Rat in a maze". This problem uses the approach of backtracking in the most-suited way.
So, I request you to assign me this task.

hello @shreem-123 ... good to meet you. I am Arun and contributor to the GSSOC '23. I had already raised this issue about 10 hours ago and created pull request for the same. Could you please raise another issue for a different problem?


docs: add Klarrio to adopters list

Thanks a lot! May I just ask you to add Klarrio according to the alphabetical order?

@prometherion done :)

Thanks, Nick, it was great meeting you in person at KCEU23! ❤


Auto-Resize doesn't work consistently

Guest additions have been installed, but auto-resizing doesn't work on Windows or on Ubuntu hosts.

Uninstalling and reinstalling guest additions did the trick.


Get lat and long from city

How can I get the coord from one city? The data object not contain this coords.

I'm afraid there's nothing the library can do if the underlying Google Search API does not provide enough details.


HELP WITH ADD MEMBERS TO ROLE.

Hello, i am new in discord.js and i want to create a bot to add members to role or remove.
Example, I want to put the user "Beaast_exe" in the role "Beaast" (this role has already created) and i write in the chat: "@DruggedBot role Beaast add @Beaast_exe" or ".role Beaast add @Beaast_exe".
Can anyone give me the code please ?

Did you even read the issue template?

no results

i click in question and that's a error saying "no results"


Cask request: [app name here]

Cask details
Please fill out as much as possible. Before you do, note we cannot support Mac App Store-only apps.
Name: MegaSync
Homepage: https://mega.nz
Download URL: https://mega.nz/MEGAsyncSetup.dmg
Description: Easy automated syncing between your computers and your MEGA cloud drive.
Also, this should probably replace the older & outdated caskroom/cask/mega cask.

Already exists: megasync

Also, this should probably replace the older & outdated "mega" cask.

mega is not the same thing. http://megasoftware.net/

Thank you! Apologies, i also searched for "mega sync" but left it as two words :/

Thank you! Apologies, i also searched for "mega sync" but left it as two words :/


How to using mots_tools to generate the coco .json format from .txt file?

how to using mots_tools to generate the coco .json format from .txt file?

Please see the code given in https://github.com/VisualComputingInstitute/TrackR-CNN/issues/60


Fails to add "dot" on double space

I don't know if this is wanted (easier MD formatting ?!?!) or not, but differently from TextEdit, MarkEdit seems not to handle quick double space as "sentence ending" (dot + space).

Thanks for your quick fix!
Anyway, I just found another strange behavior: the first letter of the first word I write seems not to be replaced with an uppercased one. To check this wasn't a "disabled" feature I opened TextEdit and works as expected.
I don't know if this bug appeared after this fix (maybe some dependency update), but when creating the issue I remember it worked as expected.

Yes, I have Capitalize words automatically enabled.
Thanks, writing slower or disabling show invisibles seems to help. I'll wait the improvement :wink:


Fail to create a stored procedure for the graph account

OS: Windows
Build Version: 20230422.1
Regression: Not a regression
Repro Steps:

Create a graph account -> Create a database -> Create a graph.
Expand the graph -> Right click Stored Procedures -> Click "Create Stored Procedure... " -> Enter an ID -> Enter.
Check whether succeeds to create a stored procedure.

Expect:
Succeed to create a stored procedure.
Actual:
Fail to create a stored procedure.
More Info:

If executing "Create Stored Procedure" for one graph account previously, there is no response when running other commands for it.
This issue only occurs on graph account.

@v-chenzha I cannot reproduce this issue. Don't worry about this issue for now. The future of graph account support in database extension is in an unknown state. I need to talk to some people to decide what to do with graph account features.


Firefox - Automatically Mark Transaction as Cleared not working

Name of Defective Feature

Automatically Mark Transaction as Cleared

System Settings (Required)

ToolKit Version: 2.12.0
Operating System (Mac/Windows/Etc): Windows
Browser (Chrome/Firefox/Safari): Firefix
Browser Version: 67.0.4
Other Extensions: uBlock Origin ,Firefox Multi-Account Containers, Buster: Captcha Solver for Humans - I have tried disabling all extensions except the toolkit

Export of Toolkit Settings (Bottom Left of Settings Page)

Settings Export
[{"key":"AccountsDisplayDensity","value":"0"},{"key":"AccountsEmphasizedOutflows","value":false},{"key":"AccountsStripedRows","value":false},{"key":"AutoDistributeSplits","value":false},{"key":"AutomaticallyMarkAsCleared","value":true},{"key":"BetterScrollbars","value":"0"},{"key":"BudgetCategoryFeatures","value":true},{"key":"BudgetProgressBars","value":"0"},{"key":"BudgetQuickSwitch","value":false},{"key":"CalendarFirstDay","value":"0"},{"key":"CategoryActivityCopy","value":false},{"key":"CategoryActivityPopupWidth","value":"0"},{"key":"ChangeEnterBehavior","value":false},{"key":"CheckCreditBalances","value":false},{"key":"CheckNumbers","value":false},{"key":"ClearSelection","value":false},{"key":"CollapseSideMenu","value":false},{"key":"ColourBlindMode","value":false},{"key":"CompactIncomeVsExpense","value":false},{"key":"CreditCardEmoji","value":true},{"key":"CurrentMonthIndicator","value":false},{"key":"CustomFlagNames","value":false},{"key":"DaysOfBuffering","value":true},{"key":"DaysOfBufferingHistoryLookup","value":"0"},{"key":"DisableToolkit","value":false},{"key":"DisplayTargetGoalAmount","value":"0"},{"key":"DisplayTotalMonthlyGoals","value":false},{"key":"DisplayUpcomingAmount","value":false},{"key":"EasyTransactionApproval","value":false},{"key":"EditAccountButton","value":"0"},{"key":"EnlargeCategoriesDropdown","value":true},{"key":"EnterToMove","value":false},{"key":"FilterCategories","value":true},{"key":"GoalIndicator","value":false},{"key":"GoalWarningColor","value":false},{"key":"GoogleFontsSelector","value":"0"},{"key":"HideAccountBalancesType","value":"0"},{"key":"HideAgeOfMoney","value":false},{"key":"HideHelp","value":true},{"key":"HideReferralBanner","value":false},{"key":"HideTotalAvailable","value":false},{"key":"HighlightNegatives","value":false},{"key":"ImportNotification","value":"0"},{"key":"IncomeFromLastMonth","value":"0"},{"key":"IncomeVsExpenseHoverHighlight","value":true},{"key":"LargerClickableIcons","value":false},{"key":"LinkToInflows","value":false},{"key":"MonthlyNotesPopupWidth","value":"0"},{"key":"NavDisplayDensity","value":"0"},{"key":"Pacing","value":"0"},{"key":"PrintingImprovements","value":true},{"key":"PrivacyMode","value":"0"},{"key":"QuickBudgetWarning","value":false},{"key":"ReconciledTextColor","value":"0"},{"key":"RemovePositiveHighlight","value":false},{"key":"RemoveZeroCategories","value":false},{"key":"ResizeInspector","value":false},{"key":"ResizeSidebar","value":false},{"key":"RightClickToEdit","value":true},{"key":"RowHeight","value":"0"},{"key":"RowsHeight","value":"0"},{"key":"RunningBalance","value":"0"},{"key":"SeamlessBudgetHeader","value":false},{"key":"SetMultipleFlags","value":false},{"key":"ShowCategoryBalance","value":false},{"key":"SpareChange","value":false},{"key":"SplitTransactionAutoAdjust","value":false},{"key":"SquareNegativeMode","value":false},{"key":"StealingFromFuture","value":false},{"key":"SwapClearedFlagged","value":false},{"key":"TargetBalanceWarning","value":false},{"key":"ToBeBudgetedWarning","value":false},{"key":"ToggleMasterCategories","value":false},{"key":"ToggleSplits","value":false},{"key":"ToggleTransactionFilters","value":"0"},{"key":"ToolkitReports","value":true},{"key":"TransactionGridFeatures","value":true},{"key":"ViewZeroAsEmpty","value":false},{"key":"l10n","value":"0"}]

Steps to Reproduce the Behavior

Turn on setting "Automatically Mark Transaction as Cleared"
Enter Transaction
Transaction is not marked as cleared

Expected Behavior

When pressing Save, or Save and add another, that the transaction would automatically be marked as cleared
Actual Behavior

Turning on the setting does nothing, the transaction is not cleared automatically

Second this one :(

Fixed with #1607

Hey @donebydavid the fix for this should be in our current release! If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!
Please note, all browser can take up to an hour to provide updates to all users. You can force an update if it's available for you by going to chrome://extensions and clicking the "Update" button. Firefox users can go to about:addons, click the setting cog, and click "Check for updates...".


Use systemd-nspawn as OCI backend

systemd-nspawn makes light containers, and can spawn these off OCI bundles as well. There are some corner case advantages like being able to do nested containerization with systemd-nspawn and even docker or podman as well. At the moment, virtualisation.oci-containers.backend only supports docker and podman but it should be possible to add nspawn as well.

This is systemd-nspawns interface to oci-containers: https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#--oci-bundle=

We can use standalone tools such as skopeo to pull images.

Hmm, should this hook into https://github.com/NixOS/nixpkgs/blob/nixos-22.05/nixos/modules/system/boot/systemd/nspawn.nix ? Or use it's own service to run the systemd-nspawn command
One thing to consider too is where to store the container images. I'd like to do that in the nix store but then we'd need to store the garbage collection roots somewhere

We can come up with declarative image management, or simply stuff everything into /var/lib/whatever just like docker or podman do and then forget about them.

Alternatively, we could make a CA-derivation builder for declarative OCI images, regardless of backend


Feature(submit): detect day from current work dir when submit

When submitting a task, if the dir is named using the day index, that is automatically detected

closed #15


Query on revocation

Hey,
Just a query - hopefully this doesn't take too long :)
When you revoke an OpenPGP key, it creates a PGPSignature with a creation time.
My query is - would it ever make sense to revoke in the future?
I see your hasRevocation doesn't seem to think so:
    public boolean hasRevocation()
    {
        int ns = 0;
        boolean revoked = false;

        if (this.isMasterKey())    // Master key
        {
            while (!revoked && (ns < keySigs.size()))
            {
                if (((PGPSignature)keySigs.get(ns++)).getSignatureType() == PGPSignature.KEY_REVOCATION)
                {
                    revoked = true;
                }
            }
        }
        else                    // Sub-key
        {
            while (!revoked && (ns < subSigs.size()))
            {
                if (((PGPSignature)subSigs.get(ns++)).getSignatureType() == PGPSignature.SUBKEY_REVOCATION)
                {
                    revoked = true;
                }
            }
        }

        return revoked;
    }

Just to be clear; PGPPublicKey is not part of PGPainless, but part of the Bouncy Castle codebase instead :P

I think for when the user wants to use a key, they are mostly concerned with whether the key has a revocation right now.
This is what PGPainless does when evaluating a key using PGPainless.inspectKeyRing().

Cool.  Looking at that method, you also have the concept of hard or soft revoke.
Thanks - I'll close this.


Don't perform layout transitions on unacquired swapchain images

Fix for #156

Thx :+1: Will check on different implementations, and if it works as expected will merge.

The examples no longer use pre- and post present barriers and do layout transitions via subpasses, so closing this one.


Reading inexistent Blob with BlockBlobClient throws RequestFailedException with no ErrorCode

Describe the bug
I am trying to read a blob that does not exist. I use BlockBlobClient to read the blob and, as expected, a Azure::Core::RequestFailedException e is thrown. According to the error code docs e.ErrorCode should be set to BlobNotFound, but I find that it is set to empty string.
To Reproduce
Code Snippet

Azure::Storage::Blobs::BlobContainerClient container_client;
// setup your azure connection with container_client

Azure::Core::Context get_context(unsigned int request_timeout){
    Azure::Core::Context requestContext;
    return requestContext.WithDeadline(std::chrono::system_clock::now() + std::chrono::milliseconds(request_timeout));
}

std::shared_ptr<Buffer> read_blob(
        const std::string& blob_name,
        const Azure::Storage::Blobs::DownloadBlobToOptions& download_option,
        unsigned int request_timeout) {

    auto blob_client = container_client.GetBlockBlobClient(blob_name);
    auto properties = blob_client.GetProperties(Azure::Storage::Blobs::GetBlobPropertiesOptions{}, get_context(request_timeout)).Value; // exception thrown at this line
    std::shared_ptr<Buffer> buffer = std::make_shared<Buffer>(properties.BlobSize);
    blob_client.DownloadTo(buffer->preamble(), buffer->available(), download_option, get_context(request_timeout));

    return buffer;
}

try {
  read_blob("inexistent/blob/name", Azure::Storage::Blobs::DownloadBlobToOptions(), 60000);
}
catch ((const Azure::Core::RequestFailedException& e)) {
  std::cout << e.ErrorCode << std::endl; // e.ErrorCode is empty
  std::cout << e.StatusCode << std::endl; // e.StatusCode is correctly set to 404
  std::cout << e.RawResponse.get()->GetHeaders().find("x-ms-error-code")->second << std::endl; // prints BlobNotFound
}

The exception is thrown at line auto properties = blob_client.GetProperties(...) and the ErrorCode is empty. StatusCode is correctly set to 404. If I read the headers of the raw response(last line of catch clause), I get that the header x-ms-error-code is correctly set to BlobNotFound but this is not copied to e.ErrorCode. This suggests that BlockBlobClient may not be correctly setting up the exception before throwing it.
Expected behavior
RequestFailedException::ErrorCode  should be set to "BlobNotFound", instead of "".
Setup (please complete the following information):

OS: Ubuntu
IDE : CLion
Version of the Library used 12.10.0 (downloaded with vcpkg)

Additional context
Setting e.ErrorCode is important for consistency with the docs and for correct error handling.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

@muhammadhamzasajjad can you try to catch the exception as StorageException and check the error code there?
catch (Azure::Storage::StorageException& e)
{
  // exception handling
}

Thanks for the reply @Jinming-Hu.
I have tried catch with Azure::Storage::StorageException as well, but the behaviour remains the same as it is with Azure::Core::RequestFailedException

This believe this is a bug when parsing 404 response of HEAD request.
Usually error code is parsed from XML response body, but there's no response body for HEAD requests. In this case, we should directly read from x-ms-error-code header.

will be fixed in https://github.com/Azure/azure-sdk-for-cpp/pull/5372

@Jinming-Hu, thanks for the update. Looking forward to the fix.

@Jinming-Hu, could you please tell me when the release for this fix might be out in vcpkg? The last one I see was in November 2023.

@muhammadhamzasajjad I think it'll be released soon. We have release plan in late April or early May.


Asset file regex fix for custom versions containing a dash

If the unity fs version is something like "2021.3.9f1-gamename", emptyVersion will resolve to "-", making it an invalid version. UABEA had similar issue here https://github.com/nesrak1/UABEA/issues/286

Yep, I was going to do this too but you beat me to it.


Add bchsvexplorer api for mainnet redundancy only

Here is a possibility to beef up the redundancy only on mainnet.
Please note: The get_transaction() is not normalized to be the same as what BitIndex3 returns... which probably needs fixing before wiring up to NetworkAPI in case people rely on parsing the json object that is returned...
I did this in a hurry on 4hrs sleep. It's unfinished - but maybe we can use this? (just submit more commits to this branch if you want to)
Needs:

Normalization and adding to the mainnet list in NetworkAPI.
Removal of print and remove logging parameter in the retry wrapper - allow upstream logging to handle it

I'm curious, why did you do this rather than WhatsOnChain? Does WhatsOnChain not work?
More APIs the better either way.

I've been thinking about the normalizing. I think maybe we should do that in the module itself. If we need access to the base line API calls, they can be extras or _raw, something like that.

https://github.com/AustEcon/bitsv/pull/39#issuecomment-513482734
Because UTXO doesn't return number of confirmations from Whatsonchain (they said it's because it uses ElectrumX server for that particular endpoint).
Whereas this one ^^ works right now (but I suspect it won't be as robust as BitIndex or WOC when the big blocks come... but for events like what just happened, it will be perfect so still some value to adding it)

Interesting, thanks for explaining. I think I'd rather give this one a try now. Hopefully they can fix it by then, or we can add that feature in ourselves.

https://github.com/AustEcon/bitsv/pull/39#pullrequestreview-264518301
Yep. I think that's a good design decision to have our network/services folder for "normalized apis" only (so we should instead do the normalization logic internally like you have proposed... and if more modularity is wanted (e.g. for people who only want the raw API) we can have separate repos for each of them on pypi that can be raw... but for the purposes of bitsv, it makes sense to have our internal / built-in APIs customized for use in NetworkAPI).
The other reason it is a good idea to go this route is that IF people DO access these APIs directly (via network/services) then it is probably good to have the return value kept uniform across our in-house APIs.
And as to merging this as-is... I will see what I can do later tonight... I'm a bit time poor. But maybe I'll do some bare minimum work and then just merge so you can then take it forward from there.
And re: Whatsonchain. That's cool. We can leave it out for now. But at least we've discussed it so we know that's an option for us if we ever need (and would work across main/test and stn + I predict would be more robust for big blocks etc.. come July 24th...).

Sorry I am not okay with merging this yet... this is uncovering other things that need to be addressed and if I rush it we might forget to fix some of the things... I'm now into the danger zone with sleep. So I'll have to leave it here. TTFN

Ok, sounds good! Hope you rest well, take your time. Let me know if you want me to jump in on this at any time.

Still not done. But you will now see where I'm looking to take it... The annoying thing is that the inputs section of BitIndex3 (and Whatsonchain too I think) don't provide a field that tells you the total amount in the input. Would have been nice to have because then the repr can show:

txid, input amount, output amount, and calculate the fee. 😄

But I think this would require a second lookup for the prev txid --> getting those outputs... So I will probably abandon... and go with common denominator fields of some kind...

Nice work! I like these changes.
You don't have to do that, I think you can do a git squash rather than opening a new PR.
This can come later, but I do prefer having either endpoint= in functions for the base endpoint, or using the endpoint as a constant. In bitindex we're retyping the same endpoint url again and again which makes it a lot easier to have a typo there. If we're referencing a variable/pseudo constant it'll break at run time.

Closing this PR because work is now being continued on #42


Invalid url relative to '...'

From<EMAIL_ADDRESS>on November 04, 2010 07:01:59
Rewritten Images throw a warning in the apache error log.
[Thu Nov 04 11:49:56 2010] [warn] [1104/114956:WARNING:net/instaweb/util/google_message_handler.cc(32)] data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABklBMVEWztbUAAAAAAAAAAACytLSxs7PcDyH2Axn0Bx31Bx3zCh/yDiPwEyjwFSjvFSntGi3tGy6ipKSipaWsrq6sr6+usLCusbGxs7OxtbWztrayt7evu7qxu7qwvLuuwcCryMWsycaqysiqzcr///+rrq6tr6+tsLDm5+jo6enp6ur29vbuGSyrrq2srq6rr6+rsbDe3+De3+Hi4+Pj5OTk5ef+///pABDtAA3rABHsABLsABbvABWrra3tARbuAxnxCR7wEyfxFSntGy7tHTDtIDHz9PTu7+/w8fLr7O3tHzLXLz7sLD7wLT7dP031NUbuQVD0Q1LtTFzvTVvJbHTwY3DyY3D3YnC7kJSjpqX0eYSjqqq5oKHuhpCssbCrtbOrtrWrt7Wqt7avuLimwL7yl6Cpwb/zmqP8oqvJ1tXxyM3/y9Df4OHk5eTp6enq6+zo7ezq7u7o9fTu8vHy9fXw9vbp+vrz9vb29/f4+Pnu//34+Pr4+vv2/Pzz/v3w///3///8/f34///5///9/f38///9//8a36QGAAAAI3RSTlMAMwAjAAC+AAAAAAAAAAAA3sDApqfqrO8AAAAAAAAAAAAAAEKkePEAAADjSURBVHheRchjc8RQHEbxm2R3a9t4bpylUdu2bdvu9+4/2870vDkzP1amuDnnFpdLnCyVjL+Oi37FDZ//0O/DHLTilHAEgkfBABbOcVrqILAQUlU1hL2BCJZtaIKm67p2ibEovI6KSoKTPursenwQ3vLqWoIeu4v7pU6sVNWnEfTaXb10NR9sN2RkE3RTN8/7ian2xcycPALDMG6fXkcntlpa28x8goe7x/ePnVj/9O6sy+xgHJ9v319D8flwGJuSIDAF1ExyxN5qXXouK5C5Z31yeGPNw5XCmsYsJgn/SaIo/gCiQTIwFo7+sAAAAABJRU5ErkJggg==: Invalid url relative to ' http://sub.mydomain.de/test.php' What version of the product are you using (please check X-Mod-Pagespeed header)? On what operating system? Which version of Apache? Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.5 with
Suhosin-Patch mod_ssl/2.2.14 OpenSSL/0.9.8k
X-Mod-Pagespeed	<IP_ADDRESS>-128
Cache-Control	max-age=0, no-cache, no-store Which MPM? mpm/prefork Please provide any additional information below, especially a URL or an HTML file that exhibits the problem. HTML file is a simple test file just containing one img tag. Also the img dimension was not added to the code.
Original issue: http://code.google.com/p/modpagespeed/issues/detail?id=14

From<EMAIL_ADDRESS>on November 04, 2010 04:30:54
Could you please attach the HTML file? We have not seen this issue before.
Was the original URL a data: URL?

From<EMAIL_ADDRESS>on November 04, 2010 05:41:56
As I said, just a test file I attached it. Also I add the pagespeed.conf file.
The Installation is running on a local Test Apache. First i thought its a matter of using https:// but its not. Because if I disable SSL and just use the plain http:// call same problem occurs.
The local Host is serving at the local domain www0.lan > <IP_ADDRESS> which resolves through a virtual apache host:
<VirtualHost <IP_ADDRESS>:80>
ServerName www0.lan
ServerAlias inv.lan
DocumentRoot /www/web/invoice/htdocs
CustomLog /var/log/apache2/invoice.access.log combined
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
</VirtualHost>
Attachment: test.php pagespeed.conf

From<EMAIL_ADDRESS>on November 04, 2010 05:51:03
Additional note, if I look to the pagespeed statistics it`s a bit strange because actually it seems only doing image inlining but no CSS or other things:
resource_fetches: 0
total_page_load_ms: 22771
page_load_count: 104
cache_extensions: 65
not_cacheable: 0
css_file_count_reduction: 0
css_filter_files_minified: 0
css_filter_minified_bytes_saved: 0
css_filter_parse_failures: 1
css_elements: 0
image_inline: 41
image_rewrite_saved_bytes: 1218
image_rewrites: 10
javascript_blocks_minified: 0
javascript_bytes_saved: 0
javascript_minification_failures: 0
javascript_total_blocks: 0
url_trims: 0
url_trim_saved_bytes: 0
resource_404_count: 0
slurp_404_count: 0
serf_fetch_request_count: 1831
serf_fetch_bytes_count: 16156611
serf_fetch_time_duration_ms: 28218395
serf_fetch_cancel_count: 0

From<EMAIL_ADDRESS>on November 04, 2010 07:20:47
Btw. the system_test.sh gives me a PASS but the error.log is full of warnings and notices.
Attachment: system_test.txt error.log

From<EMAIL_ADDRESS>on November 04, 2010 11:27:26
I see the same issue. This 'warn' message gets logged for me for any IMG that is not from the configured base URL (either because it has been inlined by mod_pagespeed itself or because it is referrencing another URL). It doesn't seem to hurt; it just fills up the log files really badly.

From<EMAIL_ADDRESS>on November 05, 2010 08:17:11
Owner<EMAIL_ADDRESS>

From<EMAIL_ADDRESS>on November 09, 2010 14:35:44
Status: Fixed

From<EMAIL_ADDRESS>on November 16, 2010 16:52:44
Owner<EMAIL_ADDRESS>


chore: Ignore dotfiles in route subdirs too

Updates the default ignoredRoutes pattern to include dot files in route subdirs too.
Currently the default is ".*" which ignores them in the root directory, but not in any subdirectories.
The project I'm using remix on has team members that are not developers. One of which was using Finder on OS X to browse the routes dir and it generated .DS_Store files. Other users in the ticket referenced below mention programs like Emacs and I believe vanilla vim also generate dot files to store backups so it seems like it would be helpful to fix this.
Without that change, Remix breaks with a somewhat cryptic error if the generated dotfile is not correctly formatted as a route file.
Please let me know if there's any context I'm missing.
Closes: #2488

Hi @eccentric-j and thank you for your contribution.
Can you rebase your PR to target the dev branch instead of main ?

@MichaelDeBoey That's not quite correct though. The current default ONLY ignores dot files in the ROOT app/routes directory then breaks if any dotfiles get generated in app/routes/<subdir>
The current setting is worse than no default because it results in inconsistent, and unexpected behavior. It should either ignore all dotfiles regardless of subdirs or nothing and leave it to users to configure.
What's the value of only ignoring dotfiles in the root routes dir but not subdirs?

This PR only changes ".*" to "**/.*". It does not include any specific files by name as I agree maintaining a list of files would be a wrong headed direction.
@MichaelDeBoey please reconsider

Yeah this is fine, my main concern in #2488 was adding a bunch of individual one-off exceptions to the list.

Since this is a change to the templates, this should have been a PR towards main though 🤔

Thanks for revisiting! The original issue derailed quite a bit which was why I went for the PR.


add option to disable handle move when clicking the slider bar

We have a special case where we want to click on the slider without triggering a handle move. This is used for filtering values

below / above the handle.

I really support this feature!  Any chance this can get merged in?  I can see some pretty cool UI interactions with this feature @kranheim

I didn't merge this pull request because the code seemed to specific to the use case (e.g. isAbove but no isBelow?) What I can offer you is a snapDragDisabled prop in combination with a onSliderClick handle that returns the value at the clicked location, so you can perform any calculations yourself.

take a look at aec9d780d15bd4289e5266c0d508c7c9b91526bc

Closing this one, as something similar can be achieved as described above


Tools, freetype, and jigsaw support

Issue details
I would like to compile under Java 9, using modules. Currently this cannot be done, since my project uses gdx-tools and other gdx jars. Unlike the other gdx jars, gdx-tools contains its own copy of gdx-freetype. Under Java 9's Jigsaw, split packages are illegal, and javac refuses to compile my project as a result.
I'm not asking for a Java 9'ified libGDX, I know that Java 1.6 is essentially a requirement due to Android, just that the split package is resolved in whatever way you find acceptable. I'm aware that the tools jar containing all its dependencies is a nice-to-have, but it's a no-go for future versions of Java. I know of other projects (Derby) that have the same issue, having to put common files in a new jar, messing up the single jar distribution.
Reproduction steps/code
Add gdx-tools, one of gdx, gdx-backend-lwjgl, gdx-platform (I don't know which imports gdx-freetype), and a module-info.java to a project and compile with Java 9.
Version of LibGDX and/or relevant dependencies
1.9.8 is affected.
Stacktrace
error: module gdx.backend.lwjgl reads package com.badlogic.gdx.graphics.g2d.freetype from both gdx.tools and gdx.freetype

Please select the affected platforms

[ ] Android
[ ] iOS (robovm)
[ ] iOS (MOE)
[ ] HTML/GWT
[x] Windows
[x] Linux
[x] MacOS

I think it makes sense to have a gdx-tools JAR (for use as a dependency) and a gdx-tools-onejar JAR (for ease of use running tools from a CLI). I'll defer to the build wizzards.

Runnable versions of the tools jars can be found https://libgdx.badlogicgames.com/tools.html
If someone wants a gdx-tools-onejar to be published to maven, they can request it on the tracker.
For now we can just make gdx-tools thin.


RFC: Spill Hash Join

Local Disk
Pros: low latency, fixed costs, k8s could handle orphan spilled files in case of failure.

This depends. If RisingWave writes the data to a PersistentVolume (PV) and RW crashes and restarts the pod may bind to the same PV. The data will still be there.


API/DOC: unclear scope of index.asof

From http://stackoverflow.com/questions/26918045/python-pandas-typeerror-cannot-compare-type-timestamp-with-type-float
The docstring of Index.asof says:
In [73]: pd.Index.asof?
Type:        instancemethod
String form: <unbound method Index.asof>
File:        c:\anaconda\lib\site-packages\pandas\core\index.py
Definition:  pd.Index.asof(self, label)
Docstring:
For a sorted index, return the most recent label up to and including
the passed label. Return NaN if not found

while asof only works for a time series.

Clarify the docs that asof only works for DatetimeIndex (and PeriodIndex?)

Why is this actually restricted to timestamps? This functions seems also possibly useful to me for other index types? Something like

In [74]: idx = pd.Index([1,2,3,8,9])
In [75]: idx.asof(5)    # gives now TypeError
3

Instead of having to do:

In [78]: idx[idx.searchsorted(5) - 1]
Out[78]: 3

@shoyer now that you fixed .asof close?

Indeed, it's fixed!


Created per-user and per-workflow jobs pages

Checklist before merging

[ ] I added an appropriate entry to CHANGELOG.md

The two pages are based on the same component (JobsList), with different setup.
Closes #318
Closes #294

I opened as draft since I would like to implement also #119 here. The 2 different job pages can be tested in the meanwhile.

Here is a slightly unexpected behavior.
I have a user with no project.
I head to http://localhost:5173/jobs through the "Jobs" link, and it shows me an empty page (not a page with an empty table):
.
Then I refresh the page, and I get a 500 error. I guess it is this error from the svelte log, rather than a 500 from fastapi. But I'll need to double-check.
fractal-web     | TypeError: Reduce of empty array with no initial value
fractal-web     |     at Array.reduce (<anonymous>)
fractal-web     |     at file:///app/fractal-web/build/server/chunks/JobsList-4c2a174d.js:826:52
fractal-web     |     at Object.$$render (file:///app/fractal-web/build/server/chunks/index3-eb2fa167.js:123:18)
fractal-web     |     at file:///app/fractal-web/build/server/chunks/_page.svelte-a92c3513.js:32:45
fractal-web     |     at Object.$$render (file:///app/fractal-web/build/server/chunks/index3-eb2fa167.js:123:18)
fractal-web     |     at Object.default (file:///app/fractal-web/build/server/index.js:89:97)
fractal-web     |     at file:///app/fractal-web/build/server/chunks/_layout.svelte-5765ba14.js:33:60
fractal-web     |     at Object.$$render (file:///app/fractal-web/build/server/chunks/index3-eb2fa167.js:123:18)
fractal-web     |     at file:///app/fractal-web/build/server/index.js:54:101
fractal-web     |     at $$render (file:///app/fractal-web/build/server/chunks/index3-eb2fa167.js:123:18)

Here is a slightly unexpected behavior.
I have a user with no project.
I head to http://localhost:5173/jobs through the "Jobs" link, and it shows me an empty page (not a page with an empty table)

Thanks, I've fixed this.

I did some improvements but it's still quite slow when using the test database because it has many jobs having null workflow_dump. I would wait #986 before considering this completed.

I did some improvements but it's still quite slow when using the test database

Agreed. I was just testing the latest commit, and indeed it's quite slow.

I would wait #986 before considering this completed.

Now released in fractal-server 1.4.0a3.

Side comment: I do appreciate the improvement in column formatting introduced with https://github.com/fractal-analytics-platform/fractal-web/pull/328/commits/dc1a19cb3ec53576b50752b9b6924256b65add15.

Based on our discussion related to #338, the current view of the user's jobs page is like

The "undefined" values are expected, and will be automatically fixed by updating the DB (ref https://github.com/fractal-analytics-platform/fractal-server/issues/1010).

Re #294
In my test, I confirm that jobs are sorted as expected:

A minor issue related to #119:
When I am at http://localhost:5173/projects/60/workflows/70/jobs, the background refresh calls go to http://localhost:8000/api/v1/project/60/job/, but I would expect them to use http://localhost:8000/api/v1/project/60/workflow/70/job/.

A quick check, based on #318:

We can probably fully disable the feature of URL query parameters being turned into table filters

Is this currently done? That is, have we fully removed the feature of URL query parameters (like http://localhost:5173/projects/60/workflows/70/jobs?job_id=123)?

A quick check, based on #318:

We can probably fully disable the feature of URL query parameters being turned into table filters

Is this currently done? That is, have we fully removed the feature of URL query parameters (like http://localhost:5173/projects/60/workflows/70/jobs?job_id=123)?

I'm not handling the query parameters anymore and I've removed them from the redirect that happens when the job starts. Do you see them somewhere?

I'm not handling the query parameters anymore and I've removed them from the redirect that happens when the job starts. Do you see them somewhere?

All good then. No, I didn't see them anywhere. I only wanted to double check.


mpl.use('TkAgg')  necessary?

I got an import error in spyder

ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'qt5' is currently running

it should be noted that the graphics output should be set to TKinter, this removed the error for me.
Howvere:  the code got stuck then. Couldnt resolve it until I commented in sequence.py the line
7:  # mpl.use('TkAgg')
Is this necessary or can this be removed, as it crashed everything for me.
Then maybe also tkinter is not needed

I struggled with that on Friday as well when I wanted to use pypulseq in a QT5-based GUI. As it is pypulseq (and not pypulseq-cest) specific, we need to open an issue in pypulseq. I can do that. For the moment just comment out the line (that worked for me) or set it to the framewort you need. In your case it would be mpl.use('qt') I guess.

I will close this issue as it is moved to pypulseq.


Fix classically controlled op Moment diagram

Fixes #5776 by accounting for the fact that args.label_map is null when coming from a Moment renderer, and handling appropriately.

Automerge cancelled: A status check is failing.


Enhance tests

Fixes #192.

Coverage remained the same at 90.548% when pulling 7769bbd2af1686820bbf485d7478989843d8ba03 on abstiles:enhance-tests into 4447a37200c05779b89952d9621151355614202a on rochacbruno:master.

Coverage remained the same at 90.548% when pulling 7769bbd2af1686820bbf485d7478989843d8ba03 on abstiles:enhance-tests into 4447a37200c05779b89952d9621151355614202a on rochacbruno:master.


Updated galah download workflow

Removing CSDM profile and creating our own #50
Added midway saving ability to check for outliers or duplicates if needed
Introduced map to download across years for larger taxonomic groups e.g. Plantae

@wcornwell suggested an if statement on atlas_counts() if more than 1mil then use map, if less then proceed as usual.
I like this idea but wanted to create a PR and implement the suggestion first so its documented.

I will do a if statement tomorrow and oh yeah download_by_year can be removed too

@wcornwell ready for review! I think downloading of data doesn't need to happen after this merge


[T4A3][T16-B1]Xie Jihui

Ready for review

Avoid accumulating unrelated changes into a single PR.
Tip: If you are currently on branch1 and want to create a new branch2, you need to switch back to master branch before creating branch2. If not, changes in branch1 will appear in the PR created from branch2 later.
Commit messages should be descriptive, such that others viewing your code can understand what you're trying to achieve in a commit. They should also be in the imperative form.
The child classes should have made use of the parent class' constructor instead of duplicating code in both classes. MESSAGE_ADDRESS_CONSTRAINTS and ADDRESS_VALIDATION_REGEX could have been passed to the parent class' constructor such that isValidAddress can be inherited from the parent class as well. This also ensures that the contact detail is valid before assigning it to value.

@xjh666 Some comments added. Please close the PR after reading comments.


pod failed

2020-01-11 21:16:40.719: Killed
2020-01-11 21:15:58.425: 2020-01-11 13:15:58.424  INFO 6 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4459eb14: startup date [Sat Jan 11 13:15:58 GMT 2020]; root of context hierarchy
2020-01-11 21:15:54.818: 2020-01-11 13:15:54.721  INFO 6 --- [           main] io.kubesphere.devops.Application         : No active profile set, falling back to default profiles: default
2020-01-11 21:15:54.721: 2020-01-11 13:15:54.519  INFO 6 --- [           main] io.kubesphere.devops.Application         : Starting Application v0.0.1-SNAPSHOT on ks-sample-dev-ccc4968df-kn8hs with PID 6 (/home/devops-sample-0.0.1-SNAPSHOT.jar started by root in /home)
2020-01-11 21:15:49.918:  :: Spring Boot ::  (v1.4.1.BUILD-SNAPSHOT)

/close

/close

/close

/close

/close

/close

/close

/close

/close

/close

/cc @shaowenchen

/question

/area devops

/close

It hasn't been updated for too long.

It hasn't been updated for too long.