[SPARK-29453][WEBUI] Improve tooltips information for SQL tab.

What changes were proposed in this pull request?
Adding tooltip to SQL tab for better usability.
Why are the changes needed?
There are a few common points of confusion in the UI that could be clarified with tooltips. We
should add tooltips to explain.
Does this PR introduce any user-facing change?
yes.

How was this patch tested?
Manual test.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@dongjoon-hyun , @shahidki31 , @srowen (All the comments given in this PR #26216 i have fixed and raised new PR).

Jenkins, test this please

I don't think this adds enough to justify. There just isn't much to explain about these.
(PS normally you push more commits to your previous branch rather than make a new one and PR, so as not to fork the review)
Thank you @srowen , from next time onward i will take care of it.

If we can't come up with meaningful tooltips, why add them? I don't know if it is necessary here.

If we can't come up with meaningful tooltips, why add them? I don't know if it is necessary here.

ok then i will remove it but i shaw in Executors page they are displaying tooltips as header name,please check this image

Yep I think those tooltips are not useful and should be removed.

Yep I think those tooltips are not useful and should be removed.

ok, i will remove the tooltips.

@dongjoon-hyun ,@srowen, I have fixed all the comments please check it. I think now every think is ok.

@shahidki31 and @srowen now I think fixed is ok?

@srowen, if headerTooltip is empty then no tooltips popup will display.

To be clear, I would not merge this.

Ok then I need add check point, if header is empty then no need to add tooltips, then it's ok?

https://github.com/apache/spark/pull/26259#issuecomment-546943823
That's OK @srowen, you just help me to correct the code I will do it.

@srowen , so this issue not require to fix ? , (if yes then i will commit in jira not require to fix, so that reporter will cancel that jira)

As I say here and elsewhere, I don't think most of these columns have anything meaningful to say in a tooltop. Duration, maybe, if it's not clear what the end and start times are. But no I do not think we need most of what's being proposed here.

ok then for Duration i will add the tooltip for other no need to add that is ok @srowen ?

As long as it's not saying "the time taken to X", maybe so. You'd have to figure out how to correctly describe the start and end time it's measuring.

ok i will check this point (how to correctly describe the start and end time it's measuring.)

@srowen , this is how we are calculating duration
val duration = executionUIData.completionTime.map(_.getTime())
.getOrElse(currentTime) - submissionTime
and i referred this PR [SPARK-29019][WebUI] Improve tooltip JDBC/ODBC Server tab #25723
Tooltips  for "Duration": "Difference between sql query execution finish time and submission time".
If this suggestion ok then i will submit PR for this

@srowen , please review this PR also if both is ok then i will start working on other issue.
https://github.com/apache/spark/pull/26263

I don't think that's quite accurate. It's either the time until the finish time, or the current time if still executing. How about more like "Time from query submission to completion (or if still executing, time since submission)". You/we might also review other similar tooltips about duration to see if we can make the wording more standard, but something like that.

https://github.com/apache/spark/pull/26259#issuecomment-552223119 @srowen , sure i will check other places also.

@srowen, I checked the code and found Total 5 pages of Spark showing Duration field inside table , Please check all the screenshot :

Job page :

Stage page :

SQL page :

JDBC/ODBC Server :

Master Spark UI :

Note :  Active Driver and Completed Driver under master spark ui page also  "Duration field is there."

@shahidki31 , I think based on feature "Duration" field tooltips will change.
I will form tooltips (Only for "Duration" field) for above mention screenshot.


Quieter webpack output

:eyeglasses: @keybase/react-hackers
This prints a summary of the chunks instead of listing every (2000+) file after (re)builds. My webpack console scrollback got up to GBs of memory from this verbose output!

:+1:


update code style for task type

Fixes code style for task type
Description

add TYPE property in each task
use this property in annotation

Fixed the bug ...
Renamed the class ...
Added a forbidden-apis entry ...
Release note
improve the code style of task type, to be consistent for each sub task

Key changed/added classes in this PR

AppenderatorDriverRealtimeIndexTask.java
ArchiveTask.java
CompactionTask.java
HadoopIndexTask.java
IndexTask.java
MoveTask.java
NoopTask.java
RealtimeIndexTask.java
RestoreTask.java
Task.java

This PR has:

[x] been self-reviewed.
[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)
[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

The failed check is cause by "Rate limit reached"

Thanks for the contribution!


Helm chart for JobSet

What would you like to be added:
Add a helm chart for the JobSet installation.
Why is this needed:
Customers have expressed a preference for helm vs kubectl applying a github URL.  Example chart from Kueue: https://github.com/kubernetes-sigs/kueue/blob/1b7d3f3f71d3c49b5b02ec0766abe4c3df7cfdfd/charts/kueue/README.md
This enhancement requires the following artifacts:

[ ] Design doc
[ ] API change
[x] Docs update

The artifacts should be linked in subsequent comments.

/assign @imreddy13

See LWS example here: https://github.com/kubernetes-sigs/lws/pull/266


Eclipse IDE - Plugin execution not covered by lifecycle configuration: io.protostuff:protostuff-maven-plugin:1.3.5:compile (execution: generate-sources, phase: generate-sources)

Could you add into README or wiki how to configure Eclipse to overcome issues like

Plugin execution not covered by lifecycle configuration: io.protostuff:protostuff-maven-plugin:1.3.5:compile (execution: generate-sources, phase: generate-sources)

ref SO

@dyu are you using Eclipse?

Yea I use eclipse but I don't use it's maven integration at all.
I just do mvn eclipse:eclipse and import the project that way.

Also when I compile my protos, I simply use a script that executes java -jar

Well, that can't be recommended solution for all.
My goal is that new developer can just check out project in IDE and start working on it, without any additional steps needed.
Result of this issue should be wiki page. Possibly with @dyu solution as well.

Added https://github.com/protostuff/protostuff#developing-with-eclipse


Proxy adapter interface

This PR moves the sidecar's proxy management behind an abstract interface so that different implementations (NGINX, Envoy) can be specified dynamically.
This is a work in progress, but comments are welcome.

This should be ready to be merged once it is reviewed.

@ijsnellf @GregHanson ^^^.


trying out Preview 8, getting error

i'm using Npgsql.EntityFrameworkCore.PostgreSQL 3.0 Preview 7.
i dont see a Preview 8 for it yet, but i thought i'd come here first for tips / guidance
i'm using Visual Studio 2019 16.3 Preview 2 (latest available preview)
my code was working with EF Core 3.0 Preview 7. do i just need to wait for Preview 8 of Npgsql.EntityFrameworkCore.PostgreSQL 3.0 or could it be something else?
error message is:
Message = "Could not load type 'Microsoft.EntityFrameworkCore.Query.Pipeline.IQueryableMethodTranslatingExpressionVisitorFactory' from assembly 'Microsoft.EntityFrameworkCore, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'."
i get message while creating a DbContext on my own (i know i can inject a registered DbContext, it's just that i'm not using that in the specific scenario where i'm getting the error message):
public static class DbContextCreator
    {
        public static AppDbContext CreateNew()
        {
            DbContextOptions opts =
                new DbContextOptionsBuilder()
                     .UseNpgsql(Configuration.GetConnectionString("DevPgConnect"))
                     .Options;
            return new AppDbContext(opts);
        }

        private static readonly IConfigurationRoot Configuration = LoadConfiguration();

        private static IConfigurationRoot LoadConfiguration()
        {
            var builder = new ConfigurationBuilder();
            builder
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: false);

            return builder.Build();
        }

    }

any idea what i can do to get further / debug further?
thanks for helping

closing this for now as it looks like i have to wait for Preview 8 from the Npgsql team.
https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/issues/980


Initializing with None entries in IAMC_IDX columns

Problem description
As (again) identified by @fonfon, initialising an IamDataFrame with None/nan in the IAMC_IDX columns (model, scenario, region, variable, unit) will silently drop these columns. This is necessary because pandas has issues with None, but it can lead to unexpected behaviour.
Suggested solution
Separate this section of the code https://github.com/IAMconsortium/pyam/blob/7d46b2c1c3a46d799c1b09dbabc9dbe88e80ee07/pyam/utils.py#L250
into two parts:

remove all nan in the value column
raise an error if nan are present in the remaining dataframe

Alternative
Add a keyword argument to use a default value, maybe an empty string ('')?
Test
The test could be based on this exmaple:
https://github.com/IAMconsortium/pyam/blob/7d46b2c1c3a46d799c1b09dbabc9dbe88e80ee07/tests/test_core.py#L43

@gidden @znicholls any comments?

Suggested options look good. Id always drop nan in the value column. I’d be tempted to make the default behaviour for nan in other columns an error, with a keyword argument available that the user can use to specify the fill value for missing values (rather than an empty string which could do odd stuff).

@fonfon implemented the "raise error if nan (other than value col)" for now - let's re-open this issue if we need the more sophisticated "replace nan in non-value col via kwarg"...


CCL rendering error

Hello
i have this error spammed in console (i can disable it, but its still error)
https://pastebin.com/kX3GxgDy
codechickenlib + nuclearcraft

Have referred this issue to the CCL devs - hopefully will be simple to prevent :)

Well, unfortunately I didn't learn why the error was being thrown - the best thing to do would just be to disable it :)


name 'coordinator' is not defined

Latest few versions stopped working for me. I tried to change passoword via service call and got an error "name 'coordinator' is not defined"
I also added managed_aps which I did not have before. But it doesn't matter it stopped working. I did not change username or password and I am using local account on UDM-Pro with site-admin role.
- name: Home
  host: !secret unifi_wifi_url
  username: !secret unifi_wifi_username
  password: !secret unifi_wifi_password
  site: default
  scan_interval: 300
  unifi_os: true
  verify_ssl: false
  managed_aps:
    - name: U6-LR - Downstairs
      mac: !secret unifi_wifi_mac1
    - name: U6-LR - Upstairs
      mac: !secret unifi_wifi_mac2
  monitored_ssids:
    - name: !secret unifi_wifi_monitored_ssids_name1

Error messsage:
This error originated from a custom integration.

Logger: homeassistant.helpers.script.websocket_api_script
Source: custom_components/unifi_wifi/__init__.py:162
Integration: Unifi Wifi (documentation, issues)
First occurred: 08:11:18 (3 occurrences)
Last logged: 08:13:02

websocket_api script: Error executing script. Unexpected error for call_service at pos 1: name 'coordinator' is not defined
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 468, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 703, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 665, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1974, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2011, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/unifi_wifi/__init__.py", line 223, in random_password_service
    ind = _coordinator_index(coordinator)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/unifi_wifi/__init__.py", line 162, in _coordinator_index
    raise ValueError(f"The coordinator {coordinator} is not configured in YAML")
                                        ^^^^^^^^^^^
NameError: name 'coordinator' is not defined

A couple things:

First: a code error on my part in the ValueError line. It should be: raise ValueError(f"The coordinator {name} is not configured in YAML"). I'll push a fix for that shortly.
Second: encountering that specific error means something is weird about the service call you're making.

Please paste the YAML block where you call unifi_wifi.random_password. There may be a glitch having to do with the name key.

Here it is:
service: unifi_wifi.random_password
data:
  name: default
  method: char
  char_count: 15
  ssid: Instant-WiFi

Change the name key to match your YAML config:
service: unifi_wifi.random_password
data:
  name: Home
  method: char
  char_count: 15
  ssid: Instant-WiFi

That helped, it works. I also have a problem with disable wifi, here's the call and error.
service: unifi_wifi.enable_wlan
data:
  name: Home
  ssid: Instant-WiFi
  enabled: false

This error originated from a custom integration.

Logger: homeassistant.helpers.script.websocket_api_script
Source: custom_components/unifi_wifi/__init__.py:170
Integration: Unifi Wifi (documentation, issues)
First occurred: 20:26:31 (4 occurrences)
Last logged: 21:45:56

websocket_api script: Error executing script. Unexpected error for call_service at pos 1: list indices must be integers or slices, not str
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 468, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 703, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 665, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1974, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2011, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/unifi_wifi/__init__.py", line 243, in enable_wlan_service
    if _validate_ssid(coordinator, ssid):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/unifi_wifi/__init__.py", line 170, in _validate_ssid
    hass.add_job(coordinators[ind].async_request_refresh())
                 ~~~~~~~~~~~~^^^^^
TypeError: list indices must be integers or slices, not str

ahh typos.; my nemesis. I'll push a new version.


🐞 - TuiDocCodeComponent doesn't work in Angular 16

Playground Link
https://stackblitz.com/edit/stackblitz-starters-nu8bci?file=src%2Fmain.ts
Description
TuiDocCodeComponent doesn't work in Angular 16 because of ngx-highlightjs dependency that doesn't support Ivy.
Angular version
16.x.x
Taiga UI version
3.30.0
Which browsers have you used?

[X] Chrome
[X] Firefox
[X] Safari
[X] Edge

Which operating systems have you used?

[X] macOS
[ ] Windows
[ ] Linux
[ ] iOS
[ ] Android

It works
https://stackblitz.com/edit/stackblitz-starters-38gjxm

@splincode only in your stackblitz example because it uses old angular compiler.
How to reproduce based on your stackblitz example:

Download your project from the stackblitz
Update @angular-devkit/build-angular, @angular/cli, @angular/compiler-cli in the package.json to 16.x.x version
Update typescript package in the package.json to 5.0.x version
npm i --force
replace import 'zone.js/dist/zone'; with import 'zone.js'; in main.ts file;
run app ng s

How to check that the newest version fixes it:

update the version of the ngx-highlightjs to the latest one in the package.json (9.0.0)
npm i --force
if you try to run app you won't see any errors but the code component will be broken because it still uses the old version of the highlighter
but if you remove node_modules/@taiga-ui/addon-doc/node_modules/ngx-highlightjs folder and re-run the app again you will see that now it works

Why it can't work:
4.x.x version of the highlighter was compiled with ivy: false which mean it used ViewEngine compiler that was removed in the Angular 16. But the latest version uses compatible mode that allows it to work with the Angular 16. I hope that will be enought.

@skoropadas thank you for research, we need to investigate this issue

Link: https://github.com/Tinkoff/taiga-ui/issues/3546


Fix: Collect coverage only on PHP5.6

This PR

[x] collects and reports coverage only on PHP5.6
[x] removes coverage configuration from phpunit.xml.dist
[x] removes the configuration for xdebug when we don't need it

@reinink
Not entirely sure that 52970ea is needed, but without it, phpunit warns (see https://travis-ci.org/thephpleague/plates/jobs/96274441#L185-L186):
PHPUnit 4.8.20 by Sebastian Bergmann and contributors.
Warning:	The Xdebug extension is not loaded
		No code coverage will be generated.

Thanks for this @localheinz, but I actually removed the HHVM tests all together, and have simplified the Travis config. I'm not too worried about it doing code coverage on all versions, since it runs super fast as it is. I very much appreciate your help either way! Thanks!


first time runserver failed.

Describe the bug
A clear and concise description of what the bug is.
according the git version of start labelstudio
git clone, cd ,pip  steps successed.
but after runing
label-studio/manager.py runserver

it throwns:
django.db.utils.OperationalError: no such table: organization

my current env: py37,macosx
To Reproduce
Steps to reproduce the behavior:

Go to 'https://labelstud.io/'
Click on '.git'
Scroll down to 'https://labelstud.io/'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. iOS]
Label Studio Version [maybe git latest version]

Additional context
Add any other context about the problem here. dose default DB used sqlite?
maybe it needs addtion database setup  step before runserver?

sorry,  the docker-compose way make it works.


Additional mounts can be set in cloud config

#741

Switch the to standard mount field.  Also you also support swap.


DocumenterCitations 1.3.0 is a breaking change?

Just saw on CI that the Pages= argument might have been changed from absolute to relative files? See the error message on CI at
https://github.com/JuliaManifolds/Manopt.jl/actions/runs/6717763433/job/18256227165?pr=294#step:9:1220
┌ Error: Invalid "functions/gradients.md" in Pages attribute of @bibliography block on page src/functions/gradients.md: No such file "src/functions/functions/gradients.md".
└ @ DocumenterCitations ~/.julia/packages/DocumenterCitations/HU6z2/src/expand_bibliography.jl:279

especially the message which file was not found indicated, that removing functions/ should fix it (will try) – which is of course not so much a problem, but a breaking change in a non-breaking update.

No, that’s fixing a bug. The intent was always for it to be consistent.

Although I agree that this update is about as breaking as one might still get away with. I don't think anything that breaking will be in any future 1.x release.
I'm also open to second opinions, and if there's a strong consensus that this is too breaking, I can revert the release and release it as 2.0.
Incidentally, for src/functions/gradients.md: you should now be able to use @__FILE__

Could fall back to the old behavior perhaps?

Not easily. At least, I'd also have to remove the support for @__FILE__, disable a lot of the test suite, and adapt the documentation (which extensively uses the new Pages). And we'd still have to release 2.0, right?

Of course this could be considered a bug, if you say that the intended behaviour was to do the same as Documenter does – then I just maybe missed an entry in the changelog about that.
It is also not hard to fix for sure :)

Hm, there seem also quite some (probably only breaking in the same way above) breaking changes for the bib file. & has to be escaped – and something with \ as well?

The "intended" behavior wasn't documented, which makes this a tricky case. But the old behavior definitely wasn't intentional.
I was on the fence on releasing this as 2.0 anyway, even more so because the "internals" broke so significantly, and we're only getting away with that because we've been defining the "SemVer-surface" of this package to be extremely small.
To be honest, I feel like tagging a 1.0 release when the project moved to the JuliaDocs was a bit pre-mature since I wasn't quite sure that everything was fully worked out yet. We're getting to that point, though: The 1.3 release fixes all major issues, in my mind. I'd consider it a "release candidate" for declaring all of the documented "internal" functions "stable", which probably would have been a better 1.0. Alas.
 Or, we tag is as 2.0, and embrace the "Breaking releases aren't a big deal" idea that some SemVer proponents have advocated for. It might be for the best: I'd expect to stay on 2.x for a good long while even in that case, but if something "breaking" ever comes up again in the future, the mental barrier for going to 3.x would be much smaller.

And that is also fine with me then - I just still have to fix my library now 🧐

& has to be escaped – and something with \ as well

Yes, I think so… the same escaping rules as in LaTeX. In the previous version, an unescaped & would work with DocumenterCitations, but it wouldn't have been valid tex (that is, if you use the same .bib file with latex/bibtex, it should have errored). If there's a discrepancy between LaTeX escaped characters and DocumenterCitations, that would be a (new) bug.
The details of how exactly the strings in the .bib files are processed may not ever be fully "stable". The general guiding principle is for it to emulate LaTeX as closely as possible, at least for some supported subset of LaTeX. So yes, changes here should be considered in the "bugfix" category (even if they "break" an existing .bib file). Although again: things should stabilize over time.

Unsupported command: \textendash

I have never seen \textendash before. I can easily add support for it, but shouldn't that just be -- in the .bib file? In the previous version of DocumenterCitations, that \textendash would probably just have shown up in the rendered output, which probably isn't what you wanted ;-)
In general, I've only added support for a tiny subset of tex commands outside of math mode (really just \url, \href, \textit, \texttt, I think), with the assumption that people will let me know if they have other commands that occur "in the wild". They're very easy to add, and any new command would be considered a "bugfix".
So, let me know if you want support for \textendash (or any other command), or if you'd rather rewrite that as the standard --.

ERROR: LoadError: makedocs encountered an error

Is that in the same run as the Error: Unsupported command: \textendash?
If so, that's the problem. If ERROR: LoadError: makedocs encountered an error is the only error message, that would be something for me to look into.
I agree it's not great that Documenter shows a Stacktrace when it fails in strict mode. It makes it look like an internal error. That's what you're concerned about, right?
Unfortunately, I think that's just how it is in Julia. It would be great if there was an error(…; stacktrace=false) option. In any case, that's probably more something to discuss within Documenter, although I'm also open to any creative ideas on how to improve the UX here.

I think I am slowly getting there. I am a bit surprised setting DOI =  to a valid URL leads to
┌ Warning: Could not link ["https://doi.org/10.1017/9781009166164"] in "published in" information for entry Boumal:2023. Add a Note field that links to the URL(s).

I am a bit surprised setting DOI =  to a valid URL leads to [Error]

That's always been the case… The DOI field should contain a DOI (starting with 10.), not a URL ;-)
It's a common mistake, though. Maybe I'll detect it in some future version, and correct it automatically.
Maybe you didn't get an error before because we "accidentally" fixed #58 in this release. But you would have had broken links before. Moreover: putting a URL in the DOI field shouldn't work in LaTeX, either.

It would be great if the URL can be different from the DOI

Absolutely, and this has been supported since 1.0. There's quite a few examples in the bibliography for entries that have both a URL and a DOI. For articles, the URL always gets linked via the title, and the DOI always via the "published in" information. For non-articles, things are a bit less regular: Either the DOI or the URL get linked via the title, and if there are more URLs to link, they'll be linked via the booktitle. If there's both a DOI and a URL but not both a title and a booktitle, you'll get an error. In that case, the correct thing to do is to put the URL in the note field (preferably with \url/\href).

Sorry I was not precise enough, I used a valid DOI but an URL pointing to a book page, that lead to a warning and that warning makes documenter fail.

...or to be precise this
https://github.com/JuliaManifolds/Manopt.jl/blob/f36115fd34c7b2f5345bc5b22681e3c58227bd03/docs/src/references.bib#L198-L209
should work but putting the URL from the note into an URL= field does not work and conflicts with DOI. I hope for now my ops work again (yay!) and I can write an issue about this more precisely later.

Ah, yes, I think for a book you're running exactly into this situation where there is only one title field to link from (no separate title and booktitle). In the previous version of DocumenterCitations, this might have worked, since I was linking the URL to the title and the DOI from e.g. the publisher. That didn't really work consistently across all the different types of entries. So, in order not to lose my mind, I made it a bit more restrictive. And yes, putting the URL in a note like you have right now is the correct approach for this (I think you're missing \href there, but that's just a detail)

Ah, another breaking change! Formerly the BibTeX fields Markdown rendered, that is why I used a Markdown link [text}(url) but then now they need to be latex?

Yes, the .bib file should be standard latex now (as one would expect). I think before, it was actually allowed to be html (despite me saying at some point that it was markdown). But that was very much relying on undocumented internals (and I think I was pretty upfront at the time that wasn’t a “feature” to rely on in the long term).
But yeah, this release is about as full of breaking internals as it gets, which is kinda why I collected it all in one pretty big release. Hopefully, you won’t have to go through any of this again until an actual 2.0 release.

Wait, markdown links still work? I’m not sure they should… or if they do, it’s definitely exploiting internal behavior. Going forward, having markdown in the .bib file is definitely not supported / recommended. Instead, I’ll add support for any reasonable latex commands anyone might request.

The markdown links indeed still work, but be warned: that's absolutely exploiting a bug (https://github.com/JuliaDocs/DocumenterCitations.jl/issues/60)
I would recommend using the eprint field for preprint information.

https://github.com/JuliaDocs/DocumenterCitations.jl/issues/59#issuecomment-1789132786:

Could we fall back to the old behavior perhaps?

Actually, maybe we can: for any name in Pages that can't be found as a file relative to the folder which contains the file containing the @bibliography block, we could check if it exists relative to the src dir (which was the effective pre-1.3 behavior). I yes, we can @warn that Pages should be updated. That should be relatively safe, and would probably ease the transition a lot.
Let me think about that a bit more…

So to summarise – no it is not breaking in the sense that the changes are bugfixes, since the inention was from the beginning to be closer to Documenter.jl anyways.
For future releases with bug fixes one could write in the change log something like: That was the old version that is wrong, the better way to write it would be this.

That's right. The release notes for 1.3 should have had better "upgrade instructions". I've now added these in NEWS.md (scroll down to the bottom of the 1.3 section).
#61 also adds a fallback so that the pre-1.3 Pages doesn't break quite as badly.

https://github.com/JuliaDocs/DocumenterCitations.jl/issues/59#issuecomment-1789525803:

For non-articles, things are a bit less regular: Either the DOI or the URL get linked via the title, and if there are more URLs to link, they'll be linked via the booktitle. If there's both a DOI and a URL but not both a title and a booktitle, you'll get an error

https://github.com/JuliaDocs/DocumenterCitations.jl/issues/59#issuecomment-1789631370

for a book you're running exactly into this situation where there is only one title field to link from (no separate title and booktitle). In the previous version of DocumenterCitations, this might have worked, since I was linking the URL to the title and the DOI from e.g. the publisher.

Not only it "might have worked", but it did work. So, after some reflection, I kinda agree that this wasn't a great move (and arguably a semver violation). As a bugfix, I'll restore the ability to always have both a DOI and a URL field automatically linked for any valid BibTeX entry, see #63.


fix: log in/out bodies for requests that have body parsed with json()

json() calls will never be resolved in res.end
close #33

thanks @timneutkens


Bootleg Smoke station broken

Seeing the following error on the bootleg smoke station:
youtube player error:
code:        150
description: video cannot be played in embedded players

Same with CollegeLonely station. Recommendations you could swap these errored stations with:
https://www.youtube.com/watch?v=-9gEgshJUuY
https://www.youtube.com/watch?v=HDhR2Yhnvfo
https://www.youtube.com/watch?v=Qt0-9mO-ZXY
https://www.youtube.com/watch?v=ORBwkXsUNEs

CollegeLonely seems to work for me still. Those are some nice suggestions man, I'm going to add these to my playlist :)

Also this one too: https://www.youtube.com/watch?v=XDh0JcxrbPM

That's the same as this one haha: https://lofimusic.app/collegemusic-guy

I have updated the college guy link in a PR.


Is there a way to define pagefind config?

Hey, thanks for a great package.
I wonder if there is a way to define config options for pagefind, because I want to adjust index for my app.
Looks like it receives an empty options object here:
https://github.com/shishkin/astro-pagefind/blob/main/packages/astro-pagefind/src/pagefind.ts#L58
Btw, I see that it is implemented in another integration
https://github.com/itsmatteomanf/astro-components/blob/main/packages/astro-pagefind/src/integration.ts#L38

Thanks. It's totally doable. I just never had a use case for that and wonder which options would make send to pass through. I definitely would like to avoid complicating the integration and face possible inconsistencies later. Looking through the createIndex args it seems at least harmless to pass them through. So what is your use case for overriding those options?

@shishkin I was just trying to index only headings and figured out what I can to that with data-xxxxx tags according to pagefind docs.
But anyway for me it looks like in any library which is written over another one there is always a way to pass params like: pagefindOptions: { ... } and everything just goes through.
I see that the package I mentioned has a validation for these params which is nice, but not critical. It is the user's responsibility to check the docs and pass the correct params :-)


Take correct part of extension with File Dialog

It might be hard to believe, but Godot was never using correct part of Extension specifier while showing Save File Dialog in editor!
It was due to bug/typo - when the second part, after ';' was always used, instead of first (or zeroth) part - with actual literal of extension.
It actually was happening with more parts of the editor, mostly those which specify free-form String as a description to the extension, for example:
template_open->add_filter("*.tpz ; " + TTR("Godot Export Templates"));

fdialog->add_filter(vformat("project.godot ; %s %s", VERSION_NAME, TTR("Project")));

asset_open->add_filter("*.zip ; " + TTR("Assets ZIP File"));

file_templates->add_filter("*.tpz ; " + TTR("Template Package"));

and so on...

Thanks @AureaFUNSoft for finding that ancient bug, I am mostly amazed nobody noticed that before :)
Fixes #36697

fdialog->add_filter(vformat("project.godot ; %s %s", VERSION_NAME, TTR("Project")));

This would still not work properly I guess, as it would make the extension .project.godot. It's probably the only such filter where it doesn't use a wildcard though, and the current fix is already better than the bug, so let's merge.
The code in EditorFileDialog around filter handling is a bit weird though and done differently in update_file_list(). It could likely be simplified and factored out.

Thanks!

Cherry-picked for 3.2.1.


Fix documentation link for aliases of editor charts

i18n-check

The following components have not been translated
component.dialog-relations.view (ru)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
component.dialog-relations.view (ru)component.dialog-relations.view (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
component.dialog-relations.view (ru)component.dialog-relations.view (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.


Import-TestToolkitToBcContainer fails on next major (v25) container

PLEASE DO NOT INCLUDE ANY PASSWORDS OR TOKENS IN YOUR ISSUE!!!
Describe the issue
After building a next major container on v25, the Import-TestToolkitToBcContainer command fails with an error.
Scripts used to create container and cause the issue
$containerName = 'my-test'
$artifactUrl = Get-BCArtifactUrl -type Sandbox -country US -select NextMajor -accept_insiderEula

$password = ConvertTo-SecureString -String 'Pass@word1' -AsPlainText -Force
$credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList 'admin', $password

New-BCContainer -containerName $containerName `
        -accept_eula `
        -accept_outdated `
        -accept_insiderEula `
        -auth NavUserPassword `
        -Credential $credential `
        -artifactUrl $artifactUrl `
        -updateHosts `
        -isolation hyperv `
        -memoryLimit 12G

Import-TestToolkitToBcContainer -containerName $containerName -includeTestLibrariesOnly

Full output of scripts
BcContainerHelper is version 6.0.19
BcContainerHelper is running as administrator
HyperV is Enabled
Host is Microsoft Windows 11 Pro - 10.0.22631.4037
UsePsSession is True
UsePwshForBc24 is True
UseWinRmSession is never
UseSslForWinRmSession is True
Docker Client Version is 25.0.3
Docker Server Version is 25.0.3
Removing Desktop shortcuts
Downloading artifact /sandbox/25.0.22993.0/us
Downloading C:\Users\mikeg\AppData\Local\Temp\be198747-a340-4f8d-8c37-c943b3589ad1.zip
Unpacking artifact to tmp folder using 7zip
Downloading platform artifact /sandbox/25.0.22993.0/platform
Downloading C:\Users\mikeg\AppData\Local\Temp\3aa79feb-8b6c-4028-81c9-77b1bc746f8e.zip
Unpacking artifact to tmp folder using 7zip
Downloading Prerequisite Components
Downloading x:\bcartifacts.cache\sandbox\25.0.22993.0\platform\Prerequisite Components\IIS URL Rewrite Module\rewrite_2.0_rtw_x64.msi
Downloading x:\bcartifacts.cache\sandbox\25.0.22993.0\platform\Prerequisite Components\DotNetCore\DotNetCore.1.0.4_1.1.1-WindowsHosting.exe
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:ltsc2022
Creating Container my-test
Style: sandbox
Multitenant: Yes
Version: 25.0.22993.0
Platform: 25.0.22933.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.20348.2402 (ltsc2022)
Host OS Version: 10.0.22631.4037 (23H2)
Using hyperv isolation
Using locale en-US
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Files in C:\ProgramData\BcContainerHelper\Extensions\my-test\my:
- AdditionalOutput.ps1
- HelperFunctions.ps1
- MainLoop.ps1
- SetupVariables.ps1
- updatehosts.ps1
Creating container my-test from image mcr.microsoft.com/businesscentral:ltsc2022
4f85725797e61f23ec8633cbcf84ba8df7a1a45bb9abc3186e9e24f5f298122e
Waiting for container my-test to be ready
Using artifactUrl https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.22993.0/us
Using installer from C:\Run\240
Installing Business Central: multitenant=True, installOnly=False, filesOnly=False, includeTestToolkit=False, includeTestLibrariesOnly=False, includeTestFrameworkOnly=False,
 includePerformanceToolkit=False, appArtifactPath=c:\dl\sandbox\25.0.22993.0\us, platformArtifactPath=c:\dl\sandbox\25.0.22993.0\platform, databasePath=c:\dl\sandbox\25.0.2
2993.0\us\BusinessCentral-US.bak, licenseFilePath=c:\dl\sandbox\25.0.22993.0\us\Cronus.bclicense, rebootContainer=True
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\sandbox\25.0.22993.0\platform\ServiceTier\Program Files
c:\dl\sandbox\25.0.22993.0\platform\ServiceTier\System64Folder
Copying Web Client Files
c:\dl\sandbox\25.0.22993.0\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\sandbox\25.0.22993.0\platform
c:\dl\sandbox\25.0.22993.0\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\sandbox\25.0.22993.0\us\ConfigurationPackages
Copying Test Assemblies
C:\dl\sandbox\25.0.22993.0\platform\Test Assemblies
Copying Extensions
C:\dl\sandbox\25.0.22993.0\us\Extensions
Copying Applications
C:\dl\sandbox\25.0.22993.0\platform\Applications
Copying Applications.US
C:\dl\sandbox\25.0.22993.0\us\Applications.US
Copying dependencies
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for tenant on localhost\SQLEXPRESS
Exporting Application to CRONUS
Removing Application from tenant
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Copying Database on localhost\SQLEXPRESS from tenant to default
Taking database tenant offline
Copying database files
Attaching files as new Database default
Putting database tenant back online
Mounting tenant database
Mounting Database for default on server localhost\SQLEXPRESS with AllowAppDatabaseWrite = False
Sync'ing Tenant
Tenant is Operational
Stopping Business Central Service Tier
Installation took 158 seconds
Installation complete
Initializing...
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is my-test
PublicDnsName is my-test
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 1A8316BA4636E1B9B2E95903D54C64D6E792FC47
DNS identity my-test
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Enabling Financials User Experience
Dismounting Tenant
Mounting Tenant
Mounting Database for default on server localhost\SQLEXPRESS with AllowAppDatabaseWrite = False
Sync'ing Tenant
Tenant is Operational
Creating http download site
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: <IP_ADDRESS>
Container Hostname  : my-test
Container Dns Name  : my-test
Web Client          : http://my-test/BC/?tenant=default
Dev. Server         : http://my-test
Dev. ServerInstance : BC
Dev. Server Tenant  : default
Setting my-test to <IP_ADDRESS> in host hosts file
Setting my-test-default to <IP_ADDRESS> in host hosts file
Setting my-test-default to <IP_ADDRESS> in container hosts file

Files:
http://my-test:8080/ALLanguage.vsix

WARNING: You are running a container which is 111 days old.
Microsoft recommends that you always run the latest version of our containers.

Container Total Physical Memory is 12.5Gb
Container Free Physical Memory is 8.6Gb

Initialization took 32 seconds
Ready for connections!
Reading CustomSettings.config from my-test
Creating Desktop Shortcuts for my-test
Cleanup old dotnet core assemblies
Container my-test successfully created

Use:
Get-BcContainerEventLog -containerName my-test to retrieve a snapshot of the event log from the container
Get-BcContainerDebugInfo -containerName my-test to get debug information about the container
Enter-BcContainer -containerName my-test to open a PowerShell prompt inside the container
Remove-BcContainer -containerName my-test to remove the container again
docker logs my-test to retrieve information about URL's again

PS C:\WINDOWS\system32> Import-TestToolkitToBcContainer -containerName $containerName -includeTestLibrariesOnly
Synchronizing Permissions Mock on default
App successfully synchronized
Installing Permissions Mock on default
Exception has been thrown by the target of an invocation.

Container Free Physical Memory: 8.6Gb
Disk C: Free 121Gb from 127Gb

Services in container my-test:
Import-TestToolkitToBcContainer Telemetry Correlation Id: a284ffbb-35cd-4abb-886e-4a6d5803fe6d
Exception has been thrown by the target of an invocation.
At C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.19\ContainerHandling\Invoke-ScriptInNavContainer.ps1:301 char:25
+                         throw $errorMessage
+                         ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Exception has b... an invocation.:String) [], RuntimeException
    + FullyQualifiedErrorId : Exception has been thrown by the target of an invocation.
...

Screenshots
n/a
Additional context
Happens all the time now but this did work at some point. Do not know when it broke as I have not built a new next major container in a number of weeks.

also fyi my bccontainerhelper config has nothing special in it:
{
    "bcartifactsCacheFolder":  "x:\\bcartifacts.cache",
    "DoNotUseCdnForArtifacts":  false
}

Your script works here.
You could try to get the eventlog from the container and see if anything pops up.
Else, my suggestion would be to run Flush-ContainerHelperCache and retry

Multiple developers here had this issue but it turns out we all had an old container on our machines that caused an old image to stick around. I guess this caused an issue as when the old container and image were removed everything was fine.


Split into separate maven modules (solves #15)

This PR borrows heavily from mongobee PR#64.
Basically, it splits mongock into three separate maven modules (mongock-core, mongock-jongo, mongock-spring).  The tests have also been split and refactored in each module.
There are probably some additional refactorings that can be done in the future (e.g., reduce code duplication), but I think this is a good start for being able to use mongock with and without Spring or Jongo.
I just realized I forgot to update the README, so I'll do that and push in a separate commit.  Please wait for that before merging.

I was also doing the split, looks pretty much the same. I will carry on from yours as it's finished.
I will review it tomorrow.
Thanks

Sorry...I should have let you know I was going to give it a crack.

No worries, next time ;)


Not able to build MRM Modules in AVS SDK V1.10

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:

I am trying to build the AVS SDK V1.10 by enabling the MRM modules.
I have used the below flags to build the MRM.
-DENABLE_MRM=ON -DMRM_LIB_PATH=$BASE_DIR/sdk-source/avs-device-sdk-master/CapabilityAgents/MRM/src/libMRM.a -DMRM_INCLUDE_DIR=$BASE_DIR/sdk-source/avs-device-sdk-master/CapabilityAgents/MRM/include
What is the expected behavior?

MRM Modules should be enabled and compiled.
What behavior are you observing?

MRM Modules are not built.
Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?
  <x.y.z>

AVS SDK V1.10
Tell us what hardware you're using:

[ ] Desktop / Laptop
[ ] Raspberry Pi
[ X] Other - tell us more: ARM CORTEX based linux Platform.

Tell us about your OS (Type & version):

[ x] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi,
We are trying to demonstrate MRM on our product which is a cortex based linux platform.
To do this we firstly tried with Amzon Echo and Dot devices by registering both the devices using same AMAZON Account. We are able to add Amazon Echo Devices under MRM group in Amazon Alexa Appp and name the devices.(Ex: One device with Bedroom , one device name as Kitchen)
We build AVS SDK V1.10 and loaded on our platform. We have registered the app running on our platform(Which has Ethernet Port, doesn't have Wifi) also to the same account as the above two echo devices.
We tried adding our device to MRM group in Add "Multi-Room Music Speakers" group. But our device is not displayed in the list of devices available.
We realized that we have not enabled MRM modules in AVS SDKV1.10 and tried building MRM Modules by giving the below flags.
-DENABLE_MRM=ON -DMRM_LIB_PATH=$BASE_DIR/sdk-source/avs-device-sdk-master/CapabilityAgents/MRM/src/libMRM.a -DMRM_INCLUDE_DIR=$BASE_DIR/sdk-source/avs-device-sdk-master/CapabilityAgents/MRM/include
When we build the app, CMAKE is ignoring above Flags and not building the MRM Modules.
CMake Warning:
Manually-specified variables were not used by the project:
ENABLE_MRM
MRM_INCLUDE_DIR
MRM_LIB_PATH

My Question is :

Is MRM needs to be enabled in app for alexa app to detect our device under MRM Group?
In case , MRM is needed, Please suggest the steps needed to build?
Is there any other steps needed to do for listing our devices under MRM?

Please provide your suggestions.
Thanks.

Hi @ShivaKrishnaCharka, please note that in order to enable MRM, you will need an additional package.  Please contact your Amazon Business Development Representative to get more information on how to enable MRM on your product.  Thanks!

@kclchan  How to contact Amazon Business Development Representative？ Is there an email?

@zuowanbushiwo can you please fill out the contact form here and we'll reach out to you?

@anu-mathur  thanks！

Closing the issue now.  Thanks for reaching out to us!


release memory on predicate with 0% selectivity

When we selected no data from an array, we sliced the buffer keeping all the data in memory. This ensures we are able to free the array data by creating a new empty array.

Oooof, this was a nasty one!


ci: enable shellcheck

Signed-off-by: Anish Ramasekar<EMAIL_ADDRESS>
Reason for Change:

Requirements

[ ] squashed commits
[ ] included documentation
[ ] added unit tests and e2e tests (if applicable).

Issue Fixed:

Does this change contain code from or inspired by another project?

[ ] Yes
[ ] No

If "Yes," did you notify that project's maintainers and provide attribution?
Special Notes for Reviewers:

Codecov Report

Merging #783 (9c8aded) into master (655f807) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #783   +/-   ##
=======================================
  Coverage   61.65%   61.65%
=======================================
  Files           7        7
  Lines         785      785
=======================================
  Hits          484      484
  Misses        267      267
  Partials       34       34


Question: about JobIntentService alternative on Android O...

According to the docs, it's not promised to be launched right away.
What if I want to start a service that will surely use the Internet (foreground service and/or with wakelocks if needed), and run right away?
Did Android O really stop supporting such a thing?
I ask this because of this issue (need to use Internet connection on battery saver mode after phone event) :
https://stackoverflow.com/q/45976482/878126

What if I want to start a service that will surely use the Internet (foreground service and/or with wakelocks if needed), and run right away?

Very few scenarios exist in which that degree of timing is required, because the trigger for that service itself will be inexact. Take AlarmManager for example. Given Doze mode, you have no idea when your alarms will actually go off. Hence, worrying about an additional delay due to the vagaries of JobScheduler with respect to JobIntentService is pointless.
Yours in part happens to be one scenario where timing may be important. I say "in part" because only your NEW_OUTGOING_CALL receiver might work, PHONE_STATE doesn't seem to be on the implicit broadcast whitelist, so you can't register for that in the manifest on Android 8.0 AFAIK.

Did Android O really stop supporting such a thing?

They made it more difficult. WakefulIntentService would need some retrofitting to use startForegroundService() (at least as an option) instead of startService().

Actually, if you want an alarm to be triggered on some point, it's very crucial it will be on this time.
Imagine you need to wake up for work, but it will decide that it's not important to be on the time you've set it to be... Or maybe you mean in other scenarios?
But anyway, I wrote about battery-saver too. Why wouldn't the Internet be available on this case, and yet if I wait a very short time (usually less than 100ms in my case), it's available? How could it be?
About the BroadcastReceiver, it seems to work fine on Android O, even if I target Android O.
Do you know perhaps of a way to overcome the situation I've found?
That upon phone call, when the device has battery-saver turned on, there is no Internet connection (yet it might come back very soon after for some reason) ?
If so, please check the StackOverflow question and offer your answer there.

I tried to use WakefulIntentService. I tried to use WakeLock. I tried to use a receiver for connection availablility. And, of course I tried to use foreground service.
Maybe one of my implementations was wrong too. I might have made some mistakes on the way...
I hope you can answer this. If you really have a solution, I will be glad to grant the bounty :)

That upon phone call, when the device has battery-saver turned on, there is no Internet connection (yet it might come back very soon after for some reason) ?

I have never researched anything vaguely resembling this scenario, sorry.

I have the sample project for this, here:
https://issuetracker.google.com/issues/65395920#comment1
And with the only workaround that I've found, here:
https://issuetracker.google.com/issues/65395920#comment6


Add: dolly service

Add a service that runs rclone periodically to upload data to box using cron.

Forgot to mention - @wang701 please add your ownership of this container to the end of the CODEOWNERS file here in the form services/dolly     @wang701
This means that you will be automatically added to PR's that modify code in this contianer


feat: improve ToAdditive.guessName to work with capitalisation

This is a suggestion for to_additive to parse names in the new naming conventions.
It does keep capitalised abbreviations like "LE" together but it would not split a single capitalised char off.
E.g. "OneCommMonoidLEHMul_one_lt_Conj₂Pow" becomes "ZeroAddCommMonoidLEHAdd_pos_Conj₂Nsmul"

can you add test cases to the test file?

Done that :)

I made a few further changes. If you happy, please go ahead and merge.
bors d+

Thanks @semorrison ! I made a few more minor changes, all fixes to the test cases.

bors ping

bors r+

bors r+


Get a docker image working from a Dockerfile

Commit 9ca67d05eb66ec39876057570a190f9ead225ab1 got rid of the Dockerfile.
Previously it was working with Ubuntu linux (which I am most familiar with).
A working docker image should not run the notebook server as root for security reasons.
I think an update to jupyter notebook killed the previous docker image, I did not spend much time investigating.

Closed as duplicate.


GH-140: Support for Composite Discovery client

#140 - Added support for a composite Discovery Client

Apps need to just be able to inject DiscoveryClient without any changes.

Anything else here @spencergibb, not sure if the assumptions are right - now there are two DiscoveryClients created by default, the CompositeDiscoveryClient and the SimpleDiscoveryClient(if client defined bean does not exist). CompositeDiscoveryClient is marked @Primary so that it is the one injected when a client requests it.

how about a rebase @bijukunjummen?

Will do @spencergibb - will revisit the implementation once more, rebase and update the PR.

Done @spencergibb, rebased now.


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative/security-guard-approvers
/assign knative/security-guard-approvers
Produced by: knative-sandbox/knobots/actions/update-deps

/retest

/retest

/lgtm
/approve

/retest

/lgtm


Provide grapevne python utility functions

Provide a python package for import at the start of snakemake workflows that provides a set of utility functions. Useful support functions would include:

[ ] a wrapper for automatic remote or local file loading

Duplicate of #29


How to make imageView on card fullscreen when single tapped?

Here is my implementation to see imageView on card in fullscreen by double tapping. However, I need it to be single tap. My problem is, on MotionEvent.ACTION_DOWN, it need to be return false so that the card can be swiped, but ACTION_UP will be never called since it is not consumed in the event ACTION_DOWN.
    profilePicture.setOnTouchListener(new View.OnTouchListener() {
        long timestamp = 0;

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
                long now = System.currentTimeMillis();
                long diff = now - timestamp;
                if (diff < 500) {
                    Log.d("Gesture", "double tap");
                    Intent i = new Intent(context, FullPhotoActivity.class);
                    i.putExtra("deviceID", userToShow.getDeviceID());
                    context.startActivity(i);
                    return true;
                } else {
                    timestamp = now;
                }

            }
            return false;

        }

    });

Don't use the OnTouchListener but use the OnClickListener instead. Since the touch events are consumed in the listeners, that will disable the swipe in the current implementation of the library when the swipe is started on the picture.

Previously, I used onClickListener. When image is pressed (not realesed yet), the card is not moved. When it is released, the onclicklistener invoked

That's indeed the limitation of using the OnClickListener, you'll have to delegate the touch events to the child views which will be quite a challenge.

So what would you suggest? I need it to be singe rather than double tapped, just like Tinder does. Thanks before :'D

You can edit the FlingCardListener to handle the touch events as clicks if there is little to no movement between the UP and DOWN event. I've had this problem too though, I'm planning to write this myself somewhere in the future.

I have also same problem, please suggest solution for this.


Add a customizable diesel backed session store

This commit adds a custom diesel backed session store. It abstracts over different database backends and allows to customize the used session table.
This partially addresses #26 (the diesel part, not the diesel-async part)

This is fantastic. Thank you!

Should we add an integration test while we're at it? I've done that for the SQLx stores we support.

Can you point to where to add these tests?

It looks like some of the integration tests are failing.

I've tried to reproduce the error locally but they are passing for me. It seems like that this issue is caused by a racing condition while applying the migrate() function to the database.

That sounds like it could be the culprit. I had to work around this with some of the SQLx stores. I'm not sure what the correct thing to do here is, since it seems unlikely to matter in a real application.


MS Testing Framework Does Not Support C++20 Features

There's no mention of the limitation of MS Testing Framework that it cannot test units that are based extensively on C++20 standards.   This is a severe limitation considering that C++23 is due shortly.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 904d0bfe-b144-c2d1-3f1e-4db6c64e049e
Version Independent ID: 6eda8810-d777-e4b7-0e1c-0bd7b16d450b
Content: Explore unit test tools and tasks - Visual Studio (Windows)
Content Source: docs/test/unit-test-your-code.md
Product: visual-studio-windows
Technology: vs-ide-test
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

@AbhitejJohn Do we have a contact who would know about this issue?

The issue is not about MSTest but about C++ Unit Test Framework. @jakubch1 will be able to provide more info.

Thanks!

From: Amaury Levé @.>
Sent: Tuesday, January 30, 2024 11:22 AM
To: MicrosoftDocs/visualstudio-docs @.>
Cc: Comment @.>; Assign @.>
Subject: Re: [MicrosoftDocs/visualstudio-docs] MS Testing Framework Does Not Support C++20 Features (Issue #9938)
The issue is not about MSTest but about C++ Unit Test Framework. @jakubch1https://github.com/jakubch1 will be able to provide more info.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/visualstudio-docs/issues/9938#issuecomment-1917731510 or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC3FD6CFDUD3RADPBXWJPVLYRFCBFBFKMF2HI4TJMJ2XIZLTS6BKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTAVFOZQWY5LFUVUXG43VMWSG4YLNMWVXI2DSMVQWIX3UPFYGLAVFOZQWY5LFVE3TENJQGQ3DSMZZURXGC3LFVFUGC427NRQWEZLMQKSXMYLMOVS2UMJSHA4TAOJTGU3DNJDOMFWWLKLIMFZV63DBMJSWZAVFOZQWY5LFVIYTGNRTGQ4DIMZWG2SG4YLNMWUWQYLTL5WGCYTFNSBKK5TBNR2WLKRRGQ2TINJXGY4DINVENZQW2ZNJNBQXGX3MMFRGK3FMON2WE2TFMN2F65DZOBS2YSLTON2WKQ3PNVWWK3TUUZ2G64DJMNZZNAVEOR4XAZNKOJSXA33TNF2G64TZUV3GC3DVMWUDOMZXGQYDENZTQKSHI6LQMWSWS43TOVS2K5TBNR2WLKRSGA3DSMZUGI4TQMMCUR2HS4DFUVWGCYTFNSSXMYLMOVS2SNZSGUYDINRZGM4YFJDUPFYGLJLMMFRGK3FFOZQWY5LFVIYTEOBZGA4TGNJWG2BKI5DZOBS2K3DBMJSWZJLWMFWHKZNKGEZTMMZUHA2DGNRWQKSHI6LQMWSWYYLCMVWKK5TBNR2WLKRRGQ2TINJXGY4DINVHORZGSZ3HMVZKMY3SMVQXIZI.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I created C++ Unit Test Framework project and compiled it without issues with C++20 and C++23.
@JustaSimpleUser  could you please provide feedback here: https://developercommunity.visualstudio.com/VisualStudio and also provide steps/solution to repro your issue?

Closing it here, since there's a recommendation to move to Developer Community

To be honest, I don't fully recall what led me to this comment.  It may have stemmed from a specific compilation error or MSVS remark in my first testing framework tests.  Clearly, my report wasn't particularly good, and for that I apologize.
I'm happy to see this remain closed until, and if, my concerns are highlighted again the next time I try to implement a testing framework solution.


Output dimensions of ObjectDecoderCNN

Hey,
first of all thanks a lot for providing this repository, very inspiring work!
I am adapting it to learn representations of my own data, which contains 256x256 pixel images. Training crashes with the error
[...]
File "[...]/models.py", line 371, in translate_patches
  grid = F.affine_grid(theta, padded_patches_batch.size(), align_corners=align_corners)
File "[...]/lib/python3.9/site-packages/torch/nn/functional.py", line 4341, in affine_grid
  return torch.affine_grid_generator(theta, size, align_corners)
RuntimeError: Expected size for first two dimensions of batch2 tensor to be: [640, 3] but got: [160, 3].

The issue leading to this error is somewhere else: After a while I noticed that the forward method of ObjectDecoderCNN returns data with the wrong dimensions. After yet some more research, I discovered that this is because of a numerical instability in modules/modules.py, in ObjectDecoderCNN.__init__(), line 630 (direct link):
num_upsample = int(np.log(patch_size[0]) // np.log(2)) - 3
is supposed to calculate the logarithm to the base 2 of the number of patches, right? It does calculate the correct logarithm (minus 3) when patch_size[0] is 8, 16, or 32. But since my input images have 256x256 pixels, they result in 64 patches. For 64 and 128 patches you'll get the wrong number, 1 less than what you want to get. This results in the network not having the correct amount of layers, so it returns the wrong output shapes and the entire model crashes.
Fix:
Replace line 630 with
num_upsample = int(np.log2(patch_size[0])) - 3
I just wanted to point this out in case someone encounters the same error, which will happen for input images that are large enough to result in 64 or even 128 patches.
Cheers
Moritz

This is awesome! Thank you for catching this. I updated that line (with credit for you).
We were not able to train at this resolutions for compute reasons, so it is very nice that you can!
We have an updated version (DLPv2) which is more lightweight and accurate, and we should drop the code around next month (https://github.com/taldatech/ddlp).
Please free to reach out to me if you have any questions or need assistance with anything related to DLP.
Thanks again!

Glad to help! And thanks for the heads-up concerning DDLP, I'm looking forward to it!

Glad to help! And thanks for the heads-up regarding DDLP, I'm looking forward to it!

You are correct, should be fixed now, thanks!


Bump default OSP versions to 1.3.3

What this PR does / why we need it:
In anticipation of #314 working, this prepares a 1.3.3 release by bumping the default OSP versions as documented in the release process. v1.3.2 is already released but versions were never bumped for it, so we are skipping it.
Which issue(s) this PR fixes:

Fixes #
What type of PR is this?
/kind chore
Special notes for your reviewer:
Does this PR introduce a user-facing change? Then add your Release Note here:

NONE

Documentation:

NONE

/cherry-pick release/v1.3


Missing properties; minecraft:behavior.knockback_roar

Missing property details:

knockback_filters (filter)
damage_filters (filter)
on_roar_end (event/trigger)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5ce07b46-0e9e-77e6-0a32-f4e8d91d128e
Version Independent ID: a70773dc-ea91-ec28-fe90-d200356bbcd7
Content: minecraft:behavior.knockback_roar
Content Source: creator/Reference/Content/EntityReference/Examples/EntityGoals/minecraftBehavior_knockback_roar.md
Product: gaming
GitHub Login: @v-josjones
Microsoft Alias: v-josjones

Addressed in Hotfix for R17: Caves and Cliffs: Part 1


gofmt damages the indentation

For example it turns this
const REGEXP_WHOLE =
	// [1] Return value
	`^\s*` + REGEXP_TYPE +
	// 3+1 = [4] Function name
	`(gl\w+)\s*` +
	// [5] Argument list
	`\((` + REGEXP_ARG_LIST + `)\)\s*$`

// ...

returnType	:= submatches[1]
funcName	:= submatches[4]
argList		:= submatches[5]

into
const REGEXP_WHOLE =
// [1] Return value
`^\s*` + REGEXP_TYPE +
	// 3+1 = [4] Function name
	`(gl\w+)\s*` +
	// [5] Argument list
	`\((` + REGEXP_ARG_LIST + `)\)\s*$`

// ...

returnType := submatches[1]
funcName := submatches[4]
argList := submatches[5]

Especially first case is annoying. Is it at least a way to locally disable it with comments like in other similar tools i.e. like that?
// gofmt off
blablabla
// gofmt on

No, there's no such mechanism.
You'll have to find another way to reformat your code to make both gofmt and yourself happy.
As an aside, NAMES_LIKE_THIS should be NamesLikeThis or namesLikeThis in Go. See https://github.com/golang/go/wiki/CodeReviewComments#mixed-caps

@bradfitz Ok, thanks for noticing about constants.


[SPARK-48824] Add Identity Column SQL syntax

What changes were proposed in this pull request?

Add SQL support for creating identity columns. Users can specify a column GENERATED ALWAYS AS IDENTITY(identityColumnSpec) , where identity values are always generated by the system, or GENERATED BY DEFAULT AS IDENTITY(identityColumnSpec), where users can specify the identity values.
Users can optionally specify the starting value of the column (default = 1) and the increment/step of the column (default = 1). Also we allow both
START WITH <start> INCREMENT BY <step>
and
INCREMENT BY <step> START WITH <start>
It allows flexible ordering of the increment and starting values, as both variants are used in the wild by other systems (e.g. PostgreSQL Oracle).
For example, we can define
CREATE TABLE default.example (
  id LONG GENERATED ALWAYS AS IDENTITY,
  id1 LONG GENERATED ALWAYS AS IDENTITY(),
  id2 LONG GENERATED BY DEFAULT AS IDENTITY(START WITH 0),
  id3 LONG GENERATED ALWAYS AS IDENTITY(INCREMENT BY 2),
  id4 LONG GENERATED BY DEFAULT AS IDENTITY(START WITH 0 INCREMENT BY -10),
  id5 LONG GENERATED ALWAYS AS IDENTITY(INCREMENT BY 2 START WITH -8),
  value LONG
)

This will enable defining identity columns in Spark SQL for data sources that support it.
To be more specific this PR

Adds parser support for GENERATED { BY DEFAULT | ALWAYS } AS IDENTITY in create/replace table statements. Identity column specifications are temporarily stored in the field's metadata, and then are parsed/verified in DataSourceV2Strategy and used to instantiate v2 [Column]
Adds TableCatalog::capabilities() and TableCatalogCapability.SUPPORTS_CREATE_TABLE_WITH_IDENTITY_COLUMNS This will be used to determine whether to allow specifying identity columns or whether to throw an exception.

Why are the changes needed?

A SQL API is needed to create Identity Columns.
Does this PR introduce any user-facing change?

It allows the aforementioned SQL syntax to create identity columns in a table.
How was this patch tested?

Positive and negative unit tests.
Was this patch authored or co-authored using generative AI tooling?

No.

@dtenedor Hi Daniel, thanks for reviewing the PR!
We changed the PR a bit to allow both IntegerType and LongType in the SQL interface, and it is up to the underlying framework that extends Spark to throw its own error if it doesn't want to support more than LongType. Are you fine with this change?

thanks, merging to master!


Create _graylog.md

Description
[This will add Graylog to the OpenSearch Partner Page]
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

I see your new pull request https://github.com/opensearch-project/project-website/pull/838 - closing this one as duplicate.


modemmanager: 1.18.12 → 1.20.4

Description of changes

Things done

[x] pkg-config files look okay
[x] output diffs look okay
[x] news look okay
Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Hmm, 233dac2934f685e87e3f9a6480c3b66027c069b2 doesn't build for me on x86_64-linux.  I wonder how OfBorg managed it…
modemmanager> Installation failed due to insufficient permissions.
modemmanager> Attempting to use polkit to gain elevated privileges...
modemmanager> pkexec must be setuid root
modemmanager> FAILED: meson-internal__install
modemmanager> /nix/store/754p0izaawcr1v28i0k3xbbj2r3m27n2-meson-0.64.1/bin/meson install --no-rebuild
modemmanager> ninja: build stopped: subcommand failed.
error: build of '/nix/store/3yzwywmxb3hkcsqpsc1s58lrq63lfnlk-modemmanager-1.20.4.drv' failed

Works for me on another system with a more recent Nix so probably a Nix bug that got fixed along the way.

Okay, as it turns out this package should have failed to build, and only worked due to a regression in Nix.
From the OfBorg log:
Installing /build/source/build/data/org.freedesktop.ModemManager1.conf to /etc/dbus-1/system.d

This should not have worked.

We can set -Ddbus_policy_dir to fix D-Bus file installation, but the new example files can't be disabled.  I've opened an upstream MR to add an option to disable installing those.

Ugh I assumed the option is not necessary anymore due to the path being properly interpolated now but did not notice that it is interpolating sysconfdir. Must have been using Nix 2.12 as well.
But that line does not really make sense – it is getting sysconfdir from the pkg-config file and then replacing it wholesale with sysconfdir of the package. And the /etc path is deprecated for packages anyway.

As for the examples, it might be useful install them, maybe with something like https://github.com/NixOS/nixpkgs/blob/532f202b6490c646817796ba09e88c8b7bea74c1/pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch

As for the examples, it might be useful install them, maybe with something like https://github.com/NixOS/nixpkgs/blob/532f202b6490c646817796ba09e88c8b7bea74c1/pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch

Useful for what? I don't mind installing stuff like that when it doesn't cause problems, but I'm fairly doubtful that people are going to go poking around in their Nix store to find examples.

When I want to edit fwupd settings on my NixOS system, I find running nix build .#fwupd in my config flake and looking at the commented config files in the output more convenient than looking at the fwupd version in the nixpkgs input of my flake, going to the repo and looking up the source file for the config with appropriate tag. But it’s just a nice to have, not something critical.


Feat:Sparkling Effect on Copy Button Click

What feature?
Enhance the user experience by adding a sparkling effect around the copy button when clicked, creating a visually pleasing and engaging interaction. This addition will bring a delightful touch of interactivity and charm to the copying process.
https://github.com/priyankarpal/ProjectsHut/assets/103263909/5aee2862-f887-4c4a-b8cb-6b2501426af7
Add screenshots
https://github.com/priyankarpal/ProjectsHut/assets/103263909/d27550bb-e4ae-4528-932c-70d7fd0e241d
we can add this sort of sparkle.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

yeah! sounds good. assigned to you @Saurav-Pant

Based on the guidelines of GSSoC'23, it appears that this particular issue has not been resolved within the past few days. As it involves a simple pull request, we would like to kindly inform you that we will be closing this issue.
Thank you for your understanding.


[stack] one click to "add after"

the ask is to promote the "add after" action to the rail or otherwise make it single-click to insert new content

proposal: a new add-between affordance physically located in the middle between sections
i.e. what if the "sausage" or affordance to resize sections was really just another kind of rail where the "add above or below was natural


Feature/shared model proto query responses

What is this pull request?
Proto container for QueryResponse; proto implementation for AccountAssetResponse
Details/Features

Add QueryResponse proto container
Add proto implementation for AccountAsset
Add proto implementation for AccountAssetResponse

Codecov Report

Merging #730 into feature/shared_model will increase coverage by 0.2%.
The diff coverage is n/a.

@@                   Coverage Diff                   @@
##           feature/shared_model     #730     +/-   ##
=======================================================
+ Coverage                 42.82%   43.02%   +0.2%
=======================================================
  Files                       338      327     -11
  Lines                     12389    12294     -95
  Branches                   6765     6709     -56
=======================================================
- Hits                       5305     5289     -16
+ Misses                      918      882     -36
+ Partials                   6166     6123     -43

Impacted Files
Coverage Δ

...end/protobuf/commands/proto_add_asset_quantity.hpp
14.28% <ø> (ø)
:arrow_up:

...l/backend/protobuf/common_objects/proto_amount.hpp
0% <ø> (ø)

shared_model/utils/lazy_initializer.hpp
81.81% <ø> (ø)
:arrow_up:

shared_model/cryptography/hash.hpp
0% <0%> (-16.67%)
:arrow_down:

shared_model/utils/reference_holder.hpp
75% <0%> (-12.5%)
:arrow_down:

shared_model/utils/variant_deserializer.hpp
37.5% <0%> (-12.5%)
:arrow_down:

shared_model/cryptography/blob.hpp
21.05% <0%> (-10.53%)
:arrow_down:

...l/interfaces/transaction_responses/tx_response.hpp

...aces/transaction_responses/unknown_tx_response.hpp

...saction_responses/stateless_failed_tx_response.hpp

... and 10 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 186bcac...1d9d8d9. Read the comment docs.


Investigate what is needed for R support to Codespaces

The current configuration we have uses a Python image to get ehrQL and OpenSAFELY CLI running in Codespaces.
Adding R support might be a lower priority than other tasks, particularly if we focus on Codespaces initially for data extraction with OpenSAFELY, over analysis. But we know we have lots of R users on the platform, so it would be good to make it easier for them to write analysis code, without resorting to a local installation.
Tasks

Figure out what would be needed to make R code editing viable in Codespaces. (The OpenSAFELY R image should already work in Codespaces, but does not necessarily make it easy to get code completion for packages.)
Does the R action image add too much time or space to be practical to use? An alternative might be to run our own CRAN mirror restricted to the same list of packages (running a CRAN mirror is out of scope for this ticket, although describing how it's possible would be good).
Might we want to implement any R extras as a separate dev container configuration, or all the tooling in one?
Might we need to switch out the current Python image used in the dev container for another?
Could R users suffice with VSCode as an editor alone, without R Studio?
Review @remlapmot's existing work on this; it might be as a useful reference inspiration:

An R dev container using VSCode as editor
A dev container setup using R Studio

Speak to some existing R users about what they would need.

Timebox: 2-3 days.
Assumptions

We might assume that we are able to persuade R users to use VSCode over R Studio, if adding a viable R Studio setup to our configuration is tricky. That may or may not be a valid assumption.

I gave this a try and was able to get VSCode and RStudio working via Codespaces in about two clicks (slack thread). We could potentially use something like this to allow users to write R code without needing local setup.
It seems like RStudio Server is available under an AGPL license, so we should be able to make that available via a Docker image.
We might want to do a quick spike and test it with some researchers, potentially though.

Interesting and hopefully useful observation:
The Opensafely R docker image makes use of renv (think virtualenv but for R). This means we can fetch the renv.lock file from the R docker image github repo and use it as our local environment. This file defines the base R version, the packages installed, and their versions.
It is possible to renv::restore() the whole environment, but this takes ages and involves lots of big downloads and compilation.
It is, however, possible to restore() individual packages, such that only the needed package(s) for a project are installed. This, however, is a divergence from the usual install.packages() way of installing a package that the average R user would expect. I wonder if there is a way of bridging this gap?

We could also base our R (studio) development docker image on https://github.com/rocker-org/rocker-versioned2/tree/master a 4.0.x versioned image to match the R docker image used on job server

Good spot about renv and the lock file, that's likely to be really useful. Do you think we could use this to install the dependencies into the docker image rather than at container startup?
Would we need to have two devcontainer configurations and have the researcher choose which one to use when starting the Codespace or is it possible/practical to do it in a single devcontainer configuration?

We could also base our R (studio) development docker image on https://github.com/rocker-org/rocker-versioned2/tree/master a 4.0.x versioned image to match the R docker image used on job server

rocker have produced specific devcontainer images (here), so would one of their non-devcontainer images work? It might be worth a quick test, especially because their devcontainer specific images look like they might not support 4.0.x.

I'll have a look next week at monkeypatching in R - we might be able to monkey patch install.packages(...) to `renv::restore(...). Having a pre-restored image containing all the packages or having them all restore on startup are both distinctly unappealing due to container size and startup time.

Short comments - it's possible to make a rebuild of r-docker using of rocker/rstudio:4.0.5. In fact I've already done this (but using snapshot repos instead of renv). My image size is smaller than the old r image, so there's no need for monkey patching.

Longer comments:
My Docker file is at https://github.com/opensafely/reverse-engineer-r-docker/blob/b7345c57b6986b6d333e454308e0e9a610b2c145/legacy-04.Dockerfile
I had already started making this before Simon switched to renv - so it doesn't use renv but rather obtains the packages using snapshots from the Posit public package manager https://packagemanager.posit.co/client/#/ (like with Linux distros, there is a long history of rebuilding R environments using snapshots in the R community e.g. the MRAN servers ... but sadly they are now shut down; Posit public package manager only big one left).
Because I managed to find URLs for binary packages for almost all packages this build only takes 30 mins (or faster if you have faster internet and/or computer than me).
The image is on docker hub, you can try it with
docker run --platform linux/amd64 --rm -ti \
  -e PASSWORD=yourpassword -p 8787:8787 \
  -v "/$PWD:/home/rstudio" \
  remlapmot/r-docker:2024-04-02-rstudio

As obvs from that command, access the rstudio-server at localhost:8787, login details are

username: rstudio
password: yourpassword
after session finished close rstudio window
in shell session docker run issued, issue Control+C

I haven't tried rebuilding using renv on Linux - however I am a bit worried that it might fail because the R version is so old and lots of packages have been added at version numbers after R 4.0.5 was the current version of R.
I don't think you need to worry about image size - in fact my image is currently smaller than the r image Simon used to distribute before he switched to renv, i.e.,

your legacy image is 1.64 GB compressed
My remlapmot/r-docker:2024-04-02-rstudio image is 1.4 GB compressed

For Venexia to use I managed to use renv to restore the r image packages on a Windows 11 machine. That repo is https://github.com/remlapmot/renv-r-docker. There were 3 problem packages: BayesianTools, glmmTMB, and DHARMa. (DHARMa seems to need at least Rcpp 1.0.7 or later to build and Rcpp is at 1.0.5 in the renv.lock file) Which is why I needed a setup.R script before issuing the renv::restore()).
Personally I wouldn't look into monkey patching.
As pointed out by Dave several months ago when renv can use pak the renv::restore() will be much much faster. That is now possible (pak does parallel package downloads). To use that you'd need to upgrade to renv 1.0.5 and enable the setting as described here https://rstudio.github.io/renv/reference/config.html?q=pak#renv-config-pak-enabled. In the current image to upgrade renv run in R
renv::upgrade(prompt = FALSE)
renv::activate()

Then insert in the first line of .Rprofile
options(renv.config.pak.enabled=TRUE)

Then try the renv::restore().
I haven't tried that yet, but again it might currently fail due to that the r image having such a spread out (in terms of dates) set of packages and old R version (i.e., renv and pak might not be able to work out my trick for installing DHARMa).

Thanks, @remlapmot  that's super helpful. Having thought about it over the weekend I agree that monkey patching isn't a great idea. I'll check out upgrading renv to see what the performance is like, it sounds like we might have our solution there.

to make launching RStudio easier, the RStudio URL is contained in the RSTUDIO_HTTP_REFERER env var:
e.g.
printenv | grep friendly
RSTUDIO_HTTP_REFERER=https://friendly-adventure-4qv9jqjj777fjw59-8787.app.github.dev/

maybe we could put a link to this in the bash MOTD or somewhere

Working R/Rstudio config in this PR
We could have a unified R/Python dev image by adding in the OpenSAFELY Python packages as per this PR
Both tested in local devcontainers and somewhat on codespaces. We ideally would be docker building said unified image and publishing it under the opensafely-core org, and replacing the Jongmassey one referenced in the config in those PRs.
It's a bit chunky at 8GB so could certainly do with some optimisation, too

Thanks for that @remlapmot . Jon is away in sunny Canada this week, so I'm picking up the work. Your comment was very helpful this morning. I've brought together all of the changes into a draft PR here. You're welcome to have a look, but don't feel you have to.
I found that the renv wasn't setup correctly, so it wasn't picking up the packages from Simon's image. For the moment, I've moved it over to use your image. This works and will allow me to get some feedback on the changes so far.
For reference, using the rocker/rstudio:4.0.5 image and copying the packages over resulted in a image that was 6GB in size (although importantly it wasn't working). Whereas, basing it on your image results in a 6.8GB image.

I'm closing this ticket and moving the discussion to #43, since we've finished "investigating" and now want to talk about rolling out the changes.

I tried with the Codespace - the VSCode interface launched successfully, and I can access an R session from its Terminal, but I can't seem to get past the rstudio-server login screen. I tried with username: rstudio, password: yourpassword; as are usually the defaults but they failed.

Maybe I did something wrong - there are some comments in the rocker/rstudio docs about disabling authentication https://rocker-project.org/images/versioned/rstudio.html#disable_auth. I tried setting export DISABLE_AUTH=true in the Codespace Terminal and restarting the rstudio-server session but that didn't do the trick.

Ah sorry @remlapmot , I should have said, it's:
username: rstudio
password: rstudio
I didn't set it, so assumed that was the default somewhere.

Thanks - oh yes.
It works great.

Another possible addition for you to consider Lucy and Jon.
If a user prefers to use VS Code (rather than RStudio) to edit their R code they can add the R language extension to their Codespace.
https://marketplace.visualstudio.com/items?itemName=REditorSupport.r
To make that work it requires the languageserver R package - again the user can add that themselves.
(If a user was really proficient with the VS Code R extension they might additionally want the radian console and httpgd R package added - but again I guess they can do that themselves.)
So if you think helpful Lucy - you could add the R language extension to the devcontainer, and I could ask for the languageserver package to be added to the r image (as then I'd also add it to my rstudio image and the 2 would still be in sync).
I admit I don't have a good sense of how many users would prefer VS Code over RStudio.

Thanks Tom, that's really helpful. From experience, I believe most people would prefer RStudio over VS Code for writing code, although I know a few of our users do use VS Code. I might have a go at installing the VS Code extension, but I'm currently keen to focus on getting the change out and getting some more feedback before doing too much more work. I also want to make it easier for us to roll out future changes too. Anyway, I'll get back to you if I do take a look.

I've played around a bit with the R vscode extension, the languageserver package, radian and httpgd. All seemed to install with minimal drama


Update EntityCollection.js

Added visualizer management.  No tests yet, will update with some if this idea gains any traction.

Thanks for the pull request @TJKoury!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.

Closing and opening an issue first.


FR: When adding devices to the Rack Elevation, have the option to select from existing devices.

I was thinking that it would be nice to have the ability to select from existing devices in NetBox when adding a device from the rack elevations view. I think the devices would show up in a drop down list and be filtered based in the tenant/site that the rack belongs too. This would allow for devices to be created and tracked in NetBox before they were racked and also allow the ease at which devices are added to the rack space.
Thoughts?

Thank you for your interest in NetBox. We require that all issues be submitted using the template provided here. This is to ensure that only valid issues are reported and that each issue includes all the information necessary for a developer to act on it. Please update your issue so that it matches the template (this may require rewriting your issue entirely). This issue will be closed in one week if it has not been updated. Thanks!


App crashes if you scroll down to the bottom without any filter

Problem
Right now we have 220 vaults and for various reasons, not all of them good, we have a lot of re-rendering of elements. Those two things combined slow down React. Adding an infinite loader library improved things, as it used to happen all the time.
Solution
I have a couple solutions that might work:
1- Decrease re-rendering: Figure out if we can optimize the app and remove some of the re-renders that happen.
2- Replace infinite scroll for react-window or react-virtualized. This might be the killer solution if we can make it happen.
3- Make one of the category filters something that always has to be selected. For example you can only see single assets, or LP tokens. This way users would not be able to scroll all vaults. This one is more a patch than a solution tbh.

was fixed here https://github.com/beefyfinance/beefy-app/pull/298


Absolute use path is erroneously stripped

Rustfmt is removing the :: prefix of absolute imports, which breaks when that import must differentiate between the crate of that name and a clashing module. An example:
$ cat src/lib.rs
// an empty module that shares the name of another crate, no problem
mod std {}

// i can access the original crate through ::std
use ::std::string;

$ cargo build
...
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s // <----- successful build

$ rustfmt --version
rustfmt 1.4.9-nightly (33e3667 2019-10-07)

$ rustfmt src/lib.rs

$ cat src/lib.rs
// an empty module that shares the name of another crate, no problem
mod std {}

// i can access the original crate through ::std
use std::string;      // <------------ note the removed :: prefix

$ cargo build
   Compiling fmt v0.1.0 (/tmp/fmt)
error[E0432]: unresolved import `std::string`
 --> src/lib.rs:5:5
  |
5 | use std::string;
  |     ^^^^^^^^^^^ no `string` in `std`

error[E0659]: `std` is ambiguous (name vs any other name during import resolution)
 --> src/lib.rs:5:5
  |
5 | use std::string;
  |     ^^^ ambiguous name
  |
  = note: `std` could refer to a built-in crate
  = help: use `::std` to refer to this crate unambiguously
note: `std` could also refer to the module defined here
 --> src/lib.rs:2:1
  |
2 | mod std {}
  | ^^^^^^^^^^
  = help: use `crate::std` to refer to this module unambiguously

error: aborting due to 2 previous errors

Sounds like a potential dupe of https://github.com/rust-lang/rustfmt/issues/3501.
Have you tried including edition either via --edition 2018 arg or in your rustfmt config file? rustfmt 2.0 will switch the default edition to 2018 but it currently defaults to 2015

Closing as a dup of #3501.