Add / Revert / Next / Previous git isn't ergonomic

Issue Type: Bug
There's a mode where one can add (stage) / revert / go to next / go to previous change in a file based on git diff (roughly the equivalent of git add -i ...).

The buttons for add/revert/next/previous are on the opposite side from the anchor to trigger the bar
While there is a next option, it sometimes shifts the next code point to the same spot on the scren, and sometimes moves the bar to elsewhere on the screen.

Ideally it would be easy to perform all of these actions w/ minimal "cursor travel".

Notice how this one is in a different spot on the screen which means that even though I've been able to click _revert_ and then press option-f3 for the last couple, I now need to move my mouse to get to this spot

And now my mouse has to travel back to the previous spot.
I've intentionally narrowed my screen to a very very very very tiny size so that I can perform some of these actions w/ reduced travel. But here, let's consider using the right bar to jump and then the left edge to trigger the bar instead of using option-f3:

jumping:

oops, I missed.

let's scroll back to where I was supposed to hit:

At this width, clicking the left marker:
isn't terribly painful wrt travel to choose the revert button.
But, let's consider the case where my window is normally sized:

Now my cursor must travel from the far left edge of the document to the far right edge of the document in order to hit revert:

Now, if i'm using that right bar to jump to the next item, it's (kinda) close to where my cursor is....

But, now I get to jump to the far left again just to open that bar.

Ideally:

when using the next / previous buttons/keystrokes, the bar position shouldn't shift -- even if that means some empty space needs to be provided above. -- yes this means that the document should still scroll even if the next target was visible onscreen.
it'd be good to be able to hit the right side instead of the left gutter in order to trigger the bar, that'd mean one could do position jumping, followed by opening the bar, followed by picking an action w/ minimal travel.

VS Code version: Code 1.68.1 (Universal) (30d9c6cd9483b2cc586687151bcbcd635f373630, 2022-06-14T12:52:13.188Z)
OS version: Darwin arm64 21.5.0
Restricted Mode: No

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 3, 3

Memory (System)
64.00GB (0.77GB free)

Process Argv
--crash-reporter-id 1fc67ee2-0174-4598-9f98-4537df0dd32c

Screen Reader
no

VM
0%

Extensions (23)

Extension
Author (truncated)
Version

quitcontrol-vscode
art
4.0.0

open-in-macdown
Cod
1.0.0

dhall-lang
dha
0.0.4

vscode-dhall-lsp-server
dha
0.0.4

EditorConfig
Edi
0.16.4

go
gol
0.34.0

haskell
has
2.2.0

cmake-language-support-vscode
jos
0.0.4

language-haskell
jus
3.6.0

vscode-dotnet-runtime
ms-
1.5.0

python
ms-
2022.8.0

vscode-pylance
ms-
2022.6.30

jupyter
ms-
2022.5.1001601848

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.8

vscode-dhall-lsp-server
pan
0.0.4

vscode-xml
red
0.20.0

vscode-yaml
red
1.8.0

scala
sca
0.5.5

metals
sca
1.17.0

code-spell-checker
str
2.2.5

simple-rst
tro
1.5.2

markdown-all-in-one
yzh
3.4.3

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscoreces:30445986
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vscscmwlcmt:30465135
cppdebug:30492333
vsclangdc:30486549
c4g48928:30516488

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Performance: Don't animate box-shadow directly

Casper is animating the box-shadow on hover at the front page with all the post-cards.
Animating box-shadow causes repaints (open chrome devtools and open tab "rendering").
This can easily be avoided by animating its pseudo element. Check this blogpost for a description: http://tobiasahlin.com/blog/how-to-animate-box-shadow/
I don't think that this is absolutely necessary, but it would be a good enhancement.

So I had code already for animating box-shadow, so I did it quick. https://github.com/samesies/Casper/tree/box-shadow
The downside is have to put z-index: -1 on the pseudo element, which causes the image to perform strangely on hover on Chrome (white lines go across it).
A solution would be rebuilding the card to make the whole thing a link inside the article, put the box shadow on the link, and then add JS for clicking on the author. Doing all of that kind of negates the little painting improvement.


[stable/cluster-autoscaler] ClusterRole leases and version bump to 1.17.1

Signed-off-by: Scott Crooks<EMAIL_ADDRESS>What this PR does / why we need it
Bumps the Cluster Autoscaler version to v1.17.1, and fixes the needed ClusterRole to add required coordination.k8s.io groups.
Which issue this PR fixes

fixes #20514

Special notes for your reviewer:
Checklist

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md
[X] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test

/lgtm

Is there going to be a version of the chart for people who are looking for 1.15.x and 1.16.x versions of the autoscaler?

You can set image.tag as needed.

Can we patch cluster-autoscaler chart v7.0.0 with these changes ?

I'm not sure what you're asking for, @abdennour. We certainly won't rewrite history and change the v7.0.0 chart. If you're just looking for the RBAC changes from v7.1.0, but the image from v7.0.0, you can just set the following values.
image:
  tag: v1.14.6

Correct. While Helm charts are configurable, chart package versions should be immutable. The digest from helm package ensures this.

@yurrriq  I mean  patching with incrementing the version for sure, and specially the patch version ( 3rd digit).
Immutability of version is a principle in release engineering.


DJ1.10 compat. Error on MoveNodeForm render from new use_required_attribute.

Pass through additional kwargs to support new use_required_attribute ModelForm argument.

@fladi Hopefully to support https://github.com/tabo/django-treebeard/pull/33 - Another small incompatibility ran into.

MoveNodeForm render error due to lack of use_required_attribute param.

Thanks for the work in trying to keep this alive!


ENH deal with tiny loss improvements in line search

This PR adds a 2. convergence check based on gradients in the line search. This can deal with tiny loss improvements.
This is taken from https://github.com/scikit-learn/scikit-learn/blob/9621539a9defe86ff55c890d5f2475f42697604f/sklearn/linear_model/_glm/_newton_solver.py#L263.
This might help with some of the tests in #723.
Checklist

[x] Added a CHANGELOG.rst entry

Is it possible to provide a source for the logic behind the tiny loss branch?

I developed this in https://github.com/scikit-learn/scikit-learn/pull/24637, trying to satisfy my own (very strict) tests. I can't provide any literature on this.
The basic insight is as follows:

In general, the first order condition alias score equation is a better condition for checking convergence than loss improvements or step sizes (change in coefficients) because we know the absolute scale: it should be zero.
Empirically, if we are already close to the minimum and seeking for a high precision solution, the floating point precision of the loss might not be enough while the gradient has not yet achieved, say 1e-12 or lower. Therefore, the gradient has more information in such a setting.
The line search may then reject a (Newton) step that brings the gradient closer to zero, but that provides no improvement of the loss (but no worsening either up to machine precision).

Thanks @lorentzenchr!


"--local-host" option not working with "--host"

I'm running the current "master" localtunnel server, but when i run in my machine this command:
lt --port 80 --subdomain example --local-host example.dev --host hello.com

The option "--local-host" is somehow overwritten by "localhost".
When I use this command:
lt --port 80 --subdomain example --local-host example.dev

The option "--local-host" work very well, that's why I'm assuming the problem is on the localtunnel server.

The server code has been heavily refactored.


How do I set to only detect rectangles, skip any other geometry

I need to only detect rectangles.
Another thing the would be useful is reduce the detection speed, sometimes I do detect but with a tiny move the detection update to another one.
Can you please help me if possible ?

I think the detecting not working well on complex environment, but i'd be happy to help if you could provide a sample image.

when taking photo the lines tends to find a shape between points, sometimes it finds a triangle because only finds 3 points.
I would like to always look for 4 points and return a rectangle or square, even if only finds a triangle, when taking a photo, gives a default for 4 points and a rectangle.

got it. i will try to fix it when i am free.

Thanks, Thanks for the quick response too !!

I've made it, when detects a triangle, then return default rectangle, just added one line of code, your code handled it

Great!

This pull request that I am sending is to improve detection and also to prevent a triangle from being generated when detecting an object.
I know that the triangle generation fix was closed in issue 12, but what it seemed when running the app is that this problem still remained.
Thanks for the shared content!


Not sure how filter is supposed to work?

How is the filter supposed to work? It seems like it reorders the list somewhat inconsistently. Is it supposed to only display results based on that keyword?
Here's an example where I selected filter by "Pizza"

And, the same list when filtered by "Hotel"

This is filtered by "Coffee Shops", the hotel is still at the top of the list:

There is some discussion on this in #8.
You can look under the Supported category values on this page.
Food is a category 2 value.
Pizza is a category 3 value.
All Pizza is a Food, but not all Food is a Pizza, if that makes sense.
When the category filters are updated, the request is sent back to the geocoding REST API and the results are shown as given. I don't resort or change them in any way.

@odoe Thanks, yep I get the sub-categories. My expectation is there should only be a single, top-level category requested when applying the filter. The app is generating multiple categories per filter-based request. That seems like a bug?
Reference: https://developers.arcgis.com/rest/geocode/api-reference/geocoding-category-filtering.htm => Category Request Details.
Example 1: When I select "Hotel", here's what I'm seeing in the findAddressCandidates request header:
category: Coffee Shop,Hotel
// My expectation => category: Hotel

Example findAddressCandidates request with a single category
When I select "Pizza":
category: Coffee Shop,Pizza,Hotel
// My expectation => category: Pizza

And when I select "Food":
category: Coffee Shop,Food,Pizza,Hotel
// My expectation => category: Food

OHHHH, you have to de-select filters! That wasn't intuitive.

@andygup this was my first thought when I saw this issue pop up. Glad we don't have any bugs here!
Yes, you must de-select the category filters to update the POIs shown on the map & in the list. By default, they're all enabled.

I think we're ok on this one @andygup


Question about how data binding/abstract syntax tree works

hi,
Forgive me if I am not making any sense here.
I am using legacy version of Ractive (need to support ie8) and I have a situation that after Ractive rendered the template. I need to re-attach an existing dom element to a new parent at the same time need the bindings to work.
More interestingly, the new parent is outside the Ractive's scope (as not a child of the element, that is passed when create a Ractive instance).
Here is a simple example to explain what I am doing:

var ractive = new Ractive( {
  el: $('#existParent'),
  template: "
{{msg}}
",
  data : { msg : "hello test" }
} );
$( '#child' ).appendTo( '#newParent' )
ractive.update( 'msg', 'hello moved' );

I have already tested and the binding seems to be working (in Chrome) still after I moved the dom. Just wondering am I doing something that Ractive does not intentionally supports, so I might get issues in the future.
Future more, how does Ractive keeps its binding even after I moved the dom element.
cheers, Kenny

Similar to https://github.com/ractivejs/ractive/issues/1972 and https://github.com/ractivejs/docs.ractivejs.org/issues/47 . Probably some new docs coming after 0.8 becomes mainstream.

hi fskreuz,
So is it expected that Ractive binding will work on the child element even it is re-attached to a new element after rendered?

@kennygitchen

I don't seem to be able to find the how Ractive works internally or related information from the references that you have linked in your comment.

Because there isn't any formal documentation about how the internals work (hence those issues linked). There's only discussions here and there but nothing really definitive at the moment.
Documentation is one of the things coming soon. Just holding off until 0.8 comes out of the production line as a lot of things have changed since 0.7. :smile:

@fskreuz
So, we are not sure this feature that seems to work right now is intended or is supported?

Ok, I'll start over. :smile:

Question about how data binding/abstract syntax tree works

how does Ractive keeps its binding even after I moved the dom element.

No definitive documentation yet.

I need to re-attach an existing dom element to a new parent at the same time need the bindings to work.

Detaching and reattaching is definitely supported. There's ractive.detach and ractive.insert

var ractive = new Ractive( {
el: $('#existParent'),
template: "{{msg}}",
data : { msg : "hello test" }
} );
$( '#child' ).appendTo( '#newParent' )
ractive.update( 'msg', 'hello moved' );

This is just an odd way of doing it though. And yes, you're right. This method *may* work this way like you discovered, but it's probably not intended. Use [`ractive.detach`](http://docs.ractivejs.org/latest/ractive-detach) and [`ractive.insert`](http://docs.ractivejs.org/latest/ractive-insert) instead.

@fskreuz
Thanks for the info, this indeed very helpful.

This is a great question.
I'm not a ractive expert but did some debugging and will try and explain why moving the dom works  in your example and why it is probably a bad idea ;-)
Given this:
var ractive = new Ractive( {
  el: $('#existParent'),
  template: "
{{msg}}
",
  data : { msg : "hello test" }
} );
$( '#child' ).appendTo( '#newParent' )
ractive.update( 'msg', 'hello moved' );

ractive will parse the template into an AST as described here:
https://github.com/ractivejs/template-spec
Based on the AST, ractive will build a virtual dom consisting of fragments, items, expressions etc. and "render" that virtual dom to the browser DOM. "Render" means creating and inserting  browser DOM nodes based on the AST. For example:
mustaches in the template becomes Interpolator instances in the virtual dom. Interpolators are rendered to the browser DOM as TextNodes:
A virtual dom item has a reference to the actual browser dom node. In the case of interpolators it has a "node" property which references the TextNode in the browser DOM.
To summarize so far:

Template
Virtual Dom
Browser DOM

{{msg}}
Interpolator
TextNode

Textnodes have a data property to set/get it's text value.
When the keypath changes ractive will update the text node data property with the new value, for example:
ractive.set("msg", "hello");

will lead to this, internally:
theMsgTextNode.data = "hello";

Next, let's look at what happens when moving the dom without ractive knowing about it.
I'm going to change your example slightly to make it more clear what is happening. Instead of moving the "child" div, I'm going to move the content of the "child" div to a new parent, like so:
var node = document.getElementById("child");
var msgTextNode = node.removeChild( node.firstChild );
$( "#newParent" ).append(msgTextNode);

Above we move the textnode, which represents the "msg" mustache, to the "newParent" div. When we update the keypath "msg", ractive will tell the interpolator, which still has a reference to the msg textNode, to set the textNode.data to the new value.
The reason things still work is because we moved the browser DOM to a new location, but ractive still has a reference to the ntextNode we moved, so updating the keypath updates the browser DOM.
The problem though is that at this stage, according to ractive's virtual dom, the msg text node is inside the "child" div, which isn't true since we moved the content of the "child" div (the textNode) to the "newParent" div.
To verify the inconsistency between virtual dom and browser dom we can do:
var html = ractive.toHTML()
console.log(html);

this will print:
 "
hello

where in reality it is:
 "
hello

In more complex templates, manipulating the browser dom that Ractive has a virtual dom for, would probably cause problems sooner or later.
Having said all that, I often use jQuery plugins which enhances the browser dom eg. add or change browser nodes, even inside the ractive managed dom, without issues. For example, given the following ractive template:

I'll do this:
$("#child").somePlugin();

where somePlugin() might add new nodes inside the "child" div, so the browser DOM might become:

       <form>
           <input type="text" name="foo"/>
         </form>

Ractive only knows about
, not it's content. Meaning ractive won't be influenced by any changes made to the content inside "child" either. Where things could get messy is if the jQuery plugin manipulated the browser DOM, "outside" of the "child" div. For examle, removed the "child" div and attached it to another parent node. Generally though, jQuery plugins stay within the bounds of the elements they enhance.
*Phew*, that was a mouthful. Not sure I've everything right, so if anyone can shed more light that would be great.
Kind regards
Bob

@sabob
Thanks for the info, you indeed gave me some insight about Ractive and Mustaches.
In a nutshell because reference to the DOM element does not care about where the DOM element is in the document therefore, after the binding (Ractive -> Mustache -> DOM) is established, the reference (Mustaches) can always find the DOM element that it needs to update.
@fskreuz
Unless, I am confused, the ractive.insert() and ractifve.detach() method are used for insert/detach ractive object to DOM. Not actually detach/insert particular DOM element that I would like to move while keeps the binding and everything else to work as per normal. The simple example that I have posted does not demonstrate exactly what I needed.
I totally understood my situation is not a usual case and thanks for all the time you have spent with me.
cheers, Kenny

@kennygitchen The way you mentioned it is like you want to move a specific element under a component to another location, and not the entire component DOM. If so, then I guess that's out of bounds to any method I know of. And yes, ractive.insert and ractive.detach work on the entire component.
Removing elements from their components may have unintended side effects, especially in rendering. You might want to explain the full use case here so we might find other ways. It might even be simpler than expected. :smile:
Reopening to invite more people.


README.md

Could you please add some instructions to README.md regarding building and running your app?

stack build
stack exec reversi-exe


Payment.token has a max_length of 512, trying a test token of more than 255 raises an exception

I don't know about gateways with tokens of more than 255 chars, I just used a long string by mistake and found this

Nevermind, this was my mistake


SearxNG Search Issues in 0.3.3

Bug Report
Description
Bug Summary:
Searching stalls or sometimes fails when using SearxNG. It will report an error about invalid URLs.
Steps to Reproduce:
Enable web search and configure a searxNG URL like https://search.example.com/search?q=<query>.
Expected Behavior:
Search results are shown and fed to the LLM for context.
Actual Behavior:
The search either stalls (prints "searching" in the logs but does nothing) or errors out (reports error about invalid URL).
The invalid URL error actually comes from the search result URLs themselves, not the actual search query. I added a print statement to verify this, and it was failing to validate one of the top 3 result URLs, even though it is a valid URL.
Environment

Open WebUI Version: 0.3.3

Ollama (if applicable): 0.1.43 (though don't think it is applicable)

Operating System: Gentoo Linux

Browser (if applicable): Firefox 126

Reproduction Details
Confirmation:

[X] I have read and followed all the instructions provided in the README.md.
[X] I am on the latest version of both Open WebUI and Ollama.
[X] I have included the browser console logs.
[X] I have included the Docker container logs.

Logs and Screenshots
Browser Console Logs:
[Include relevant browser console logs, if applicable]
Docker Container Logs:
(This includes my added print statement)
INFO:     <IP_ADDRESS>:44018 - "POST /api/v1/memories/query HTTP/1.1" 200 OK
generate_search_query
INFO:     <IP_ADDRESS>:44022 - "POST /api/task/query/completions HTTP/1.1" 400 Bad Request
INFO:root:trying to web search with ('searxng', 'What are some things to do in Haarlem?')
urls are ['https://dutchreview.com/traveling/charming-things-to-do-in-haarlem/', 'https://thirdeyetraveller.com/things-to-do-in-haarlem-netherlands-worth-it/', 'https://www.planetware.com/tourist-attractions-/haarlem-nl-nh-har.htm']
urls are https://dutchreview.com/traveling/charming-things-to-do-in-haarlem/
urls are https://thirdeyetraveller.com/things-to-do-in-haarlem-netherlands-worth-it/
ERROR:apps.rag.main:Oops! The URL you provided is invalid. Please double-check and try again.
Traceback (most recent call last):
  File "/app/backend/apps/rag/main.py", line 837, in store_web_search
    loader = get_web_loader(urls)
             ^^^^^^^^^^^^^^^^^^^^
  File "/app/backend/apps/rag/main.py", line 705, in get_web_loader
    if not validate_url(url):
           ^^^^^^^^^^^^^^^^^
  File "/app/backend/apps/rag/main.py", line 730, in validate_url
    return all(validate_url(u) for u in url)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/backend/apps/rag/main.py", line 730, in <genexpr>
    return all(validate_url(u) for u in url)
               ^^^^^^^^^^^^^^^
  File "/app/backend/apps/rag/main.py", line 725, in validate_url
    raise ValueError(ERROR_MESSAGES.INVALID_URL)

Screenshots (if applicable):
[Attach any relevant screenshots to help illustrate the issue]
Installation Method
Docker
Additional Information
I'm not sure what causes the stall vs validation failure.

I have exactly the same issue on Ubuntu 24.04 with searxng after updating from 0.3.1 to 0.3.3. Also the logs are pretty much the same for me.

Add - ENABLE_RAG_LOCAL_WEB_FETCH=True fixed the problem.

Add - ENABLE_RAG_LOCAL_WEB_FETCH=True fixed the problem.

Confirmed bug on 0.3.3 here, and your fix resolves it as well.

Yes, this works. Looks like the commit is being reverted too?

Yes, this works. Looks like the commit is being reverted too?

Indeed, would highly recommend reverting that envvar as soon as it's merged to main.

Reverted, merging soon!


400 : "Invalid request payload" on updateFilter

atlassian_apis: ^0.10.0
This started just a few days ago, and it was working prior, no changes since. I just upgraded to 0.10.0 thinking that would be the fix needed, but the problem persists.
      print("updating filter with new jql");
      print(jql);
      var myfilter = await filters.getFilter(id: 39814);
      var newFilter = myfilter.copyWith(jql: jql);
      print("Json is  ${json.encode(newFilter)}");

      await filters.updateFilter(id: 39814, body: newFilter);

gives me
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: JiraException(400, Bad Request, url: https://abcdef.atlassian.net/rest/api/3/filter/39814?, message: {"errorMessages":["Invalid request payload. Refer to the REST API documentation and try again."]})
#0      ApiException.checkResponse (package:atlassian_apis/src/api_utils.dart:138:5)
#1      ApiClient.send (package:atlassian_apis/src/api_utils.dart:84:18)
<asynchronous suspension>
#2      FiltersApi.updateFilter (package:atlassian_apis/src/generated/jira_platform.dart:1873:28)
<asynchronous suspension>

I'm at a loss.  Is there something I can help provide with tracking the issue?
Thank you !

@alevinetx I quickly tried something similar like this:
import 'dart:io';
import 'package:atlassian_apis/jira_platform.dart';

void main() async {
  var user = Platform.environment['ATLASSIAN_USER']!;
  var apiToken = Platform.environment['ATLASSIAN_API_TOKEN']!;

  var client = ApiClient.basicAuthentication(
      Uri.https('xxx.atlassian.net', ''),
      user: user,
      apiToken: apiToken);
  var jira = JiraPlatformApi(client);

  var myFilter = await jira.filters.getFilter(id: 12497);
  myFilter = myFilter.copyWith(jql: 'assignee in (currentUser()) order by created ASC');

  await jira.filters.updateFilter(id: 12497, body: myFilter);

  client.close();
}

But I don't have any problem.
Can you share your new jql? Maybe try to simplify the request to understand exactly what is causing the error.
ie. you can only send a few fields in the update request:
await jira.filters.updateFilter(id: 12497, body: Filter(name: 'New name', description: 'New description'));

I set my jql as simple as possible "project = myproj", and still with the failure
Here's the sanitized dump from the encoding line
code:
print("updating filter with new jql");
      jql = "project = myproj";
      print(jql);
      var myfilter = await filters.getFilter(id: 39814);
      var newFilter = myfilter.copyWith(jql: jql);
      print("Json is  ${json.encode(newFilter)}");

      await filters.updateFilter(id: 39814, body: newFilter);

sanitized filter:
{
	"self": "https://abcde.atlassian.net/rest/api/3/filter/39814",
	"id": "39814",
	"name": "myproject-2023",
	"description": "",
	"owner": {
		"self": "https://abcde.atlassian.net/rest/api/3/user?accountId=1111:123-123-1332-abcd",
		"accountId": "1111:123-123-1334-abcd",
		"avatarUrls": {
			"16x16": "https://secure.gravatar.com/avatar/abcd?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FAL-6.png",
			"24x24": "https://secure.gravatar.com/avatar/abcd?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FAL-6.png",
			"32x32": "https://secure.gravatar.com/avatar/abcd?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FAL-6.png",
			"48x48": "https://secure.gravatar.com/avatar/abcd?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FAL-6.png"
		},
		"displayName": "My Name",
		"active": true
	},
	"jql": "project = myproj",
	"viewUrl": "https://abcde.atlassian.net/issues/?filter=39814",
	"searchUrl": "https://abcde.atlassian.net/rest/api/3/search?jql=project+%3D+myproj+and+linkedissue+in+(+myproj-13610,myproj-13609,myproj-13562,myproj-13554,myproj-13553,myproj-13537,myproj-13526,myproj-13513,myproj-13512,myproj-13511+)+or+key+in+(myproj-13617,myproj-13615,myproj-13552,myproj-13525,myproj-13523,myproj-13510)",
	"favourite": true,
	"favouritedCount": 1,
	"sharePermissions": [
		{
			"id": 105371,
			"type": "project",
			"project": {
				"self": "https://abcde.atlassian.net/rest/api/3/project/1234",
				"id": "1234",
				"key": "myproj",
				"components": [],
				"issueTypes": [],
				"assigneeType": "PROJECT_LEAD",
				"versions": [],
				"name": "MyProject",
				"roles": {},
				"avatarUrls": {
					"16x16": "https://abcde.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/10400?size=xsmall",
					"24x24": "https://abcde.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/10400?size=small",
					"32x32": "https://abcde.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/10400?size=medium",
					"48x48": "https://abcde.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/10400"
				},
				"projectCategory": {
					"self": "https://abcde.atlassian.net/rest/api/3/projectCategory/10004",
					"id": "10004",
					"name": "MyProject",
					"description": ""
				},
				"projectTypeKey": "software",
				"simplified": false,
				"style": "classic",
				"favourite": false,
				"isPrivate": false,
				"properties": {},
				"deleted": false,
				"archived": false
			}
		}
	],
	"editPermissions": [],
	"sharedUsers": {
		"size": 3206,
		"items": [],
		"max-results": 1000,
		"start-index": 0,
		"end-index": 0
	},
	"subscriptions": {
		"size": 0,
		"items": [],
		"max-results": 1000,
		"start-index": 0,
		"end-index": 0
	}
}

Well, thank you, found the problem!!
I used your simple line,  await jira.filters.updateFilter(id: 12497, body: Filter(name: 'New name', description: 'New description'));
And it worked, and then my update worked as prior.
It seems they may have changed the requirements for field presence, and as I'd never set those, it was complaining, but with not a very good error message.
Thank you for taking the time to help me out, I truly appreciate it.  I need to send their team feedback to make it known when they start changing required fields, etc.

@alevinetx all the tools are written in Dart and are committed in this project.
ie.:

Pull all the openapis/swagger schema: run this script https://github.com/xvrh/atlassian_apis/blob/master/tool/update_swagger_files.dart
Generate all the Dart clients: https://github.com/xvrh/atlassian_apis/blob/master/tool/generate_client.dart

This is basically a home-made swagger generator customized for the specificities of the atlassian schemas.

bingo bango, found the problem!
Per the API spec, the problem is in the Project field, which only uses a subset of the properties, which are: self, id, key, assigneeType, name, roles, avatarUrls, projectType, simplified.
Once I stripped out these fields, I can PUT the request using a REST tool (eg, Insomnia)
	"components": [],
	"issueTypes": [],
	"versions": [],
	"projectCategory": {},
	"projectTypeKey": "software",
	"style": "classic",
	"favourite": false,
	"isPrivate": false,
	"properties": {},
	"deleted": false,
	"archived": false

Some starter code for anyone.  Not sure how you want to handle this, as most the code is autogenerated from API specs
  // build up the permissions, minus bad fields

  List<String> badKeys = [
    "components",
    "issueTypes",
    "versions",
    "projectCategory",
    "projectTypeKey",
    "style",
    "favourite",
    "isPrivate",
    "properties",
    "deleted",
    "archived"
  ];

  List<Map<String, Object?>> replacementPermissions = [];

  List<SharePermission> permissions = List<SharePermission>.from(myfilter.sharePermissions);
  for (SharePermission sp in permissions)
  {
    var permMap = sp.toJson();

    var projMap = permMap["project"] as Map<String, Object?>;
    for (String key in badKeys)
    {
      projMap.remove(key);
    }

    permMap.remove("project");
    MapEntry<String, Object?> replacement = MapEntry("project",projMap);
    permMap.addEntries([replacement]);

    replacementPermissions.add(permMap);

  } // sp in permissions

  // slice and dice the filter
  var filterMap = newFilter.toJson();
  filterMap.remove("sharePermissions");
  MapEntry<String, Object?> replacement = MapEntry("sharePermissions",replacementPermissions);
  filterMap.addEntries([replacement]);

  var updatedFilterResponse = await client.send(
    'put',
    'rest/api/3/filter/{id}',
    pathParameters: {
      'id': '$my_filter',
    },
    queryParameters: {},
    body: filterMap,
  );

@alevinetx thanks for looking into this.
Just a quick question though: if all you want is to update the jql field, can't you send a request with only that field?
ie:
await jira.filters.updateFilter(id: 123, body: Filter(jql: '<new jql>'));

Will it change any other field?

Yes, as that new Filter() no longer carries any share permissions, which was what was causing me problems; it was getting updated but then it broke people being able to use it.
update should be considered a replace in true functionality.

@alevinetx In the updateFilter method, there is a overrideSharePermissions parameter. Does it changes anything if you put it to false?
await jira.filters.updateFilter(id: 123, body: Filter(jql: '<new jql>'), overrideSharePermissions: false);

Sadly, no

overrideSharePermissions
boolean

EXPERIMENTAL: Whether share permissions are overridden to enable the addition of any share permissions to filters. Available to users with Administer Jira global permission

BTW, there's an additional parameter, editPermissions, which follows the same subset of Project.  As I don't personally use it, I didn't include it in my starter code above, but that's an easy enough copy-paste.

I see your fixApi() call. Is that where you'd likely do some conditional to create a copy of SharePermission with the subset of fields, a one-off Filter,  and also modify the updateFilter call to use the one-off?

I think it's gonna be hard to handle that in the generator...
As a first step, I suggest you handle it in your own code with something like that:
void main() async {
  await jira.filters
    .updateFilter(id: 12497, body: prepareFilterForUpdate(myFilter));
}

Filter prepareFilterForUpdate(Filter filter) {
  return filter.copyWith(editPermissions: [
    for (var permission in filter.editPermissions)
      _prepareSharePermission(permission)
  ]);
}

SharePermission _prepareSharePermission(SharePermission permission) {
  var project = permission.project;
  if (project != null) {
    return permission.copyWith(project: Project(id: project.id));
  }
  return permission;
}

Would it work?
After, we can maintain utilities like prepareFilterForUpdate in this package and tell the generator to add it in the generated code for the updateFilter method...

I'm pretty sure Filter will need to have its own special class, as the json method will still see the fields in project, and send empty values.  That's why I was suggesting wiring it into the fixApi(), as that's where it seems you're doing any special magic.
Or, we just add a shadow updateFilterWithPermissions that uses the field removal from the Map in Filter before sending it along.
The 2nd would probably be the cleanest.

BTW, there's an additional parameter, editPermissions, which follows the same subset of Project. As I don't personally use it, I didn't include it in my starter code above, but that's an easy enough copy-paste.

As soon as I said this, I now need it.
Fun fact:  the editPermissions block in the returned Filter doesn't contain a Project node.  So it has to be added in.   /sigh
updated code to come

still has some artifacts from moving things around (late before used only in the loop), but functional

      List<SharePermission> permissions = List<SharePermission>.from(myfilter.sharePermissions);
      List<SharePermission> editPermissions = List<SharePermission>.from(myfilter.editPermissions);

      var newFilter = myfilter.copyWith(jql: jql);

    // build up the permissions, minus bad fields
    List<String> badKeys = [
      "components",
      "issueTypes",
      "versions",
      "projectCategory",
      "projectTypeKey",
      "style",
      "favourite",
      "isPrivate",
      "properties",
      "deleted",
      "archived"
    ];

    List<Map<String, Object?>> replacementPermissions = [];

    late MapEntry<String, Object?> projectReplacement;
    // share permissions
    for (SharePermission sp in permissions)
    {
      var permMap = sp.toJson();
      var projMap = permMap["project"] as Map<String, Object?>;
      for (String key in badKeys)
        {
          projMap.remove(key);
        }
      permMap.remove("project");
      projectReplacement = MapEntry("project",projMap);
      permMap.addEntries([projectReplacement]);
      replacementPermissions.add(permMap);
    }

    // edit permissions
    List<Map<String, Object?>> editReplacementPermissions = [];
    for (SharePermission sp in editPermissions)
    {
      var permMap = sp.toJson();

      // remove user.avatarUrls
      (permMap['user'] as Map<String, Object?>).remove('avatarUrls');

      editReplacementPermissions.add(permMap);
    }

    // slice and dice the filter
    var filterMap = newFilter.toJson();
    filterMap.remove("sharePermissions");
    MapEntry<String, Object?> replacement = MapEntry("sharePermissions",replacementPermissions);
    filterMap.addEntries([replacement]);

    filterMap.remove("editPermissions");
    MapEntry<String, Object?> editReplacement = MapEntry("editPermissions",editReplacementPermissions);
    filterMap.addEntries([editReplacement]);

    print("New filter: ${json.encode(filterMap)}");

    var updatedFilterResponse = await client.send(
      'put',
      'rest/api/3/filter/{id}',
      pathParameters: {
        'id': '$my_filter',
      },
      queryParameters: {},
      body: filterMap,
    );

some updates w/ Atlassian


seems that import { EventEmitter } from 'events'; is not supported in browser

seems that import { EventEmitter } from 'events'; is not supported in browser

Unfortunately not, I'm looking to improve that in future but need to research more. In the meantime, if you're using typescript, there's an easy way you can provide polyfills via your tsconfig:
https://github.com/tiagosiebler/okx-api#browserfrontend-usage

Thanks for explanation. My issue was resolved.


Streamlit 1.36.0 breaks functionality

To reproduce:
# ui.py
from st_pages import Page, show_pages

pages = [
    Page("ui.py", "home"),
    Page("page.py", "page"),
]
show_pages(pages)

# page.py
import streamlit as st

st.title("hi")

# requirements.txt
streamlit==1.36.0
st_pages==0.4.5

streamlit run ui.py
Results in exception:
AttributeError: 'str' object has no attribute 'main_script_path'
Traceback:
File "/Users/dan/repos/scrap/foo/.venv/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 589, in _run_script
    exec(code, module.__dict__)
File "/Users/dan/repos/scrap/foo/src/ui.py", line 7, in <module>
    show_pages(pages)
File "/Users/dan/repos/scrap/foo/.venv/lib/python3.11/site-packages/streamlit/runtime/metrics_util.py", line 408, in wrapped_func
    result = non_optional_func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dan/repos/scrap/foo/.venv/lib/python3.11/site-packages/st_pages/__init__.py", line 252, in _show_pages
    rt._sources_watcher = LocalSourcesWatcher(rt._main_script_path)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dan/repos/scrap/foo/.venv/lib/python3.11/site-packages/streamlit/watcher/local_sources_watcher.py", line 51, in __init__
    self._main_script_path = os.path.abspath(self._pages_manager.main_script_path)
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Temporary fix is to set streamlit<1.36.0 in your application

Just found out that Streamlit 1.36.0 introduced st.navigation and st.Page. Maybe now Streamlit officially supports this feature and this 3rd party is not necessary anymore?

Just found out that Streamlit 1.36.0 introduced st.navigation and st.Page. Maybe now Streamlit officially supports this feature and this 3rd party is not necessary anymore?

Ooo interesting. I was just focused on fixing my build.

FWIW, I'm still interested in solving this within st_pages because the new functionality mentioned by @george-gca does not allow for multiprocessing to be run in the app (as far as I can tell).

I am still facing this problem with show_pages_from_config().
Do you fix that in v0.5.0?

Yes, this should be fixed by release 0.5.0

Confirmed that 0.5.0 fixes the problem. Thanks so much @blackary!


Can we have a shopify like simple dashboard for sales reporting

@SGFGOV - By the end of March, we will have moved the admin project to our core monorepo, and maintenance of this repository will come to a halt shortly after. Therefore, please move your feature request (if still relevant) to our GitHub Discussions - not issues - to centralize requested improvements for all our projects.
Could I ask you to re-open your request here: https://github.com/medusajs/medusa/discussions/categories/feature-requests
Thanks!


add tie to [pattern]

see also https://github.com/porres/pd-else/issues/1093

and also https://github.com/porres/pd-else/issues/928


upgrade nan to 2.10 for node 10

See https://github.com/nodejs/nan/issues/763

Merge plz!

🏓

Note the caret in the version selector. If npm selects an old version of nan, there's probably something in your deps that constrains it.
IOW, merging this PR won't fix the real issue, it'll just move it to the other dependency (but on the upside, fsevents won't be fingered as the culprit anymore.)
Might as well update it to<EMAIL_ADDRESS>the latest version of as this writing.

The next release (coming as soon as a few more things in it go out of experimental) will use N-API.


Fix custom payload function return value recursion panic

This includes a change in (a fork of) otto: https://github.com/htdvisser/otto/commit/4c9f00e2ef7b56d46b9c699c30b94ad93f348dae

Coverage increased (+0.02%) to 74.768% when pulling afaabf21f16a126816f33885a78e9eb73e48e5bc on fix/payload-function-panic into ce8e5f2982ede1f4813262c285a4a059e1a6d3f0 on develop.


Remove LCIDToLocaleName P/Invoke from GetComputerInfoCommand

PR Summary

Remove LCIDToLocaleName P/Invoke with StringBuilder
Reduce allocations by using GetCultureInfo to get cached CultureInfo
Use UInt32.TryParse to parse Hex
Minor cleanups after above changes

PR Context
Continue to clean up the code base from P/Invokes and related StringBuilders
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

@adityapatwardhan Could you please update your review?

@adityapatwardhan Could you please update your review?

@adityapatwardhan 	Please update your review


Add examples of how to manage uttt games

I'm evaluating if I should switch to this library for managing my Ultimate TTT games or still use my own implementation / refactor my implementation to a library.
It would make it a lot easier if you could add  examples to your doc/Readme/wiki. Api Doc is always okay but examples in documentation are the most helpful.

Sounds good!
I'm currently creating a platform for UTTT games aswell and as a part of that I will either start to create my own library so that I can abstract most logic out of my client side game implementation or maybe use this one.
That's why I came across this one. But I'm struggling to understand the API / not completely happy with it's design.

Hey @maracuja-juice - yeah as @reddyalready mentioned we've been using this for a few years to run events at https://socialgorithm.org
We are going to improve the API and separate it from the main tournament server a bit more, so it's easier to plug in different games. If you're looking for a server that can organise tournaments of different types (double elimination with brackets, free for all... ) then this would work for you I suppose.
Yeah it's lacking documentation because so far it's only been us using it and we're still actively developing the platform, but ideally we can start publishing proper docs so other people can use it, as that's part of what we're trying to do here :) Any suggestions welcome!


Uncaught ReferenceError: _propIsVisible is not defined

I just updated all px-data-grid's deps and got this exception:

Steps to reproduce:

Clone https://github.com/vaadin/px-data-grid
Install deps
Open in any browser, e.g. Chrome

Probably something has changed in dom-repeat.html, didn't have enough time to investigate.

Something weird happened in my dev environment, I can't reproduce this anymore. Apologies for the false alarm.


DOC: Generation: Win10: Could not import extension zephyr.kconfig (exception: No module named 'sphinx.util.display')

Describe the bug
Zephyr Documentation generation on Windows is causing the Sphinx error:
sphinx.errors.ExtensionError: Could not import extension zephyr.kconfig (exception: No module named 'sphinx.util.display')
To Reproduce
Steps to reproduce the behavior:

Use Windows OS.
Install all documentation tools and requirements according to https://docs.zephyrproject.org/latest/contribute/documentation/generation.html
Go to the zephyr doc directory
cd \zephyr\doc
Use cmake to configure a Ninja-based build system:
cmake -GNinja -B_build .
Enter the build directory
cd _build
To generate HTML output, run ninja on the generated build system:
ninja html
See error in the command log: sphinx.errors.ExtensionError: Could not import extension zephyr.kconfig (exception: No module named 'sphinx.util.display'):

C:\_ddm\ZEPHYR\zephyr_vs\zephyr\doc\_build>ninja html
[0/2] Generating Devicetree bindings documentation...
[1/2] Running Sphinx HTML build...Running Sphinx v5.3.0

Traceback (most recent call last):
  File "C:\Python311\Lib\site-packages\sphinx\registry.py", line 459, in load_extension
    mod = import_module(extname)
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\_ddm\ZEPHYR\zephyr_vs\zephyr\doc\_extensions\zephyr\kconfig\__init__.py", line 49, in <module>
    from sphinx.util.display import progress_message
ModuleNotFoundError: No module named 'sphinx.util.display'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Python311\Lib\site-packages\sphinx\cmd\build.py", line 276, in build_main
    app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\sphinx\application.py", line 223, in __init__
    self.setup_extension(extension)
  File "C:\Python311\Lib\site-packages\sphinx\application.py", line 398, in setup_extension
    self.registry.load_extension(self, extname)
  File "C:\Python311\Lib\site-packages\sphinx\registry.py", line 462, in load_extension
    raise ExtensionError(__('Could not import extension %s') % extname,
sphinx.errors.ExtensionError: Could not import extension zephyr.kconfig (exception: No module named 'sphinx.util.display')

Extension error:
Could not import extension zephyr.kconfig (exception: No module named 'sphinx.util.display')

FAILED: CMakeFiles/html C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc/_build/CMakeFiles/html
C:\WINDOWS\system32\cmd.exe /C "cd /D C:\_ddm\ZEPHYR\zephyr_vs\zephyr\doc\_build && C:\Users\nxa12205\.mcuxpressotools\cmake-3.28.1-windows-x86_64\bin\cmake.exe -E env DOXYGEN_EXECUTABLE=C:/Strawberry/c/bin/doxygen.exe DOT_EXECUTABLE=C:/ProgramData/chocolatey/bin/dot.exe C:/Python311/Scripts/sphinx-build.exe -b html -c C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc -d C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc/_build/doctrees -w C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc/_build/html.log -t development -j auto -W --keep-going -T C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc/_build/src C:/_ddm/ZEPHYR/zephyr_vs/zephyr/doc/_build/html"
ninja: build stopped: subcommand failed.

Expected behavior
No error
Impact
Not able to generation the Zephyr documentation.
Environment (please complete the following information):

OS: Windows
Sphinx v5.3.0
Commit a2ebe49259d12c7c3375669f65ed5703ddd7f33a

@butok you seem to be running a pretty old Sphinx version, and that is why it's failing. Please make sure you have up-to-date Python dependencies for the documentation build as per zephyr/doc/requirements.txt

Please, make sure to install updated dependencies: pip install -U -r doc/requirements.txt

Please, make sure to install updated dependencies: pip install -U -r doc/requirements.txt

Thank you @gmarull,
I have followed the Zephyr documentation, and I have used pip install -r doc/requirements.txt (Without -U).
I'll probably add a fix to the documentation.
Also, think about how to update the requirements.txt file to avoid this problem on systems with previously installed old modules.


Using with TypeScript: Property 'config' does not exist on type 'Options'. ts(2339)

I'm following the example from docs: https://github.com/jshjohnson/Choices/blob/master/types/index.d.ts#L656
and getting this TS error:

Also, the example from types is different from the example from README

The example from types isn't working for me, I believe there are mistakes in types.

Fixed by #687


feat: adds geolocation API demo

Description
This PR adds a demo of the Geolocation API. It is one of the most used web API.
More information about the same can be found here.
Fixes #14
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
There are no unit tests configured, so I have tested this manually.
One thing to notice, since I am adding a new demo, the "See Code" buttons redirects to 404 page. This will get auto fixed when the PR is merged and deployed.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@atapas I am done with the task.

@atapas I am done with the task.

Thanks @wsameer, We will start the review soon and get back to you here.

@wsameer , Great work. I have seen the demo. Looks great. One question, Do you think we can embed the map in the demo page itself than opening it in a new tab? Is there a possibility?

@wsameer , Great work. I have seen the demo. Looks great. One question, Do you think we can embed the map in the demo page itself than opening it in a new tab? Is there a possibility?

@atapas Yeah, can be done. But it will add a lot of dependencies - leaflet . Also, there will be licensing issues, if that matters, since OpenStreetMap isn't MIT license, and Google Maps needs API key (you'll have to create one for the project being a maintainer).
If you're fine with all these, then I can work on the integration of that.

@wsameer , Great work. I have seen the demo. Looks great. One question, Do you think we can embed the map in the demo page itself than opening it in a new tab? Is there a possibility?

@atapas Yeah, can be done. But it will add a lot of dependencies - leaflet . Also, there will be licensing issues, if that matters, since OpenStreetMap isn't MIT license, and Google Maps needs API key (you'll have to create one for the project being a maintainer).
If you're fine with all these, then I can work on the integration of that.

Sure. Thanks for the response.

@wsameer , Great work. I have seen the demo. Looks great. One question, Do you think we can embed the map in the demo page itself than opening it in a new tab? Is there a possibility?

@atapas Yeah, can be done. But it will add a lot of dependencies - leaflet . Also, there will be licensing issues, if that matters, since OpenStreetMap isn't MIT license, and Google Maps needs API key (you'll have to create one for the project being a maintainer).
If you're fine with all these, then I can work on the integration of that.

Sure. Thanks for the response.

Let me understand the licensing implications. We can take it up as a separate issue.

Hi @wsameer
Thanks a lot for taking the issue and making the app better. Please feel free to pick up more, contribute more. I wish you a great #Hactoberfest ahead. You will be added to the contribution list right after we merge this PR. Don't forget to share about your contribution publicly and provide your support with a star ⭐.
Great work 🔥 !!!!

@all-contributors please add @wsameer  for Code


Allow NativeEndian instead of NativeEndian {}

Fixes #220

Coverage remained the same at 93.856% when pulling 981c68929ba368baf78ba4369926703c39b97e62 on philipc:issue-220 into a2ef012a831aa4e285bba31a6340d0203ce6caf0 on gimli-rs:master.


Link to gcc_s and gcc if compiler is GCC version 5

When using cmake and GCC 5.4 to build tensorflow in Ubuntu 16.04,
the following error message would show up when loading
_pywrap_tensorflow_internal.so:
_pywrap_tensorflow_internal.so: undefined symbol: __cpu_model

The root cause is the same to this issue:
https://github.com/tensorflow/tensorflow/issues/9593
Signed-off-by: Yihong Wang<EMAIL_ADDRESS>

CI build go

Can one of the admins verify this patch?

CI build go

Can one of the admins verify this patch?

CI build go

OK to test

test this please

test this please

test this please

test this please

ok to test

ok to test

test this please

test this please

test this please


Facing css import issue in create react app in typescript

I am facing css import issue in create react app in typescript
Can u please let me know how I can resolve this issue as I have imported the css into my typescript file as below
import 'suneditor/dist/css/suneditor.min.css';

Which version are you using?

<EMAIL_ADDRESS>

I have added the path of the suneditor.min.css in CopyWebpackPlugin in Webpack
as node_modules/suneditor/dist/css/suneditor.min.css
And in
new HtmlWebpackIncludeAssetsPlugin({
assets: [
'css/suneditor.min.css'] })
And  use in  my typescript file as
import 'suneditor/dist/css/suneditor.min.css';
It works in my dev env but fails in Prod after build as shown in figure above

It seems that the web font is not loaded.
You must have a file loader.
{
	test: /\.(eot|svg|ttf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
	use: [{
		loader: "file-loader",
		options: {
			publicPath: '../',
			name: 'fonts/[hash].[ext]',
			limit: 5000,
			mimetype: 'application/font-woff'
		}
	}]
}

Or
The latest version uses "inline svg" rather than a web font.
Please update the editor to the latest version.

ok how do I use font import in CopyWebpackPlugin

Sorry, I don't know..😭
I recommend updating the version.

I set it like this in my webpack environment.
{
	test: /\.(eot|svg|ttf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
	use: [{
		loader: "file-loader",
		options: {
			publicPath: '../',
			name: 'fonts/[hash].[ext]',
			limit: 5000,
			mimetype: 'application/font-woff'
		}
	}]
}

Even if the web font is loaded with this setting, it is recommended to use the latest version.

Can u  let me know what is the improvement in switching to newer version

Please refer to the release history.
https://github.com/JiHong88/SunEditor/releases

I was experiencing similar issues, as I have
import 'suneditor/dist/css/suneditor.min.css';

...in my code as well.
Here's what I've learned: in development mode, webpack is just copying the contents of that file and putting it into a <style> element, without interacting with the source. In production mode, webpack will open the source, copy the contents into memory and attempt to minify it with Terser, however there must be a syntax error in 'suneditor/dist/css/suneditor.min.css', because it fails to parse and therefore fails to include it in the final production bundle. There is also evidence that 'suneditor/dist/css/suneditor.min.css' has a syntax error, because my text editor cannot apply css syntax highlighting to it. I will report back if I can find more information.

According to csslint.com: Expected RBRACE at line 1, col 30372.

I think both my CSS syntax highlighter, Terser and CSS Lint don't understand the 1turn value here:
@keyframes spinner{
  to {
    transform: rotate(1turn);
  }
}

When I change it to:
@keyframes spinner{
  to {
    transform: rotate(360deg);
  }
}

CSS Lint is happy.

@rwaldron Thank for your feedback!
I have checked this issue, and it seems that "cssnano" converts "360deg" to "1turn".
https://github.com/cssnano/cssnano/issues/823
This issue does not seem to be resolved. :(
I will fix this issue by changing "360deg" to "361deg".

The 2.30.0 version has been updated.
If this issue has not been resolved, please reopen this issue.
Thank you.


Lute/reification step4 testing ast

SymbolicTerm to Function Transformer.
Tests still needed to verify all working.

@jorgefandinno Okay, I've found some problems with how we are parsing strong negated and negated atoms when using reification. I just realized the issue of using "-" + name on the reify strong negation. Now, the expected program is an UnaryOperator, but the parsed program returns a function of name "-a" which I believe is incorrect.
I believe that I'll have to make some changes on top of the previous reification changes to do it correctly, and to test for equal programs instead of strings.

The first part of the tests that were failing due to the bug are now failing.
However, I'm having some issues with these ones:
https://github.com/jorgefandinno/eclingo/blob/facbdc1c6f5c31be6c53ac15c900d568230160d9/tests/test_reification.py#L215-L238
I'll check them later, but it may have something to do with the newly introduced transformer.
Pylint is also failing, but I do not see where the error is.

For the tests:
def test_parameters01(self): self.assert_equal_program( parse_program("a(1..n).", ["n"], "parametrized"), "#program parametrized(n). u(a(1..n)).", )
 def test_parameters02(self):
     self.assert_equal_program(
         parse_program("a(1..n).", ["n"], "base"), "#program base(n). u(a(1..n))."
     )

I'm getting another error, which the sorted program evaluates the Interval 1..n, as being Symbolic term of number 1 and another Symbolic term of a clingo Function with name 'n'.
However, the way the Transformer is set, is that the 2nd Symbolic term is being transformed to an AST.Function of name 'n' and therefore failing the test.

The idea I've had is to create another visit_Interval after this Transformer is being parsed and re-do the conversion of the interval components to Symbolic Terms,
would that work?


Android - Warn and Patch

Okay, I think this is ready for initial review.  +@michaelrgb for Android coverage.
This series does two things:

Add a warning when the selected Android application does not contain the RenderDoc layer
When clicked, attempt to pull, patch, and reinstall the target application

The warning is modeled after the desktop version.  Both are displayed on my systems (I haven't registered the desktop layer).

For now, the patch offer has a giant disclaimer and suggestion to use Android Studio to get required components.  We can change this as we figure out the right way to do it.  I need to list dependencies (and how to get them) on the wiki.  The patch sequence checks for dependencies first.  I may have missed some, needs to be tested on clean systems.

I'm not worried about the components that are available in AOSP (we can ship those with RenderDoc).  But apksigner uses java.  Need to figure out if shipping a JRE is the answer, or direct people to install it via Android Studio.
One big change is renaming librenderdoc.so to libVkLayer_GLES_RenderDoc.so.  This allows it to be used with Vulkan and GLES, without renaming (by hand) for local builds.
I haven't tested the series with a GLES app, but with the layer rename, the warning should fire.
I'm sure there is some polishing to be done, and I'm certainly flexible on the text of the popups, but things are functioning well on Windows (with Qt UI), Linux and macOS.
Let me know what you think!

I havent tested this, but:
I do believe that auto-patching APKs just isn't reliable enough to add as a feature inside the GUI. When this breaks on certain games, the user will blame RenderDoc instead of figuring out what they did wrong with their own setup. This will reflect very badly on the GUI, and breaks the RenderDoc philosophy of the GUI being "seamless".
Also, this auto-patching will only support Vulkan. For GLES there are no layers so you still need to make the app link to librenderdoc.so (by patching the app's binaries or recompiling). The user will auto-patch his GLES APK and then wonder why he cant capture. Again he will blame the GUI.
Also why change the name of librenderdoc.so inside the server APK? It is not functioning as a layer or hook for the server, it is just a supporting library.
"attempt to pull, patch, and reinstall"
You will have to uninstall the existing app because of different key signatures. A lot of popular games have large data files which they download on first use, which will then need to be re-downloaded.
Unless youre certain this will always work, youre going to get lots of support queries. I really think this is a bad idea to have in the GUI, and we should be trying to figure out a proper supported way of adding debug layers into Android.

I can certainly split this up into different pull requests: one to warn, one to patch.  I think the former should be valuable for either API.  Would you be willing to try that out for GLES?
The rename of the *.so was an attempt to unify what to search for when detecting if the layer is present.  Also trying to fix the local build problem.  I might have screwed it up, but the changes I applied were necessary for proper functionality.  I'll look closer at that.
Definitely this won't always work, and it only fixes one potential problem with the APK.  It can't fix the required permissions, for instance.
It would be nice to know if the patch effort helps people or just confuses them further.  Maybe we need to fire up some usability studies. :)  I put it together as a way to help people along, providing clear progress and log entries to show what's wrong with the APK.  I could go farther and print those messages in the progress bar.  Or perhaps we shift gears and just make this an analysis routine?  i.e. Click here to learn what else is wrong with your APK, but don't try to fix it?
FWIW, there will always be scenarios where RenderDoc can't debug an application on production devices, even if the layers are present.  That's how the operating system is designed, and I think developers prefer it that way.  If we shouldn't attempt to fix things unless we can fix everything, then we shouldn't do the patching.

How about instead of patching APKs, we push the layer into the data/data/package/lib folder? As you've said, there will always be scenarios where we cant capture on production devices, so lets just require/recommend this feature to be used on engineering devices, so that we are always allowed to push to the app's libraries. Does that sound Ok?
These days I never repackage anyone's APK, I just adb push the library on an engineering device. Its the most reliable to do it.
This way the GUI can rename librenderdoc.so to libVkLayer_GLES_RenderDoc.so when it does adb push, and you dont need to change the java/makefiles.
Yes I like the idea of warning if the layer is not present - that also becomes easier if you check the data/data/.../lib folder.
To try this out for GLES, wouldn't it also need to patch the app's binaries to link to the hook .so? I.e. the same thing that my libpatch.py script does.

To clarify, this series is only valuable to GLES in the warning phase.  GLES support can't be patched in since it must be linked against, not simply present in the APK.  I can make this clearer in the disclaimer (that it will only help Vulkan apps).  There is no happy quick fix for that path.
Yes, when running as root things are much easier, but I don't think very many developers have access to engineering builds.  This patch series does check the application's lib directory before warning (/data/data/<package>/lib is a symlink to where this checks: /data/app/<package>/lib/<abi>, which is readable on production devices).  It also checks /data/local/debug/vulkan, which is the official place (see Android Layer Discovery) to put vulkan layers you want to load on engineering devices.  So if you've already placed layers on the device, the warning doesn't even show up and you're good to go.  Although as I type this, I realize if you are loading a GLES app and you've placed vulkan layers on the system, the warning won't show up.  That's not going to be the common case though.
Part of the rename is to allow RenderDoc to inspect the APK before it knows which graphics API is going to be debugged.  If the file name and location are the same, easy win.

Btw, I like the idea of taking the simple route on rooted devices if that's what the user is on, worth some research and support.
Also, I'll spend some time trying to return the error messages when attempting to patch, so it is very clear what's going wrong, rather than just pointing to the log.  Maybe also make the buttons themselves say "Vulkan" and "OpenGL ES" so no one ever tries to patch their GLES app.

I think the auto-patching is definitely a good idea and should be merged. There can certainly be improvements but the concept itself shouldn't be rejected. Android is painful to work with so anything we can do to try and reduce that pain is a good thing.
From my understanding there are two places it falls down:

On GLES you have to include renderdoc at link time, so it is impossible to patch in after the fact. We can still detect and warn, but cannot fix. There's a chance slight false-negative here, if the library is present in the apk but not linked properly, but that's probably impossible to detect.
Changing the key the APK is signed with and reinstalling can have a variety of impacts - some will be entirely unaffected, others will redownload data, others will completely refuse to run or will break in unexpected ways when authentication/integrity checks fail.

Are there any other places where it can fail? Other than those inherent flaws it seems like basically just manipulating a zip.

Unless youre certain this will always work, youre going to get lots of support queries. I really think this is a bad idea to have in the GUI, and we should be trying to figure out a proper supported way of adding debug layers into Android.

This solution won't always work but it will save some tedious and error-prone manual intervention in some cases. When it fails it's no worse than doing nothing since the same steps still have to be taken. The process is entirely up-front that the patching is not perfect and that it will re-sign and reinstall the APK. Those developers that might be affected by it should understand the impact.
Also since this is Android, pragmatically we already have our baseline support that we can rely on. Even if a better solution came out tomorrow, we would still have to handle the current level of support for a long time. Maybe in 5 years time we can revisit this once the better solution becomes widespread, but we have to deal with the state of affairs today.
Plus if a new better solution did appear, it could be layered on top of these, just as we could in theory with a solution for rooted phones. We'd try each solution in descending order of preference, from most seamless to least, with this auto-patching being a last option before being forced to ask the user to fix it themselves.

When this breaks on certain games, the user will blame RenderDoc instead of figuring out what they did wrong with their own setup. This will reflect very badly on the GUI, and breaks the RenderDoc philosophy of the GUI being "seamless".

This assumes a willful ignorance on the part of the user, that after being informed of the process and that it might not work, they'd assume the worst. If someone just clicks through all the dialogs without reading them then they would be equally baffled when clicking through any warnings without patching their APK and seeing that the capture doesn't work. It's also entirely backwards - trying to get things working smoothly for some people is following the philosophy of being "seamless" as far as possible under the circumstances.
If it were entirely up to RenderDoc to define this process, then this all would be done entirely reliably and with at most one prompt for authorisation, exactly the same way as it does on desktop. Unfortunately we are building on top of a bad platform and we are hamstrung by the flaws of Android itself. Trying to mitigate those flaws where possible is still an improvement though. When given a choice between a moderately bad user experience and a strictly worse user experience, choosing the latter because the former isn't perfect is not really helping anyone.

How about instead of patching APKs, we push the layer into the data/data/package/lib folder? As you've said, there will always be scenarios where we cant capture on production devices, so lets just require/recommend this feature to be used on engineering devices, so that we are always allowed to push to the app's libraries. Does that sound Ok?

We cannot optimise for or require rooted phones which are not typically available among developers. It might make our lives easier to only consider this case but it doesn't reflect the common case that people are going to deal with.
The bottom line for me is that for some people this will make android in renderdoc much more closer to a "just work"ing process rather than having to go read documentation and run some brittle commands. For those people who can't use the auto-patching for one reason or another we're not making things worse, they will still get a friendly warning informing them that the capture won't work due to a missing library or permission, and they'll be directed to the documentation.

Alright, getting this back in my head.  Sorry for the long delay, and thanks for the thorough review.
I'll push an updated branch once I've incorporated all the changes.

Okay, new version uploaded.  I was able to address all the feedback.   status bar during initial inspection
Incorporate status flags into Android fixup flow, similar to desktop
Move script execution into OS specific code, removing ifdefs
Move dependency searching into OS specific code, removing ifdefs
Generating debug key in temp, stop using Android Studio's
Make custom layer path point to lib, and expect the ABI to be present.
Use relative path to working directory when calling "aapt add" to prevent runtime copy (this required moving build output to libs/lib after packing the APK - you'll probably need to update your build scripts)

After selecting an Android app, you'll see a scanning label like so (this scan will also check locations available to rooted devices):

Once complete, if the app is missing the RenderDoc library or required permissions, you'll see:

If the app is missing both library and permissions, you'll get the following dialogue, which doesn't progress:

If only the lib is missing, the dialogue will be different, offering to patch for Vulkan, with the previous caveats:

If patching succeeds, the warnings will disappear.  If patching fails, the warning will remain.
Thanks, let me know what you think.  Sorry you have to review it all again after a couple weeks.  :\
-C

One thing I didn't put on a specific line - I don't understand the need to put the libraries under libs/lib//libVkLayer_GLES_RenderDoc.so - why do you need the extra libs/ folder? Wouldn't it work just as well to leave the tree structure the same and set the working directory when invoking aapt to the parent build-android/ folder, so that the relative folder structure still contains the lib//... that you want?

This has to do with our current build process.  The "android" and "ant" steps expect the libs/ path.  That's why I put the copy after those steps.  Once we move to the latest SDK, we can move them directory to lib/ and skip libs.  I've found it too disruptive to try rolling forward while developing at the same time, so I haven't finished moving to the new build.

I think we should take a page from Unity's book actually - when building a Unity project it prompts you to browse to the android SDK root folder. We could do the same thing if we detect the tools aren't available, and locate most of them underneath there. We can cache this in the settings the same way as we do for adb's path, for use on future runs.

Ah, okay, that would work, sure.

The other one which may or may not be valid - if we only need the keytool to generate the debug key, could we just ship a default debug key in case keytool isn't present? If it's only used to just have some key, and it doesn't have to be generated on the same host that you're installing from, this seems like a feasible solution. We can put it next to adb.exe in the distributed build so it's always available if needed.

This is worth some experimentation.  I haven't actually used a debug key on anything other than the system it was created on.  If they can be moved about, then this would work fine.  I can't think of anything wrong with RenderDoc users all signing their APK with the same debug key.

This has to do with our current build process. The "android" and "ant" steps expect the libs/ path. That's why I put the copy after those steps. Once we move to the latest SDK, we can move them directory to lib/ and skip libs. I've found it too disruptive to try rolling forward while developing at the same time, so I haven't finished moving to the new build.

Gotcha, that's fine. It sounds like updating the build process will ease a lot of pain :smile:.

Okay, new branch pushed incorporating fixes for the silly mistakes and refactored initWarning to simplify it.

Hmm Im now getting this when starting qrenderdoc master branch:
Error   - Duplicate docstring 'Internal function for checking remote Android package for requirements
' found on method 'renderdoc.str.c_str' - are you missing a DOCUMENT()?
Fatal   - Found errors in python binding docstrings. Please fix!

That's my fault, looks like I need to sort out documentation for the rdctype.str class, it's currently inheriting some other docstrings which lead to a duplicate when I added a new member function.


Docs: TransferWise documentation

Resolves https://github.com/opencollective/opencollective/issues/3006

@kewitz Those are some nice screenshots and GIF! How do you grab them?

@contraexemplo native Mac OS screenshots and https://getkap.co/ for gifs. 😄


Do not always PXE boot Powered off Reserved Servers

Summary
If server OS is installed on disk, we don't want to always PXE boot powered off Reserved servers.
"PXE boot once" should only be performed for Reserved servers that were transitioned from Available to Reserved.
We could signal the need to PXE boot once via annotation or server .Status in the Available state.

Now about adding a transition condition for a netboot? Once thing we should also do is to a bootType field to the ServerBootConfiguration that will indicate to e.g. the boot-operator when to prepare a net boot. for the bootType=Disk we could transition the ServerBootConfiguration to a Ready state immediately and perform a PowerOn. That way we keep the Server <-> ServerBootConfiguration contract in tact.


[QUESTION] Chapter 9 Label propagation

I dont get these lines of the code
k=50
y_representative_digits = np.array([4, 8, 0, 6, 8, 3, ..., 7, 6, 2, 3, 1, 1])
y_train_propagated = np.empty(len(X_train), dtype=np.int32)

for i in range(k):
    y_train_propagated[kmeans.labels_==i] = y_representative_digits[i]

If for example the i of the for loop is 2. Then the indices of y_train_propagated[kmeans.labels_==i] (where kmeans.labels_==2 is true) will be set to 0 because y_representative_digits[2] is equivalent to 0, right?
So the indices of y_train_propagated where kmeans.labels_ is equal to 2 will be set to zero. The label is 2 but it is set to 0. Wouldn't that be wrong?

Hi @FatihMercan61 ,
Thanks for your question! There are two types of labels here: class labels, and cluster labels. An image's class label corresponds to the digit that this image represents: it's a number from 0 to 9. An image's cluster label is the ID of the cluster that the image belongs to. Since there are multiple ways of writing any digit, there will be multiple clusters for each digit.
After grouping the images into 50 clusters, and finding the most representative image of each cluster, we manually look at each of these 50 most representative images and we write down their class labels. This gives us the array y_representative_digits, which contains 50 class labels. For example, the first cluster (at index 0) corresponds to a digit 4, the second (at index 1) corresponds to an 8, etc.
Then we want to propagate these class labels to every image in their corresponding clusters. So y_train_propagated will be an array of class labels, with one class label per image in the training set.
So when we iterate over k, we are iterating over clusters, not classes.
Therefore kmeans.labels_==i finds all images in the ith cluster. For all the images in this cluster, we want to use the same class label as the representative image of that cluster: y_representative_digits[i].
Hope this helps!

Hi ageron,
Thanks you very much! Now I get it

Hi @FatihMercan61 , Thanks for your question! There are two types of labels here: class labels, and cluster labels. An image's class label corresponds to the digit that this image represents: it's a number from 0 to 9. An image's cluster label is the ID of the cluster that the image belongs to (in this case, a number from 0 to 49, since there are 50 clusters). Since there are multiple ways of writing any digit, there will be multiple clusters for each digit. After grouping the images into 50 clusters, and finding the most representative image of each cluster, we manually look at each of these 50 most representative images and we write down their class labels. This gives us the array y_representative_digits, which contains 50 class labels. For example, the first cluster (at index 0) corresponds to a digit 4, the second (at index 1) corresponds to an 8, etc. Then we want to propagate these class labels to every image in their corresponding clusters. So y_train_propagated will be an array of class labels, with one class label per image in the training set. So when we iterate over k, we are iterating over clusters, not classes. Therefore kmeans.labels_==i finds all images in the ith cluster. For all the images in this cluster, we want to use the same class label as the representative image of that cluster: y_representative_digits[i].
Hope this helps!
Thank you very very much

Hi @FatihMercan61 , Thanks for your question! There are two types of labels here: class labels, and cluster labels. An image's class label corresponds to the digit that this image represents: it's a number from 0 to 9. An image's cluster label is the ID of the cluster that the image belongs to (in this case, a number from 0 to 49, since there are 50 clusters). Since there are multiple ways of writing any digit, there will be multiple clusters for each digit. After grouping the images into 50 clusters, and finding the most representative image of each cluster, we manually look at each of these 50 most representative images and we write down their class labels. This gives us the array y_representative_digits, which contains 50 class labels. For example, the first cluster (at index 0) corresponds to a digit 4, the second (at index 1) corresponds to an 8, etc. Then we want to propagate these class labels to every image in their corresponding clusters. So y_train_propagated will be an array of class labels, with one class label per image in the training set. So when we iterate over k, we are iterating over clusters, not classes. Therefore kmeans.labels_==i finds all images in the ith cluster. For all the images in this cluster, we want to use the same class label as the representative image of that cluster: y_representative_digits[i].
Hope this helps!

awesome explanation, thank you a lot!


multipart form request with PUT

Is there a way to do a multi part form  request using the PUT method?  I cannot find a way in the docs and it does not seem to be making the proper request.

Sure. Just send a PUT request and use the multipart request option.
$client->put('/', [
    'multipart' => [
        [
            'name'     => 'foo',
            'contents' => 'data',
            'headers'  => ['X-Baz' => 'bar']
        ],
        [
            'name'     => 'baz',
            'contents' => fopen('/path/to/file', 'r')
        ],
        [
            'name'     => 'qux',
            'contents' => fopen('/path/to/file', 'r'),
            'filename' => 'custom_filename.txt'
        ],
    ]
]);

thank you. I think I may be using an older version, I am getting the following error.
No method can handle the multipart config key
also is there a way to dump the request body to be sure it is formatting properly?

Ah yes, that's an older version. For v5, you'll need to manually create a MultipartBody: https://github.com/guzzle/guzzle/blob/5.3/src/Post/MultipartBody.php

will this method still work with PUT requests?

Yes. Just use the body request option and pass in a MultipartBody stream.


python3Packages.sphinx: Add missing "packaging" dependency

Motivation for this change
Upstream sphinx has a dependency on "packaging", which is not duplicated
in the nix expression, causing build failures on staging.
Things done
Add dependency to fix this build

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Good catch but this was already fixed with https://github.com/NixOS/nixpkgs/commit/83fa5d201730b2424bc02ee31137ddf650e3263c and on the current tip sphinx builds fine.
Thanks for your PR anyway :)

Man you guys are fast here.

Man you guys are fast here.

sphinx is probably used somewhere core (maybe the manual?) so the breakage was noticed really fast.


Mouse not recognized using BackSID

Using a BackSID, the pots won't register. BackSID is one of the few SID replacements that emulates pots but others that do may have problems as well.  BackSID works with MouSTer just fine but not USBtoC64.

Hi, at the time I developed this device I had a C64 with an original SID that produces the timing signal for the POTS all the time, and I created the project around that. Then a user reported the issue with ARMSID and I discovered that those clones do not generate the signal unless there is some voltage applied to the pot. So I fixed the design but I still have few adaptors from the previous design that are compatible only with the original SID. This is why on the site where I sell them I ask specifically to say if the user wants to use with a clone SID in order to send a modified version that is compatible with it.
By the way, I tested it with ARMSID and SIDKick, not with BackSID (I do not have one) but I guess it will work also with it because I think the only problem is to enable the digital generation of the signal on the POT pins.
Said this, please contact me on the place where you bought the adapter and I will try to fix this issue for you.

Ah, I totally see now this option on the Tindy site that either didn't exist or I hadn't noticed back in September when I ordered!
https://www.tindie.com/products/burglar_ot/usbtoc64/
About half my systems are BackSID while the rest are authentic; does the revised board retain compatibility with authentic SIDs or do you essentially need a board for each scenario?
In any case I would love to acquire the revised one. Happy to do so however is most convenient.
Thank you!

Yes the other revision works with every system, but maybe you can modify your without order a new one. I will write you from Whatsapp if you don't mind, on the number provided on Tindie.

Just updating the issues log to echo my WhatsApp discussion for the greater community: adding a resistor gets it to recognize a mouse on the BackSID, and it does move, but it's unusably jumpy (whether a mouse is connected or not).  I've also let Evie know on her forum since this may be a firmware-solvable issue as much as a hardware one: https://forum.backbit.io/index.php?topic=1218.0

I will close here. I think the issue with BackSID is possibly due to the voltage expected buy the replacement SID or something else. I cannot test it in my lab because I do not have one and to do a full debug I need to see the signals with an oscilloscope. I had the possibility to test it with ARMSID and SIDKick, both work fine, but BackSID probably needs +5v as HIGH signal while the ESP32 board uses +3.3v.


mv neo/io/proxyobject to neo.core/proxyobject ?

@apdavison @JuliaSprenger
We have decided to move proxyobject to core.
The main issue I see in that test_proxyobject depend on neo.rawio because we need at least on rawio to test it.
from neo.rawio.examplerawio import ExampleRawIO
proxyobject do not have direct dependency on neo.rawio but the relative tests do have this dependency. And of course there is an implicit dependency on rawio because proxyobject is also layer between neo.io and neo.rawio. basefromrawio really depend on proxyobject.
I think it was the main reason why I put proxy into neo.io even it is not natural.
I am not sure to be so happy to have this kind of circular dependency even it is at test level.
What do you think ?
Do I move proxy to core or not ?

I tried this in a branch a few weeks ago, and I couldn't get it to work, there were always circular imports.
I'm sure it's possible, but I think it will need a careful mapping of dependencies.

Do you still think we need to move proxy in core so ?
The main issue is that conceptually proxy depend on rawio even if there is no directy import.
In short the logical dep cycle is core<rawio<proxyobject<io trying to move proxy to core will lead to problem soon or later.
No ?

I think the motivation is that we wish to treat real objects and proxy objects the same wherever possible, as in #652.
It might be sufficient to just move BaseProxy to core.

OK I propose:

in neo.core: BaseProxy + a function si_proxy(...) that would be done with isinstance(..., BaseProxy).
This would avoid hasattr(self.spiketrains[st_id], '_rawio') like wa can have in seg.time_slice
in neo.io: AnalogSignalProxy/EventProxy/SpikeTrainProxy/EpoxhProxy

So we limit the risk and the work on this.
A clever solution would be to seperate AnalogSignalProxy in two parts:

one declarative that would be neo.core
one that do the implement the loading based on rawio and would be in neo.io
Maybe for next version ?

@samuelgarcia,
this issue has also been open for 5 years and we have moved across 4 versions. Is this something we just move to future or close?


All fields editable/searchable

Made all fields editable/searchable
Allowed search to ignore case
Added javadoc
Made tests for new methods

Codecov Report

Merging #46 into master will decrease coverage by 2.13%.
The diff coverage is 81.35%.

@@             Coverage Diff              @@
##             master      #46      +/-   ##
============================================
- Coverage     84.53%   82.39%   -2.14%
- Complexity      206      210       +4
============================================
  Files            22       22
  Lines           763      801      +38
  Branches         44       48       +4
============================================
+ Hits            645      660      +15
- Misses          100      122      +22
- Partials         18       19       +1

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/bookmarks/BookBookmark.java
90.9% <ø> (ø)
9 <0> (ø)
:arrow_down:

src/main/java/bookmarks/BlogBookmark.java
96% <ø> (ø)
9 <0> (ø)
:arrow_down:

...rc/main/java/app/domain/command/SearchCommand.java
86.36% <25%> (-13.64%)
6 <0> (ø)

src/main/java/app/ui/TextUI.java
89.86% <75%> (-1.88%)
56 <5> (+1)

src/main/java/bookmarks/Bookmark.java
84.09% <83.33%> (-0.97%)
22 <4> (ø)

src/main/java/app/dao/BookMarkDAO.java
73.33% <93.1%> (-6.49%)
26 <2> (+3)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8229806...c07132a. Read the comment docs.


Install R binding in ArcGIS Pro under R version 4.3.1 error?

I have version 4.3.2 of R installed and used install.packages("arcgisbinding", repos="https://r.esri.com", type="win.binary")
library(arcgisbinding) to download this package. Using arc.check_product(), I see that I'm "Signed in" with version 8.2 via our organizational portal. I can return an object using d <- arc.open("https://services.arcgis.com/QVENGdaPbd4LUkLV/arcgis/rest/services/NWRS_Regional_Invasive_Survey/FeatureServer"), but when I try to run d <- arc.select(arc.open("https://services.arcgis.com/QVENGdaPbd4LUkLV/arcgis/rest/services/NWRS_Regional_Invasive_Survey/FeatureServer")) it returns "Error in (function (classes, fdef, mtable)  :   unable to find an inherited method for function ‘arc.select’ for signature ‘"arc.workspace_impl"’. I went back and downloaded the r-bridge-install-master from here and then clicked on "Install R bindings" using the R Integration.pyt / Install R bindings in ArcGIS Pro <IP_ADDRESS>833 and am getting this error message. Seems like it's version control thing and it's looking for version 4.3.1 of R, but I have version 4.3.2? How can I update the version of R it is installing to? Thanks!
"Install R bindings
Parameters
Overwrite Existing Installation?     false
Selected R Version (Set As Default)     4.3.1
Messages
Start Time: Thursday, February 22, 2024 6:24:53 PM
Rscript.exe C:\Users\rkatz\AppData\Local\Temp\1\ArcGISProTemp23012\tmpv03ulztg\install.R
Warning in install.packages("arcgisbinding", repos = "https://r.esri.com",  :
'lib = "C:/Program Files/R/R-4.3.1/library"' is not writable
Error in install.packages("arcgisbinding", repos = "https://r.esri.com",  :
unable to install packages
Execution halted
R command returned non-zero exit status.
Failed to install bridge with install.packages, try manualy running the command {cmd} from an R session or RStudio.
Failed to execute (InstallBindings).
Failed at Thursday, February 22, 2024 6:24:54 PM (Elapsed Time: 0.74 seconds)"
I then tried to change "4.3.1" to "4.3.2", which I do have installed and got the same error....
"Install R bindings
Parameters
Overwrite Existing Installation?     false
Selected R Version (Set As Default)     4.3.2
Messages
Start Time: Thursday, February 22, 2024 6:24:17 PM
Updating default R to 4.3.2
Traceback (most recent call last):
File "", line 232, in execute
File "", line 244, in set_default_r
KeyError: '4.3.2'
Failed to execute (InstallBindings).
Failed at Thursday, February 22, 2024 6:24:17 PM (Elapsed Time: 0.01 seconds)"

Hey @rakatz42, thanks for the heads up.
It looks like you're trying to select from a feature server. But a server is a collection of one or more feature layers. So the act of arc.select() on a server won't work. For example if you open https://services.arcgis.com/QVENGdaPbd4LUkLV/ArcGIS/rest/services/2016_Release_Locations_WFL1/FeatureServer in the browser there are two listed layers: 1) Site_RKM and 2) 2016_Release_Locations. Click one of those to get their url (typically ending in /0 or /1).
For example
furl <- "https://services.arcgis.com/QVENGdaPbd4LUkLV/arcgis/rest/services/NWRS_Regional_Invasive_Survey/FeatureServer/0"

arc.select(arc.open(furl))


sys.path is wrong when using coverage as a module and python version >= 3.7

Describe the bug
When the tested program is run from the coverage module (-m coverage run), the sys.path is wrong.
To Reproduce
Create the following small python script:
#!/usr/bin/env python3

import sys
print(sys.path)

Assuming that the script is in "foo/foo-bin.py" file.
use coverage version >= 5.0
python version >= 3.7

The first entry in sys.path is the absolute path of the current working directory from where you typed the command.
Alternatively repro.zip contains a tox test case (using python 3.5 to 3.8) .
Expected behavior
The first entry should be the absolute path of the directory where the script is
Additional context
Works as expected with python version < 3.7 or coverage < 5.0

Thanks. Considering how much code I have to test that these things are the same, I'm chagrined to see that you are right.  When running a file not in the current directory, "python" and "python -m coverage run" set sys.path[0] differently.

@d-fence Can you help me understand how the sys.path change affects your program? It looks harder and harder to guarantee that the path will be identical both with and without coverage.

I'm trying to decide if this is worth pursuing.  Do you have any more information?

Anecdotally, having the wrong sys.path entry leads to one program having a module not found exception. This would be very good to have fixed for me at least.

If someone can provide more information, feel free to re-open this.


Add Project sections

Add sections to projects. This helps with organizing a large or long running project better. The UI will eventually support moving sections around and dragging tasks between sections.

Codecov Report

Merging #6 (db3c335) into master (7f71b0c) will increase coverage by 1.81%.
The diff coverage is 99.41%.

@@             Coverage Diff              @@
##             master       #6      +/-   ##
============================================
+ Coverage     86.76%   88.57%   +1.81%
- Complexity      258      293      +35
============================================
  Files            26       29       +3
  Lines          1035     1199     +164
============================================
+ Hits            898     1062     +164
  Misses          137      137

Impacted Files
Coverage Δ
Complexity Δ

src/Model/Entity/Project.php
100.00% <ø> (ø)
2.00 <0.00> (ø)

src/Model/Entity/Task.php
0.00% <ø> (ø)
2.00 <0.00> (ø)

src/Controller/ProjectSectionsController.php
98.57% <98.57%> (ø)
12.00 <12.00> (?)

src/Controller/ProjectsController.php
90.00% <100.00%> (ø)
17.00 <1.00> (ø)

src/Controller/TasksController.php
75.00% <100.00%> (+2.47%)
23.00 <0.00> (+1.00)

src/Model/Behavior/SluggableBehavior.php
90.90% <100.00%> (ø)
12.00 <0.00> (ø)

src/Model/Entity/ProjectSection.php
100.00% <100.00%> (ø)
2.00 <2.00> (?)

src/Model/Table/ProjectSectionsTable.php
100.00% <100.00%> (ø)
10.00 <10.00> (?)

src/Model/Table/TasksTable.php
91.27% <100.00%> (+1.41%)
42.00 <0.00> (+10.00)

... and 2 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7f71b0c...db3c335. Read the comment docs.


Update the versions of a few tools

Update trivy version to v0.56.2
Update jnorwood/helm-docs image tag to v1.14.2
Update controller-gen version in codegen Dockerfile to v0.16.3

/skip-all