Analyzer 2.0.0 update conflicts with flutter stable branch

The latest update to use analyzer 2.0.0 still conflicts with the stable branch of flutter as the meta package is still on 1.3.0 and analyzer 2.0.0 needs the 1.7.0 version.
Error:
Because stacked_generator >=0.5.2 depends on analyzer ^2.0.0 which depends on meta ^1.7.0, stacked_generator >=0.5.2 requires meta ^1.7.0.

And because every version of flutter_test from sdk depends on meta 1.3.0, stacked_generator >=0.5.2 is incompatible with flutter_test from sdk.

use dependency_overrides.
dependency_overrides:
  meta: ^1.7.0


Current location problem

When clicking on "Use my current location", it writes on text input "Use my current location" and nothing seems to happen.
Normal autocomplete queries works perfectly.
<GooglePlacesAutocomplete
           placeholder={LocalizedStrings.search}
           minLength={2} // minimum length of text to search
           autoFocus={false}
           textInputProps={{
             onChangeText: (text) => {
               if (!text.length) {
                this.address = '';
                this.latlng = null;
               }
             }
           }}
           returnKeyType={'search'}
           listViewDisplayed={'auto'}
           fetchDetails={true}
           renderDescription={row => row.description || row.vicinity}
           onPress={(data, details = null) => {
            console.log(data, details);
            if (details && details.formatted_address) {
              this.address = details.formatted_address;
            }
            if (details && details.geometry && details.geometry.location) {
              this.latlng = details.geometry.location;
            }
           }}
           getDefaultValue={() => ''}
           query={{
             key: 'my_key',
             language: 'es', // language of the results
             types: 'geocode' // default: 'geocode'
           }}
           styles={{
             textInputContainer: {
              width: '100%',
              backgroundColor: 'white',
              borderTopWidth: 0
             },
             textInput: {
              backgroundColor: 'white',
              fontFamily: Fonts.regular,
              color: Colors.gray_regular
             },
             description: {
               fontFamily: Fonts.bold,
               color: Colors.gray_bold
             },
             predefinedPlacesDescription: {
               color: Colors.accent_color
             }
           }}
           currentLocation={true}
           currentLocationLabel={LocalizedStrings.current_location}
           nearbyPlacesAPI={'GooglePlacesSearch'}
           GoogleReverseGeocodingQuery={{
             // available options for GoogleReverseGeocoding API : https://developers.google.com/maps/documentation/geocoding/intro
           }}
           GooglePlacesSearchQuery={{
             // available options for GooglePlacesSearch API : https://developers.google.com/places/web-service/search
             rankby: 'distance'
           }}
           filterReverseGeocodingByTypes={['locality', 'administrative_area_level_3']} // filter the reverse geocoding results by types - ['locality', 'administrative_area_level_3'] if you want to display only cities
           debounce={200}
           renderLeftButton={()  => {}}
           renderRightButton={() => {}}
         />

In case anyone else has this issue, but still wants to display the row descriptions, changing nearbyPlacesAPI='GooglePlacesSearch' to nearbyPlacesAPI="GoogleReverseGeocoding" did it for me.

Hello, Its not a issue, see the renderDescription props
renderDescription={row => row.description || row.formatted_address || row.name}

Agreed, I shouldn’t have called it an issue and I think this can be closed. The problem was that OP (and myself) didn’t have nearbyPlacesApi set for GoogleReverseGeocoding, so results from row looked different on current location (or in this case, didn’t return at all because there were no || operators to fall back on).

textInputProps={{ onBlur: _.noop() }}
whereas _ is from lodash
this solved this problem for me


[gardening] Use consistent formatting for all top of file headers in the project

Looks great, thanks!


btrfs rootfs

Hello,
Is there any easy way to get the rootfs (otaimg) as btrfs instead of ext4?
I've been trying to make some changes in meta-updater/classes/image_types_ota.bbclass, it looks like this now:
MIN_BTRFS_SIZE="16384"
 if  ${OTA_ROOTFS_SIZE} -lt ${MIN_BTRFS_SIZE} ] ; then
 OTA_ROOTFS_SIZE=${MIN_BTRFS_SIZE}
 bbwarn "Rootfs size is too small for BTRFS. Filesystem will be extended to ${size}K"
 fi
 # create image
rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg
 sync
 dd if=/dev/zero of=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg seek=$OTA_ROOTFS_SIZE count=$COUNT bs=1024
mkfs.btrfs  ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg -L otaroot -d ${PHYS_SYSROOT}
rm -rf ${PHYS_SYSROOT}
But I am getting an error when trying to build my image:
ERROR: unknown profile /storage/mika/overlays/poky/build/tmp-glibc/work/raspberrypi3-oe-linux-gnueabi/remote-management-minimal/1.0-r0/ota-sysroot-MpZDO
I am trying to build the [rocko] branch on an [Ubuntu] machine
Thank you!

The error you're seeing comes from the usage of mkfs.btrfs which differs from mkfs.ext4 for some reason. It should be mkfs.btrfs ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg -L otaroot -r ${PHYS_SYSROOT} (-r instead of -d)
However, after fixing that, another cryptic error appeared:
| ERROR: unable to traverse directory ...build-qemu/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/ota-sysroot-VDmyv: 1
| ERROR: error wihle filling filesystem: 1
| ERROR: attempt to start transaction over already running one
| extent buffer leak: start 4440064 len 16384
| extent_io.c:607: free_extent_buffer_internal: BUG_ON `eb->flags & EXTENT_DIRTY` triggered, value 1

I don't really where this one could come from.

Hi @mihaelaapetroaie , your issue is probably related to the fact that mkfs.btrfs has slightly different interface than mkfs.ext*. This way it should work:
mkfs.btrfs --mixed -L otaroot -r ${PHYS_SYSROOT} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg
There is a high chance that you will encounter another issue related to mkfs.btrfs which was recently fixed (in devel branch).
If you are going to use u-boot (to load stuff from btrfs) - you will likely run into more issues (see 1 and 2).

Hello,
Thank you for your answers. I think I'll keep using ext4 for now. I'll experiment with btrf later, when I'll have a bit more free time.


Suggestion: Ability to add custom settings

Suggestion
It would be great to be able to add custom settings to control your websites behaviour in a simple matter.
A good location might be underneath the general settings section:

This would enable users to for example quickly hide/show sections of their websites with v-if etc. Otherwise everyone might end up implementing this in their own way.

This needs the ability to delete settings fields too so this can't be closed yet.


Server stalls when clicking quickly between pages

Steps to reproduce:
deno --version
deno 1.31.1 (release, aarch64-apple-darwin)

<EMAIL_ADDRESS>
Start a new Fresh project
deno run -A -r https://fresh.deno.dev my-project

Add two simple routes to link between:
// routes/index.tsx:
export default function Two(props) {
  return Two;
}

// routes/two.tsx
export default function One(props) {
  return One;
}

Run: deno task start
Then:

Open http://localhost:8000 in Google Chrome and click the "Two" link
Click the "One" link
Click the "Two" link
Click the "One" link
Click the "Two" link
Click the "One" link and wait ~60 seconds for a response

In Chrome Developer Tools > Network > Timing, Connection Start we can see Stalled for ~60s. Seems like we’re hitting the six TCP connection limit for HTTP.
This does not happen when DENO_DEPLOYMENT_ID is set, leading me to believe it was a problem with _frsh/alive.
So I believe the problem is that the alive stream’s cancel is never called, which can be confirmed with a console.log here:
https://github.com/denoland/fresh/blob/4bfab6a8a92e6cc62fe9e0e19d1ecdf2454f3487/src/server/context.ts#L421
I started digging into why that is and ran out of time. Possibly related:

https://www.reddit.com/r/Deno/comments/111xbtw/does_denolistentls_not_support_calling_cancel_in/
https://github.com/denoland/fresh/pull/995

I see this too, my reaction has been to restart the server.

Quick fix when running locally on HTTP/1.1 is to close the EventSource on beforeunload.
https://github.com/denoland/fresh/blob/4bfab6a/src/server/context.ts#L405
- `new EventSource("${ALIVE_URL}").addEventListener("message", function listener(e) { if (e.data !== "${BUILD_ID}") { this.removeEventListener('message', listener); location.reload(); } });`;
+ `let es = new EventSource("${ALIVE_URL}"); window.addEventListener('beforeunload', event => { es.close() }); es.addEventListener("message", function listener(e) { if (e.data !== "${BUILD_ID}") { this.removeEventListener('message', listener); location.reload(); } });`;

I've been hitting this issue for a long time, now reflexively / painfully restarting the server on page navigation.
Should Fresh swap Deno.serve to Deno.serveHttp for HTTP/2 support?
Deno.serveHttp
(or apply the HTTP/1.1 fix above)

Seems like @audionerd's quick fix would be accepted in a PR pretty fast.

I hesitated making a PR because that quick fix doesn’t really solve the core problem, and I didn’t fully understand why the connections aren’t being closed without it.
Hoping someone who better understands the server guts has time to take a look.

doesn’t really solve the core problem

The core problem seems to be a bug with browsers. Unless I'm misunderstanding something (which if very possible), we should do our best to make sure the UX is good even if browsers are messy.

I probably have misunderstood the issue, but still am in support of doing this quick fix. Is this a Deno bug or a browser bug?

Updated my comment. I think it’s a Deno or Fresh server bug.

Update: It’s probably not a server bug 🙃
As noted above, I thought it was weird that the SSE ReadableStream’s cancel is not called when clicking between pages, but I wrote some quick test SEE servers with both Deno std/http/server and Node/Express and they exhibit the same behavior.

Strange. I guess that means that we should just work around this and it's not the end of the world.

Yeah, to be clear, I’m in favor of the workaround PR being accepted.

Added my research here: https://github.com/audionerd/fresh-sse-issue-1079
Actually was able to demonstrate that a simple Deno std/http/server does not have the stalling behavior exhibited by Fresh, so I'm still confused. But that’s all I had time for today.


Add Dynamic In-Context Learning variant type

Plan:

implement (in a file) a good template for demonstrations that works with the TensorZero data model.
write a migration that sets up the table for DICLs
Proposed Schema:

CREATE TABLE DiclExamples
(
input String,
output String,
function_name LowCardinality(String),
variant_name LowCardinality(String),
embedding Array(Float32)
)
ENGINE = MergeTree()
PRIMARY KEY (function_name, variant_name);

cp -r haikus and use that as the initial example.
write a notebook that queries for either demonstrations or successful inferences and writes to the DiclExamples table

write DICLs in Python
try the haiku performance when doing retrieval with templating or with raw inputs / outputs
write an embedding model thing in TensorZero (only support OpenAI for now), add tests (PR this separately)
write DICLs in Rust (PR this separately)

Summary of 7pm discussion:

User can configure DICLs with system_instructions.txt or similar that gets templated into a system template that we hardcode.
That template contains:

those instructions,
system_, user_, assistant_ schemas if present
general description of the few-shot learning setup we are using.
Each example is a pair of a json of this form as a user message:
{
            "system": "You are a helpful assistant.",
            "messages": [
                {"role": "user", "content": "What's the weather like today?"},
                {"role": "assistant", "content": "it's 75 and sunny"},
                {"role": "user", "content": "Is it gonna rain?"}
            ]
        }

that is compliant with the schemas in the user message
and the output in the native output format(tool call, chat assistant message, etc)  (potentially several messages for someone like OpenAI, though that won't be handled at the Variant level).
These will alternate (one pair per example).
The final message will consist of just the input of the current request in a single user message.


cpu timestamps are incorrect on mac osx

This is causing issues for other HC data such as memory. For more information, see work item 115669

This has been resolved by #31


SPI DMA hanging under certain circumstances

Here is a demo of the problem: https://wokwi.com/projects/370955476071667713
You can remove the call to with_dma and the example works. This might be because transferring such a small number of bytes with DMA isn't possible, but I didn't see anything in the trm about this limitation, so it should just work.

Weird but it looks like the operation at least tries to go, the clock signal runs correctly, but MOSI is just firing out zeroes. Almost like its not actually sending the data we're telling it to, but something else.

From 2.4.5 of the esp32c3 trm:

Buffer address pointer (DW1) check. If the buffer address pointer points to 0x3FC80000 ~ 0x3FCDFFFF
(please refer to Section 2.4.7), it passes the check.

So I guess if we try and send data that might be in DROM i.e some const array it won't work :/. I'll double-check that this is what's going on, but this is my suspicion.
Even if it isn't, its something we need to handle, I can think of three options:

Error out (I think with #665 this should be the case?) and make the user deal with it
Keep around a static buffer for the device and whenever we encounter ROM data, copy into RAM first and then send it
Switch to non-dma spi mode for these transfers, copy via CPU & SPI FIFOs

Because its hard to control where consts are placed (especially if they're embedded inside a 3rd party crate), we have to implement either 2 or 3 here, IMO. I would be interested to hear others thoughts, in particular @bjoernQ.

This is somewhat similar to nRF52's EasyDma: IIRC it can only access the RAM, not flash. It might be worth checking how this issue is dealt with there.

So testing on real hardware using #665 I get the following output:
TRACE - Reset card..
INFO - Address of out buffer: 0x3C010454
0x3C010454 - .Lanon.f4747abe48f02cefea07fa6b9da986da.24
    at ??:??
ERROR - Transport error: DmaError(DescriptorError)

#665 is a step in the right direction, at least now it doesn't hang, but obviously we need to solve this.

This is somewhat similar to nRF52's EasyDma: IIRC it can only access the RAM, not flash. It might be worth checking how this issue is dealt with there.

Thanks! I'll take a look there.

Looks like in embassy, they just report an error: https://github.com/embassy-rs/embassy/blob/4db63677f6e56c52ea3d432542513967f5d93c69/embassy-nrf/src/util.rs#L24

Looks like in embassy, they just report an error: https://github.com/embassy-rs/embassy/blob/4db63677f6e56c52ea3d432542513967f5d93c69/embassy-nrf/src/util.rs#L24

Ah looks like they handle this in the actual impls by copying into a buffer: https://github.com/embassy-rs/embassy/blob/4db63677f6e56c52ea3d432542513967f5d93c69/embassy-nrf/src/spis.rs#L277-L285

This is also the case in esp-idf, although they have a heap and can alloc the perfect sized array. We will have to pick a size at compiler time (and be careful not to stack allocate huge arrays).

I have proposed two possible solutions in #677 and #678, I'd appreciate some thoughts on the ideas presented in those PRs. I think if we could find a clean way to make it seamless (#677) I would prefer that, but right now I'm not seeing how its possible.

To be honest when I implemented this, I wasn't sure if it's a good idea to implement the EH traits for a DMA-enabled SPI instance at all - and maybe it was a bad idea to do it
My concerns are EH doesn't state any requirements about the buffers but when using DMA there are such requirements.
What I mean is that in theory we should be able to use any code working with the EH traits and feed it a DMA-enabled SPI instance and it should work.
I'm not sure if we really need an explicit check on the memory region since I guess the hardware detects the problem already (seems like Wokwi doesn't -but it should)

To be honest when I implemented this, I wasn't sure if it's a good idea to implement the EH traits for a DMA-enabled SPI instance at all - and maybe it was a bad idea to do it
My concerns are EH doesn't state any requirements about the buffers but when using DMA there are such requirements.
What I mean is that in theory we should be able to use any code working with the EH traits and feed it a DMA-enabled SPI instance and it should work.
I'm not sure if we really need an explicit check on the memory region since I guess the hardware detects the problem already (seems like Wokwi doesn't -but it should)

Even if it is a bad idea to impl the blocking traits for SpiDma (which I personally don't think was a bad idea) we'd still run into this issue for the async traits, as they pretty much rely on the DMA for their asynchronousness.
The fundamental problem is that whether something is stored on the stack or in rodata is actually optimization dependant sometimes, this means even if users are careful they can still run into this issue. If the issue occurs within a driver, then they are stuck. I think we have to handle this in some capacity, whether its the two approaches provided above, or a third.
Another thought I had is defaulting to using SPI + FIFO (CPU) instead of DMA if the DMA is incapable of sending a specific buffer.

Closed via #678


facts: refact and optimize memory consumption (bp #5663)

there's no need to run this task on all nodes.
This uses too much memory for nothing.
Backport: #5663
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1856981
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>(cherry picked from commit f0fe193d8ec48414447aa4a7d50b1a9859c71295)

jenkins test centos-non_container-purge

jenkins test centos-non_container-switch_to_containers

jenkins test centos-non_container-collocation

jenkins test centos-non_container-update


Keyboard shortcut for schema / suggestions refresh

Quite often when creating or modifying objects on the server, I want to then immediately run statements against these objects (in the same session). Is there a keyboard shortcut that I can use to refresh the meta data information so the auto-complete knows about my changes?
Could it also automatically refresh on a timer? Eg, every 1 minute? (configurable of course)
Many thanks

You can refresh metadata in Database Navigator view (F5 on schema/database).
No, there is no auto-refresh feature.


TC-GC-1.2 Chip-tool-darwin testing: AttestationRequest, CSRRequest, AddNOC and CommissionComplete attribute were not present to send

As per the steps 5, 6, 7 and 8 in TC-GC-1.2, Controller needs to send  AttestationRequest, CSRRequest, AddNOC and CommissionComplete to the DUT but these attributes were not present in chip-tool-darwin to send.
The same attributes are required for TC-GC-1.3 as well.
Below is the screenshot of chip-tool vs chip-tool-darwin (Above list is chip-tool and below list is chip-tool-darwin). Chip-tool too doesn't have AttestationRequest, CSRRequest and AddNOC commands while CommissionComplete is present in chip-tool and is absent in chip-tool-darwin.

For the test TC-GC-1.2
I only see basic-commissioning-info missing. Commission complete is present in the output and for the rest that you mentioned, they appear to be under operation credential. See Output below:
○ ./chip-tool-darwin operationalcredentials
[1648060714610] [93511:7737721] CHIP: [TOO] Missing command name
Usage:
  ./chip-tool-darwin operationalcredentials command_name [param1 param2 ...]

  +-------------------------------------------------------------------------------------+
  | Commands:                                                                           |
  +-------------------------------------------------------------------------------------+
  | * add-noc                                                                           |
  | * add-trusted-root-certificate                                                      |
  | * attestation-request                                                               |
  | * csrrequest                                                                        |
  | * certificate-chain-request                                                         |
  | * remove-fabric                                                                     |
  | * remove-trusted-root-certificate                                                   |
  | * update-fabric-label                                                               |
  | * update-noc                                                                        |
  | * read                                                                              |
  | * subscribe                                                                         |
  +-------------------------------------------------------------------------------------+

This is working correctly.


Style sheet inheritance

I'm trying to apply a custom style to a component tree. Here is a condensed sketch based on my current AudioProcessorEditor implementation:
  juce::String style(
    R"({
      ".footer": {
        "background": "#ff00ff"
      }
    })");

  juce::String xml(
    R"(
      <Component width="550" height="600" padding="10">

        <Component>
         ...
        </Component>

        <Component class="footer">
          ...
        </Component>

      </Component>
    )");

  jive::Interpreter interpreter;

  auto tree = jive::parseXML(xml);
  tree.setProperty("style", style, nullptr);

  auto view = interpreter.interpret(tree);

The JIVE_GUI_ITEMS_HAVE_STYLE_SHEETS flag is set to 1.
According to https://github.com/ImJimmi/JIVE/blob/main/jive_style_sheets/README.md

Style sheets are hereditary, meaning that if a style property isn't explicitly defined for a component, the style sheet will inherit the style from the component's parent instead.

I was expecting the "footer" component to change the background color. However, this is not the case.
In this case, the background color is set successfully, but that's not what I actually want:
  juce::String xml(
    R"(
      <Component class="footer" width="550" height="600" padding="10">

        <Component>
         ...
        </Component>

        <Component>
          ...
        </Component>

      </Component>
    )");

Is there something I am missing?

Hi, yes this is a bug that I've fixed here on the plugin demo branch.
I'm just updating the docs to be a bit more verbose and then I'll merge

I've now merged that fix, could you let me know if it's fixed your problem?

It works perfectly now. Thanks for fixing it!


Allow command line interface for the exe

That way, the exe could be used in an automated ETL-process

Done: "-v" starts validation automatically


URL fails to open while using vscode.env.openExternal function.

Hi , I am facing one issue while using this function . The function opens a popup and when I Copy the link(using Copy button) and open it in browser it works but when I click on the Open button the link fails to open.
I see there is difference in URL in Copy and Open button.

URL from Copy button - https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fcanaccount.blob.core.windows.net%2Fron%2FARMTemplate-AzureSqlDatabase-DESKTOP-7MVF2-MSSQLSERVER02-2024-10-09-17-38-07.json%3Fsv%3D2023-08-03%26ss%3Db%26srt%3Dsco%26spr%3Dhttps%26st%3D2024-10-09T12%253A08%253A07Z%26se%3D2024-10-09T12%253A38%253A07Z%26sp%3Drwdlacupi%26sig%3Dx6HABHCXOcijCho56rs%252B0ltBhJehBBdNDM66xf1858E%253D
URL from Open button -
https://ms.portal.azure.com/#create/Microsoft.Template/uri/https%253A%252F%252Fcanaccount.blob.core.windows.net%252Fron%252FARMTemplate-AzureSqlDatabase-DESKTOP-7MVF2-MSSQLSERVER02-2024-10-09-17-39-39.json%253Fsv%253D2023-08-03%2526ss%253Db%2526srt%253Dsco%2526spr%253Dhttps%2526st%253D2024-10-09T12%25253A09%25253A39Z%2526se%253D2024-10-09T12%25253A39%25253A39Z%2526sp%253Drwdlacupi%2526sig%253DBdbbPUAkUGbv4HZN6Asmq7%25252BXlsJbdt5OJPTJz9Kdhcc%25253D
I am using the below code to generate URI-
private DeployToAzure(deployToAzureUrl: string) {
deployToAzureUrl = encodeURIComponent(deployToAzureUrl);
let scheme = 'https';
let authority = 'portal.azure.com';
let path = '/';
let fragment = 'create/Microsoft.Template/uri/' + deployToAzureUrl;
let query = '';
let uri = vscode.Uri.from({ scheme, authority, path, query, fragment });
void vscode.env.openExternal(uri);
}
I think the problem is because I am using encodeURIComponent method
Is there any other method that can be used to open  a URL ? Preferably where I can pass the URL as a string and the function just opens without doing any modification in URL

I think the problem is because I am using encodeURIComponent method

Try without that?

@jrieken
I can't skip encodeURIComponent. I need to encode some part of URl.

@jrieken  is there any API available or any other method that can be used?

I had the same problem. Both vscode.env.openExternal(Uri.parse(link)) and follow link
were invalid. Did anyone notice this? I downgraded VScode to 1.94.2 and everything worked fine.

I had the same problem. Both vscode.env.openExternal(Uri.parse(link)) and follow link were invalid. Did anyone notice this? I downgraded VScode to 1.94.2 and everything worked fine.

If clicking doesn't work, you can try restarting your computer to fix this problem. This is very strange.


Install buf from releases

hey @johanbrandhorst mind sharing what's the reason behind this change? I liked having all my tooling around tools.go and now having curl scripts in my makefile to download / install binaries seems like a drawback. Would love to understand better ther reason behind this change.
Preciate all your work in buf and the example projects that you maintain around that :pray:

Hi Marcos, thanks for reaching out! The only reason for the change was that some users were concerned that installing buf from source now requires Go 1.16, so I made the decision to change the script here to use the recommended installation path, which is to install from the binary releases.
Another concern with using the tool dependencies path is that all the dependencies of your tools become part of your dependency closure, which can sometimes lead to unexpected module versions being chosen by go modules. If you install from releases, it shrinks your dependency tree significantly (especially for a large project like buf).
Hope that makes sense and feel free to reach out on Gophers Slack or the Buf slack if you have anymore questions!

Hope that makes sense and feel free to reach out on Gophers Slack or the Buf slack if you have anymore questions!

Sure, thx!


[BUG] Push fails silently and pushes tags but no images

Version
redhat-actions/push-to-registry@v2
Describe the bug
Action runs successfully but fails to push images (though it does push tags) to Quay.io registry.
Steps to reproduce, workflow links, screenshots
Using this configuration:
 - name: Build image
  id: build-image
  uses: redhat-actions/buildah-build@v2
  with:
    image: myimage
    tags: latest ${{ github.sha }}
    containerfiles: |
      ./Dockerfile

- name: Push to quay.io
  id: push-to-quay
  uses: redhat-actions/push-to-registry@v2
  with:
    image: ${{ steps.build-image.outputs.image }}
    tags: ${{ steps.build-image.outputs.tags }}
    registry: quay.io/myregistry
    username: ${{ secrets.QUAY_USERNAME }}
    password: ${{ secrets.QUAY_PASSWORD }}

which appears healthy (??), I noticed that the registry was receiving tags but no images on what appeared to be successful actions. Looking at the logs, the first silent error appears here after Checking if the given image is manifest or not.:
/usr/bin/podman manifest exists myimage:latest   /usr/bin/podman manifest exists myimage:latest   Error: localhost/myimage:latest: image is not a manifest list
This error appears a few more times, then:
usr/bin/podman --root /tmp/podman-from-docker-Gff2z9 --storage-opt overlay.mount_program=/usr/bin/fuse-overlayfs pull docker-daemon:myimage:latest   Error: initializing source docker-daemon:myimage:latest: loading image from docker engine: Error response from daemon: reference does not exist
I'm also seeing double log lines for every log in this run. Have I configured things incorrectly? It looks as close as I can make out to the basic tutorial case. Thanks.

@budleigh will it be possible for you to share the complete workflow log?


Allow binary numbers and/or byte type literals

See the discussion in #7509.
Emerging from the interesting dust of modifying the tokenizer are two further points:

The tokenizer should be able to parse binary literals.
The tokenizer should support byte type literals.

The trouble here is that both of these suggestions could arguably use a b suffix for numeric literals.
My opinion is that the b suffix should be used for byte literals, in keeping with the current convention that suffixes alter the numeric data type rather than simply base representation.
So what about binary? Well, jcotton in the PowerShell Slack channel / irc / discord #bridge channel mentioned that just like common hex representations use 0xAAFF057, we could also follow the common convention of binary being similar: 0b01001011
From my brief poking about, it looks like we may have to alter System.Globalization.NumberStyles in order to add Binary as a flag value -- if we follow the current implementation of hexadecimal numerals. We don't necessarily have to.
TryGetNumberValue in the tokenizer.cs file would also have to be modified to accept possibly some kind of enum for number formats as well; currently it only accepts a bool for hex specification. ScanNumberHelper would also have to be modified for this.
The suffix approach is simpler, especially with the changes already in #7509 which make adding suffixes a good deal easier. However, given that we may want to reserve the b suffix for 123b byte literals, we may need to consider adding a case for 0b0010101 syntax.
What do you guys think?
Other suggested suffixes for byte literals:

ub
uy ( F# style) with y for signed bytes

+1 on:

b suffix is for bytes
0b prefix is for binary

My only problem is that the most convenient way to specify a byte will be in hex, and 0xffb can't specify a byte because its a valid ordinary hex literal.
It might not be possible to accomplish nicely, but my ideal would be able to specify a byte literal with hex.

We could adopt the uy suffix like F# for bytes, in that case?

Could we use 'ub' for bytes.

we could use anything we want, in fact. Just gotta code for it in the tokenizer... and I've had plenty of experience doing that recently :)

@iSazonov every language I've run across uses an 0b prefix for binary numbers. Plus using a prefix to change the base is consistent with 0x for hex.

If we take the F# route they also have y for sbyte which... I don't really know how useful it is, but it's a possibility.

We usually consider C# syntax first. In C# 7 we get '0b' for binary literals but there is still not exist a suffix for byte. I think we should try to find a discussion in .Net repos about the suffix - I guess they already have it. If the discussion is still not finished we have to postpone the decision on the suffix to keep a consistency with C# in future.
For binary we could support a format
var b = 0b1010_1011_1100_1101_1110_1111;

The link to Roslyn here seems to be defunct as they shifted to Github, but nonetheless the quote seems to indicate:
https://stackoverflow.com/questions/5378036/literal-suffix-for-byte-in-net
They went for zero ambiguity and decided sb for signed and ub for unsigned (since .NET bytes are default unsigned, but everything else is usually signed as standard).

I think it is here https://github.com/dotnet/csharplang/issues/1058

For me, the suffix b in general might be a bit lacklustre for byte simply because to a new user it could easily be read as bit, or binary instead and be confused. At least with y if they don't know they're probably more likely to actually look it up rather than guessing and being burned by it.
But I guess if we want to stick with parity we might want to stick with the most likely candidates for inclusion in C#.
It's also a non-zero possibility that implementing this in PS may affect the discussion of inclusion in C# as it remains open after almost a year.

I commented in csharplang repo.

Also want to note that underscore syntax you used there @iSazonov. I was thinking about the same thing the other night. I think it would be worth implementing underscore ignoring in numeric literals too (separate issue I know, but thought I'd raise it here first in case other people think it's stupid). It looks like C# 7, Java 7 and OCaml have this already, and it would certainly make sense alongside a binary literal syntax.

Yeah I think that:

0b is a pretty standard and unambiguous syntax for a binary literal
ub and sb are the best proposals so far for byte literal suffixes
There's actually a pretty good use case for all of these for network scripting amongst other things

I am completely in support of these ideas. Supporting the underscore syntax is a but weird for regular numbers, but I think implementing it at the general level is more sensible than trying to special case it for binary or hex, even if the use might be specifically handy there.
I think I can figure out the majority of these changes. Hex is already a supported way to go, so it'd basically be adding additional cases there. There's a Boolean hex value passed around in the tokenizer that would have to be removed and replaced with perhaps a NumberFormat enum or some such little thing.

@rjmholt I gave implementing underscore syntax a brief attempt because I'm already digging around the tokenizer like crazy anyway, and uh... it's literally just 4 lines of code to add that part in:

Binary and octal will be more (need dedicated helper functions to scan those digit types, but nothing terribly serious and both can basically follow the same pattern as hex scanning). Not sure how a TryParse will treat them, however, so it might prove challenging and may need a custom parsing solution there. Other than that, it's all straightforward.

I think 0b1101001 is the right way to go for binary literals. Literals in general use prefix notation. My initial reaction to 'y' for byte was ?? but it's grown on me (and fsharp uses it.) We've talked about allowing _ in numeric literals before and decided against it due to concerns with how it would fit into the ecosystem. Values move between strings and numbers in a lot of places in PowerShell and we were concerned that introducing _ might result in an inconsistent experience, especially for decimal numbers. (We also do things like hold on to the string representation of a numeric literal passed as an argument to a parameter of type object in case the user really meant a string.) It would be irritating if 123_456_789' worked but [int] "123_456_789" did not.  Likewise with [int]::Parse("123_456_789"). However, for binary literals, _ is much more important and binary literals are not supported by the ecosystem anyway, so yeah - at least for binary literals we should support _. (Hmm - maybe we can do a PR into CoreFX to get the parse methods to support _ , especially now that C# supports it.) And should we be strict with _ placement or just allow any number of _ characters? 0b__________________1 looks weird to me but it is it "bad"?

I don't think there's any particular reason to be overly restrictive about the syntax. Currently with hex notation in my test implementation, it does require that you start a hex sequence with 0x<digit> before using an underscore (so 0x_1 isn't valid but 0x10___01 is fine), but changing that would not be insanely difficult.
I can certainly see reasons to avoid implementing it in standard digit parsing, but as you say -- C# already supports it; I don't see a reason not to allow it. As for parsing strings manually, it would be nice to have that consistent from CoreFX's end, though even presently in C# Int32.TryParse() doesn't seem able to handle digit strings with underscores. It seems more implemented as a utility for the programmers rather than users in any fashion.
However, with PS bringing scripters and users much closer, not requiring source to be compiled... it would make a decent amount of sense to just tweak the parsers to ignore those characters in a similar fashion.

One thing about NumberGroupSeparator is that in the English locales it's going to be ,, which won't work in actual PowerShell literals.
If we want to reuse NumberGroupSeparator for number literal parsing, we may run into locale issues, and it may be more trouble that it's worth.

When considering being more permissive, do keep in mind that tokens that today are number like, but not exactly - might be a valid command name. Consider the following (all valid today):
function 0xbadf00d { "I might be feeling sick" }
& 0xbadf00d    # Calls the function
0xbadf00d      # The number 195948557

function 0xbad_f00d { "I might be feeling sick" }
& 0xbad_f00d    # Calls the function
0xbad_f00d      # Also calls the function

Note that command name could be an external command, it doesn't need to be PowerShell.
It's certainly possible there aren't any real commands this proposal will affect, but it's worth calling out as the proposal expands in scope.

Sure, you can have an external command or a function that looks like a number and might be read as a number. Those are pretty few and far between, though; it generally doesn't lend itself to being memorable or useful, though.
Granted, being too permissive with underscores could end up being undesirable (not to mention lead to code obfuscation techniques utilising them as well), but if we wanted to limit it to no more than one consecutive underscore, I don't think it would be overly complex.

Sometimes PowerShell is too flexible. I believe we should avoid numeric like command names. Of cause we can have 123 executable - in the case best practice should be to use & or Invoke-Command.
It is clear that the enhancement is a breaking change (Unlikely Grey Area).

I'm in agreeance there. Numeric executables can be invoked with & or just from the directory with .\123.exe sort of idea.
Sure, it might break something, but (in my humble opinion) if you are using something named that nondescriptively... you probably have bigger fish to fry. 😄

In generated code, all bets are off, one might use seemingly random names to avoid potential conflicts.
Minimizing potential breakage is not difficult, so I see no reason to be overly permissive.

I believe your question is for PowerShell Committee too.
I think we should keep the same logic:

if we have suffix then convert to the explicit type
otherwise convert to type with minimal size. Although Powershell works by default with int, this default conversion can also be to int.

@vexx32 Thanks for great investigations!
I have big concerns about underscore support. Cultures define numeric delimiters and applications like Excel use them. If we add numeric delimiter like underscore this can confuse users which will expect culture delimiter. This happens now with the datetime formats.
Second concern is that supporting underscore only in hex and binary again can confuse users which will expect that we support the delimiter in all numerics.
I'd suggest to postpone the underscore support until we collect many community feedbacks.
As for parsing. I am sure that we must follow the current logic.
It means:

If suffix define target type we should fail if overflow.
Without type suffix we shouldn't limit and should convert up to BigInteger even for binary, hex and unsigned (we can always add leading zero to get unsigned numeric (BigInteger too)).

I hear you, underscores are a bit odd, and I don't think any culture-format representations of numbers use them. But I think that's sort of why C# went to that direction; it'll be more or less a constant in the code, and is effectively just a readability helper for longer numerals, not being bound to culture constraints and just being an 'ignored' character in numerals.
The tricky part with binary going higher than (U)Int64 is that... there are no available conversion methods for a binary numeral that high. Decimal, Double, and BigInt simply don't have the conversion methods available.
I'm sure I could roll a parser for such a thing, but in trying to do so I ran into a bit of a stumbling block: the existing conversion methods use the two's complement method of dealing with the sign bit, and frankly I don't really understand how they do it. Every example I've found (so far) of two's complement conversions seems to give me differing results to how the .NET methods handle it.
This is primarily going to be input in console or scripts that this will be handling, so I would be very surprised if anyone was going to go the sheer effort to put together a binary literal over 64 characters in length. Given that C# has no support for extremely large binary literals, should we?
I suppose it's a matter of does the parity matter here; I doubt anyone's going to be handling giant hex literals either, but in that case it's significantly easier to do, and the numeric TryParse methods have an easily available conversion method that works for BigInteger without much tweaking.

why C# went to that direction

C# is only program language. PowerShell is program laguage, applications and interactive console. If we add new input format (underscope? culture delimiter?) users will ask why we don't add output format (underscope? culture delimiter?). Initially we only consider underscope for script constants but we is still interactive.

The tricky part with binary going higher than (U)Int64 is that... there are no available conversion methods for a binary numeral that high. Decimal, Double, and BigInt simply don't have the conversion methods available.

It is not big problem to implement this. We could look Roslyn code.

Given that C# has no support for extremely large binary literals, should we?

C# is strong typed. It must limit/overflow.
As I said we should follow the same logic for all numerics to avoid confusing users. I would be very surprised if I wrote a number of one hundred '1' then added a prefix '0b' and got an error although the number would be less then first one!
(Sometimes users do amazing things like games on Excel or PowerShell and we should not artificially limit them)
If we want limits we should remove BigInteger at all - I do not think that someone is studying astronomy on PowerShell :-)

Sure, we could, but wouldn't it be better to leave that side of things to the .NET Core team to implement? Currently, BigInteger isn't implemented in any part of the Convert class, having mostly its own methods (it even has its own Pow method, because Math.Pow doesn't support it).
Hey, if you build it, they will come! I'm sure if we supported it, astronomers would become an integral part of the PS community! 😉
I guess it makes some sense that it should be pretty even across the board in terms of how it handles the bases here, but short of implementing things that really might be better implemented in CoreCLR itself, I don't know that there's a better solution.

We can open the feature request in CoreFX but I think we will wait very long - Roslyn internal implementation is an example. Also we speak more about PowerShell feature - do PowerShell users want have this or not? I would simply say that we need to cover all the numerics.
Again if we already have BigInteger as edge case for some numerics why haven't it for binary?
On the other hand, we do not get a super feature if we implement this. I agree with Uint64 limit too.

I would like to cover it for all the numerics, absolutely. But as mentioned... I need to figure out how they're doing it. I went hunting for the CoreCLR Convert.cs implementations, but the ToInt64(string, int) is... not there. I can't find where they're defined. And I'm sure I'm just not familiar with Roslyn's site yet, but I can't seem to find it anywhere there either.

We could convert by UInt64 chunks and then do BigInteger multiple() and add() in cycle.

Hmm. Interesting thought. Currently I'm working with this sort of framework as the 'fallback' (when the lower-order, probably more efficient parse methods fail):
private static bool TryParseBigBinary(ReadOnlySpan<char> digits, bool unsigned, out BigInteger result)
        {
            BigInteger value = 0;
            unsigned = unsigned || (digits[0] == '0');

            for (int i = 0; i < digits.Length; i++)
            {
                if (digits[i] == '1')
                {
                    value += BigInteger.Pow(2, digits.Length - i - 1);
                }
                else if (digits[i] != '0')
                {
                    result = 0;
                    return false;
                }
            }

            result = unsigned ? value : (value - BigInteger.Pow(2, digits.Length));
            return true;
        }

It seems to work fairly well. I'm not sure whether there's a more efficient method to get the two's complement. I can imagine that that Pow() operation on BigInteger is probably not incredibly efficient, but I don't really see a way to avoid that one.

Let's wait PowerShell Committee conclusion about that we should implement.

@PowerShell/powershell-committee reviewed this and would accept the proposal for a 0b prefix for binary literals and y suffix for bytes (required to disambiguate from the valid b hex digit).

taking notes
Alright, awesome. Soon as #7813 is merged I have the code for this ready for review as well. 😁

As I polish up the remainder of this code for the follow up PR, I just want to make a note that I did attempt to look at octal syntax (a la 0o722 as @rjmholt suggested) but ultimately found that the overall parsing support is about as poor as binary.
I briefly attempted to construct a workable solution, but found it was littered with strange edge cases when attempting to determine the intended numeric data type from MaxValues -- 1777777 and 3777777 are patterns that crop up quite a bit, and I frankly do not understand how the sign bit is being represented or parsed in the .NET Convert.ToInt32 or similar functions when parsing octal strings.
I will leave that floor open for anyone else who wishes to take a stab at it, but for the time being I have and will submit after this weekend:

Binary support - 0b101011011 which respects signing bits as much as seems feasible

BigInteger-size binary values (which are impractical at best, but supported) always treat the high bit as sign bit regardless of numeric literal length.

Support for underscore syntax in all numeric literals. Underscores are permitted between two numeric characters only.

Works: 0x0_1 0b110_001 1_99_0_0 1_2e1_2
Parsed as generic token: 25__01 _0x2 0_x2 1_ 0b1_ 0x_1

Byte suffix y for signed byte, can be added to u as uy for standard byte.
BigInteger suffix I (yes capital I only) to designate any numeric literal to be handed back as BigInteger.

Yes, it's a bonus. Parser already uses it for non-real numerics anyway, so we may as well make it useful, and it has a short type accelerator already.

And I refactored a bunch of the numeric parsing to cut down the number of TryParse calls to three (one for decimal, double, and bigint) and then use helper functions to safely just cast into lower types as needed.
(You bet I'm reusing this comment for the PR description in large part, ha!)

@vexx32 We need to get PowerShell Committee approval for underscore syntax, octal syntax and I suffix.
As I commented above I'd postpone underscore syntax. Also I'd postpone octal syntax and I suffix until we get feature request for a real business scenario.

I suppose that's fair enough. Those aren't hard to take out if I must. 😄
Was mainly aiming for completeness, really. But yes, I suppose we'd need approval for the underscore thing and the bigint.
And octal... man. I've discovered trying to code for octal is thoroughly difficult, because the types are bounded in powers of 2, not powers of 8; base 16 lines up very neatly, thankfully, but base 8 is not nearly so lucky!

@SteveL-MSFT did the committee discuss underscore / BigInt support at all? Should I open an additional issue for that specifically?

I think the issue is enough.
And please keep follow PR(s) as small as possible. We could add 0b and y without any optimizations. Then improve performance in follow PR.

I suppose that does make some sense. I'll look at adding the functionality with minimal modification...
Thanks for the suggestion! 😄

some hours later
And once again I run into the same issue doing so that caused me to refactor things more thoroughly in the first place. Namely, that TryParse methods can't be used with binary.
So there's no real way to do that without either refactoring things or almost completely duplicating an entire code branch in the tokenizer, which... I'd really rather not, heh. It's just far more messy and error-prone than I think anyone would want a binary parsing method to be.
Well, the code is written as well as it can be to my eyes, so I'll strip it down to the approved specifications and we'll go from there. I don't see a better way to do it and still keep the binary parsing functional.

@vexx32 Let's pull PR with y only. After that we'll be thinking about 0b and optimizations.

Sounds good to me!

@vexx32 @PowerShell/powershell-committee did not discuss underscore/bigint.  I'll remark this for review.

Thanks Steve!
@HumanEquivalentUnit and I have discovered a new BigInteger constructor introduced in .NET Core 2.0 and have been toying with parsing binary using it:
public BigInteger(ReadOnlySpan<byte> value, bool isUnsigned = false, bool isBigEndian = false)

Benchmarks of a bunch of different methods are looking very good indeed. Some of the slower possible methods we've come up with (he's been doing a lot of the tinkering here) are still about twice as fast as Convert.ToIntX() methods, even with smaller numbers. 😄

@SteveL-MSFT We need PowerShell Committee conclusion to continue, please.

n is a pretty decent alternative... I'd rather not cause confusion for those more mathematically inclined, I think. Worth considering also, definitely.
(And since it's trivially easy to implement complex numeral parsing, I'd rather not completely block that out as a possibility by taking i as a suffix here, although in our target userbase I doubt there's a lot of use for it.)

@SteveL-MSFT @mklement0 @iSazonov
I have attempted to summarize the main discussion points from #7993 as best I can to assist with committee review of the primary sticking points on that PR. 😄

@PowerShell/powershell-committee reviewed this, regarding the underscore, we do not accept adding that as it can cause issues with existing usage as @lzybkr pointed out.  Also, we do not want auto coercion from long to bigint as not only is this a breaking change, but may cause surprising effects to users.


Allow having extra modules in lock-file

Context
This allows having lock files for configurations that dynamically resolve dependencies for different build platforms.
For example; a configuration might include abc-linux.jar for only building in linux platforms and abc-mac.jar for building on a mac. As of currently, there's no way to have a lock file that supports this case. If you try to add both, dependency manager will throw an exception.
I also understand java is platform independent, but we can also look at other use cases. We may have a configuration that looks at a custom flag passed in gradle build --custom-flag which might then add an extra dependency (nothing to do with platforms at all). The above example relating to platforms is simply our current use case.
This change allows to have both versions locked down in the lock file, but not throw an error for having an extra module version stated in the lock state.
Only caveat; The original lock file needs to be generated using --write-lock but the required dependencies can be then manually modified to allow both.
For more info: https://github.com/gradle/gradle/issues/6472
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[x] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[x] Update User Guide, DSL Reference, and Javadoc for public-facing changes
-- N/A
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:check

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@melix @ljacomet Sorry, I didn't have permissions to add the reviewers. Please let me know if there's anything else that needs to be done from my end. Thanks

@ljacomet do you think this can make it to 4.11? Thanks!

Closing as it's not the approved solution.


Ca api

Was able to just switch to the new basic authenticator.
@raphael can you please review. Please be brutal as
I have tested this against cobalt-403 (ca1), moo (moo-analytics) and my (analytics) and all working well!!!!
@alikhajeh1 I know you will also be interested in this.

Code Coverage is 80.2%, details at https://s3.amazonaws.com/rs-code-coverage/rsc/2015-06-19_316_Coverage-80.2.txt (sometimes the URL can take a few minutes to be available)

@callumD nice one! I look forward to playing with this.

Code Coverage is 80.2%, details at https://s3.amazonaws.com/rs-code-coverage/rsc/2015-06-21_318_Coverage-80.2.txt (sometimes the URL can take a few minutes to be available)

Code Coverage is 80.2%, details at https://s3.amazonaws.com/rs-code-coverage/rsc/2015-06-21_320_Coverage-80.2.txt (sometimes the URL can take a few minutes to be available)

Code fixed up @raphael can you please re review. If you are happy I will squash and merge.

Looks good

Code Coverage is 80.2%, details at https://s3.amazonaws.com/rs-code-coverage/rsc/2015-06-22_322_Coverage-80.2.txt (sometimes the URL can take a few minutes to be available)

@raphael I have squashed but I have no idea how we release this. Is it safe for me to merge?


Napari on Windows

📚 Documentation
Hey @sofroniewn ,
I ❤ your announcement on the image.sc forum and thus had to try Napari on my Windows. So the installation works fine apparently, but the example script from the readme doesn't:

AttributeError: module 'napari' has no attribute 'view_image'

Are maybe just the examples outdated?
Thanks in advnace!
Cheers,
Robet

@haesleinhuepf :wave: great to see you here! =) You should install the version from GitHub or wait ~12h before pip installing with --update. =) @sofroniewn is about to release v0.2 which includes the new functions.

Waiting 12h sounds like an amaaaazing solution 😃
Thanks guys! Looking forward to explore the second island on the other side of the planet ;-)

Looking forward to explore the second island on the other side of the planet ;-)

Nice pickup. :wink:

@haesleinhuepf this should now be fixed - 0.2.0 has been release on pypi, ~12 hrs later!!
great to here that your windows worked ok, i think we might be having some issues with openGL on older systems, but we havn't figured it all out yet

oh actually now that i think about it, you havn't seen an image yet - so the windows problem might still come up :-(
If you get a black screen after adding the image and the error message described here https://github.com/napari/napari/pull/551#issuecomment-536347310 then we'll need to fix it

Unfortunately, it still comlpains about a missing method:

AttributeError: module 'napari' has no attribute 'view_image'

To be honest, to me this doesn't look like a windows problem....
Any hints would be helpful!
Thanks!
Cheers,
Robert

@haesleinhuepf good morning! =D
I was puzzled and was in the process of creating a clean enviroment to test... until I saw your image: your file is called napari.py, and the local directory is at the top of sys.path. So, you are trying to import napari.py from itself, instead of the installed napari! Renaming your file is the answer. =)

our file is called napari.py
Oh no! This totally never happened to me before 👼 ;-)

Ok, changing to "nap.py" helps a bit:

The error message is now:
WARNING: QWidget: Must construct a QApplication before a QWidget

... and no window opens.
Before you dig deeper now. Is there an entry on the napari roadmap for Windows compatibilty? And if yes, when will it be? I would be happy to volunteer as tester!
Cheers,
Robert

Hi Robert, if you're running from a script like that you need to create a gui context before you can launch the Viewer. You can do this as follows:
from skimage import data
import napari

# create Qt GUI context
with napari.gui_qt():
    # create a Viewer and add an image
    viewer = napari.view_image(data.astronaut(), rgb=True)

We've got a little more detail on this on our tutorials page here https://napari.github.io/napari-tutorials/tutorials/getting_started.html which is still a bit of a WIP.
So far you still havn't hit the potential windows problem. Thanks for being so persistent! We definitely need to improve some of our docs / readme on this process.
As to windows testing, we need to get a bit of a handle on how what the characteristics of windows systems that we're failing on are, as I know it's not all windows systems, but it does seem to come up consistently. Here's the same issue, but raised in the underlying visualization library which we depend on - https://github.com/vispy/vispy/issues/1688. Understanding this is a top priority for us, but we're somewhat limited by our access to different windows machines. I really hope that over the next month or so we at least come to a complete understanding of the problem, if not a solution.

Roadmap? Ideally we should have it working right now! We just don’t have anyone on our team regularly using Windows, so it makes it challenging. We absolutely would love your help with this!
The message is very strange because the --gui=qt flag should have created the QApplication for you... would you mind trying with plain python and our napari.gui_qt() context manager?
Actually, I also wonder if you should first launch ipython with the gui qt option and then use %run -i nap.py. I seem to remember that there is some sort of race condition with the flag: IPython will start running the script before Qt has finished initialising. Check that also?

... Speaking of race conditions... 😂

It works!

Thanks for your support! Again, I'm happy to help testing.

It works with both
ipython --gui=qt nap.py

and
python nap.py

Using the code snipped @sofroniewn suggest: with napari.gui_qt(). Without the snippet it doesn't work in both cases.

@haesleinhuepf whoo! That's great!!
If you were able to do some systematic testing on windows machines with different gpus that would be amazing!!! If you could both check if napari was able to launch and show an image and then run
import vispy
print(vispy.sys_info())

and look at the GL version on those machines that will tell us a lot about what is / isn't working (on the computers where it fails it will likely not find a GL version).
Thanks!! Nick

@sofroniewn Sure! You helped me, I'm happy to help you! 😄
I just tested on three systems and it worked in all cases!

"finley" Intel i7-1065g7 (Intel Iris Plus GPU)
"ulice" napari throws a warning, Intel i7-8565U (Intel UHD 620 GPU)
"shannon": AMD Ryzen 3700U (Vega 10 GPU)

All run on a recently updated Win10 64-bit. I saved the output here:
https://github.com/haesleinhuepf/napari_playground/tree/master/logs
As soon as I walk by a system with an NVidia GPU (our microscope workstations have those), I can test there as well. As soon as I hit a system where it doesn't I'll let you know.
So far it looks good! Thanks again for your great work!
Cheers,
Robert

That's great, I really appreciate the thoroughness and the logs repo. I'm feeling much better about our windows compatibility now.

Nice to see your here @haesleinhuepf !
Definitely help on windows system would be great!
Be warned...  Once you go napari you never go back ;-/

Hey @royerloic 👋, you said sth similar about OpenCL to me about two years ago - and you were right 😉

I'm going to close this issue now as it was originally about an older release, and we are able to run on multiple windows configurations. If new windows users come along with new problems it might be best to open up a new issue rather than keep going on this one, but we can also always reopen this one if needed


using the switch of the GET/POST method from the driver settings

Alert support always sends a request only using the POST method, ignoring the data source settings.
This fix gets the GET / POST request method setting from the data source settings in the backend.

@it1804 thanks a lot for contributing, also for future PR, if you want to apply your changes immediately, please run docker-compose run backend_builder docker-compose run frontend_builder and add dist folder to PR


Update _buttons.scss

Added "user-select: none;" feature for the button, with this feature .btn would be more like a real button.

Thanks!


Update CoreAudio to 1.17.0

Updating CoreAudio to 1.17.0 will provide full Audio Device friendly names (eg. Speakers (Realtek(R) Audio) instead of just Realtek(R) Audio as mentioned in #44

Yay a PR, thank you @tachibanayui! One small typo though, in AudioSensors.cs, r210:
DeviceState.Dsiabled => "DISABLED",

Ah I just noticed that's the dev's typo, it's fixed in 1.18.0. He also renamed a bunch of other things in there, I'll merge this PR and then do the next upgrade.
Thanks, just in time for the new release :)


DOC: Update testpypi install command

When following the release guide, installing from testpypi using the
-i flag failed on my, and at least one other's, development machines.
The cause of the failure appears to be that pip would look for packages,
such as LogBook or pandas on testpypi. However many dependencies
do not have versions that meet our version criteria. (e.g. pandas does
not have a version between 0.16.0 and 0.18.0 on testpypi.)
Instead, use --extra-index-url so that other packages can use pypi
as a fallback server, instead of being limited to testpypi.

Makes sense to me.

The command should use testpypi as the main index and have normal pypi as the fallback index, otherwise installing zipline will come from real pypi and that will not test the new upload.

$ pip install --extra-index-url https://testpypi.python.org/pypi zipline
Collecting zipline
  Downloading https://testpypi.python.org/packages/65/79/c2974d2ed3ca20f45d2f28ca46155c2d01ccdf01c0d44b9823eed19bade5/zipline-<IP_ADDRESS>.tar.gz (392kB)
    100% |████████████████████████████████| 399kB 2.7MB/s

Coverage remained the same at 86.659% when pulling f31cabeada490596f710eeda31dc6bce5178b35b on install-from-testpypi-doc-fix into 1ccc9e4b644ab5abda7e1b74587f3eb571cee9c0 on master.


[13.0.x] ISPN-13461 Cache should stop if the initial state transfer times out

https://issues.redhat.com/browse/ISPN-13461

Related test failures

Checking

Test is fixed, guess the exception is different on main.

Merged, thanks


ModuleGen should have a typed and erased versions, like all other module types.

Currently it has only erased version and it's kind of weird.

I also need it to properly fix #1302

@mxz42 It might be already on your radar?

@mxz42 Right.
You don't mention a blanket impl<T> IModuleGen for T where T: ModuleGen... so mentioning it for completeness.

this can be closed? @dpc


cognitive-services-container-support broken link

This issue was submitted to site feedback by @bootsinthecity
Describe the bug
Container Recipes Link is Broekn
To Reproduce
Steps to reproduce the behavior:
Go to 'https://docs.microsoft.com/en-us/azure/cognitive-services/cognitive-services-container-support#next-steps'
Click on 'container recipes'
See 404 error
Expected behavior
I expected to see another webpage.

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

ID: 471c94dc-0175-5575-0d82-484e9c8db0b4
Version Independent ID: f441d4c5-cd5c-0557-bdf0-e97c18cf5597
Content: Container support - Azure Cognitive Services
Content Source: articles/cognitive-services/cognitive-services-container-support.md
Service: cognitive-services
GitHub Login: @IEvangelist
Microsoft Alias: dapine

Hi @ryanmajidi Thank you for your feedback! We will review and update as appropriate.

@ryanmajidi Thanks for pointing out the issue in our documentation.
@IEvangelist It looks like the document needs an update to fix the broken link to container recipe. Could you please take a look at it and update the document as necessary?

Hi @RohitMungi-MSFT, @mike-urnun-msft and @ryanmajidi,
I have a fix in to address the issue. Thank you for bringing it to my attention. The fix should be live later today.

#please-close


Add Documentation for New Meltano Metrics

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/157
Originally created by @pnadolny13 on 2021-11-03 16:44:59

The meltano metrics should link to documentation about what they are and pull in the audit.yml to show when they were last updated.

View 2 previous comments from the original issue on GitLab


Drop support for ktlint-enable / ktlint-disable directive

The directives below can be used to suppress ktlint rules:
val foo = "foo" // ktlint-disable

/* ktlint-disable */
val foo = "foo"
/* ktlint-enable */

The usage of Suppress and SuppressWarning annotation however is more native and should be the only way starting from 1.0 version:
@Suppress("ktlint")
val foo = "foo"

Ideally, a rule is added which helps in autocorrecting the old directives to annotations. If this is implemented, take care that this rule itself should not be suppressed even in case for a line, block or file all annotations are suppressed.

Using Github Code Search some insight can be collected in how the old directives are used. Unfortunately, the total number of search result is currently limited to 100 results. By excluding based on repository, some more insights can be collected but this is also limited. In summer 2023 a new search API is expected which should be able to return all search results.
Insights sofar:
If a single construct is surrounded by a block directive, it should be replaced by an annotation on that single construct:
        /* ktlint-disable max-line-length */
        private const val URI_REGEX = "^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?://)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)"

        /* ktlint-enable max-line-length */

However if the directive block contains multiple statements, it can not be simply replaced with a Suppress on the first (nor on all statements). Moving the Suppress to an outer construct is not always equivalent to current situation:
    @Test
    fun testParseStringForHybridFileParcelable() {
        /* ktlint-disable max-line-length */
        // ls
        val lsLines = arrayOf(
            "-rwxr-x---   1 root   shell    29431 2009-01-01 08:00 init.rc",
            "lrw-r--r--   1 root   root        15 2009-01-01 08:00 product -> /system/product",
            "drwxr-xr-x  17 root   root      4096 1970-05-19 08:40 system",
            "-r--r--r-- 1 root root 10 1970-01-13 07:32 cpu_variant:arm",
            "lrwxrwxrwx  1 root root 0 2022-10-05 15:39 ac -> ../../devices/platform/GFSH0001:00/power_supply/ac",
            "lrwxrwxrwx   1 root root 0 2022-10-05 00:16 usb -> ../../devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/usb"
        )

        // stat with old toybox or busybox
        // val a1 = "-rwxr-x--- 1 shell root 512 2009-01-01 08:00:00.000000000 `init.rc'"
        // val b1 = "lrw-r--r-- 1 root root 512 2009-01-01 08:00:00.000000000 `product' -> `/system/product'"
        // val c1 = "drwxr-xr-x 17 root root 512 1970-05-19 08:40:27.269999949 `system'"

        // stat with new toybox
        val statLines = arrayOf(
            "-rwxr-x--- 1 shell root<PHONE_NUMBER>800 `init.rc'",
            "lrw-r--r-- 1 root root<PHONE_NUMBER>800 `product' -> `/system/product'",
            "drwxr-xr-x 17 root root<PHONE_NUMBER>7 `system'",
            "-r--r--r-- 1 root root<PHONE_NUMBER> `cpu_variant:arm'",
            "lrwxrwxrwx 1 root root<PHONE_NUMBER>558 /sys/class/power_supply/ac -> '../../devices/platform/GFSH0001:00/power_supply/ac'",
            "lrwxrwxrwx 1 root root<PHONE_NUMBER>626 /sys/class/power_supply/usb -> '../../devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/usb'"
        )
        /* ktlint-enable max-line-length */

        ....
    }

In example below, the block directive should be replaced with a file-annotation or the annotation must be interpreted as being relevant for the entire import list (but what if the annotation is not placed just before the first import?):
/* ktlint-disable import-ordering */
import android.app.Notification

In case below, the same EOL directive is repeated multiple times, but not on all lines.  Usage of the block directive would have been a better choice in this example. But this is similar to one of problems mentioned before:
  val result = CharArray(16)
  result[ 0] = HEX_DIGIT_CHARS[(this shr 60 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 1] = HEX_DIGIT_CHARS[(this shr 56 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 2] = HEX_DIGIT_CHARS[(this shr 52 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 3] = HEX_DIGIT_CHARS[(this shr 48 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 4] = HEX_DIGIT_CHARS[(this shr 44 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 5] = HEX_DIGIT_CHARS[(this shr 40 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 6] = HEX_DIGIT_CHARS[(this shr 36 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 7] = HEX_DIGIT_CHARS[(this shr 32 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 8] = HEX_DIGIT_CHARS[(this shr 28 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[ 9] = HEX_DIGIT_CHARS[(this shr 24 and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[10] = HEX_DIGIT_CHARS[(this shr 20 and 0xf).toInt()]
  result[11] = HEX_DIGIT_CHARS[(this shr 16 and 0xf).toInt()]
  result[12] = HEX_DIGIT_CHARS[(this shr 12 and 0xf).toInt()]
  result[13] = HEX_DIGIT_CHARS[(this shr 8  and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[14] = HEX_DIGIT_CHARS[(this shr 4  and 0xf).toInt()] // ktlint-disable no-multi-spaces
  result[15] = HEX_DIGIT_CHARS[(this        and 0xf).toInt()] // ktlint-disable no-multi-spaces

References to old experimental rule set should be replaced with standard:
        /* ktlint-disable experimental:argument-list-wrapping */
        fixture.getSut(replacements = mapOf(Replacement.FileInputStream.STRING))

In example below, the block directive should be replace with a file annotation:
/* ktlint-disable */
@file:Suppress("PackageName", "TopLevelName")


Autocomplete strings?

I've noticed that autocomplete does not work for strings. Would this be possible to add? for example I have the following:
type Color = 'blue' | 'red' | 'green'

let color: Color

color="b"

I would expect if the cursor is after the b in the last string to have an autocomplete menu with blue as an option.

Right. This is a holdover from way back. Hopefully fixed in v13.2.1


#68: Added support for OrganizationNummer

Type of change

Added Organization number and a factory that can create both Personnummer and OrganizationNummer

Related issue
#68
Motivation
Adds features so that even Organization numbers are supported

Hi!
Thank you for the pull request.
As mentioned in #68 , Org nr is out of scope for the personnummer package. We have a separate package for organisationsnummer  which makes use of the personnummer lib to allow for "Enskild Firma". So it can be used as an extension for it.
Currently it's only published to the github package registry, but I'll try to get it published to maven central asap.


deleteBackward or keyPress event for Textfield

One of the requirements for the project I am working on currently requires performing an action when delete key is received by the TextField widget. Particularly, there is no way to detect that delete was tapped when there is no text in the TextField.
I'd like to propose an onDelete event, or onKeyPress(keyCode) event, propagation to the end user. Please let me know your thoughts.

I believe the soft keyboard on either Android or iOS doesn't actually expose key level events like delete or key press, it only tells us what the current string is.
For Android, see https://stackoverflow.com/questions/4886858/android-edittext-deletebackspace-key-event.
cc @gspencergoog

The engine already taps into UIKeyInput (iOS) and InputConnection (Android), we could leverage this into forwarding keys to the plugin. Sample implementation for iOS in https://github.com/SnowXD/engine/commit/fc5197d101645e001de9d8d50974758282cbb095.

Is this already implemented for current version?

@kangfarih Nope. I am going to rework it as discussed in the PR. See https://github.com/flutter/engine/pull/8606

I believe this is related to https://github.com/flutter/flutter/issues/14809

Please follow up on https://github.com/flutter/flutter/issues/14809, closing as duplicate


Fix credScan and policheck broken issue in spec pipeline

Example PR: https://github.com/Azure/azure-rest-api-specs/pull/22920/checks?check_run_id=11783686043

Fixed.


page deployment on github

hello
I had already deployed my portfolio website on GitHub pages last week. this is the process I followed.

After merging my PR, I clicked settings and on the left sidebar, I clicked pages.
Under Build and Deployment, the branch I clicked deploy from main then save.
After reloading the page in a few seconds the link appeared on the same page, and thus i deployed my portfolio site online and can access it using the link: https://becky449.github.io/portfolio-website/
This i also indicated on the README file.

Hi @Becky449,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

Good design 💯

Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
You can also consider:

N/A

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification @prolajumokeoni.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


[semantic-sil] Update capture promotion for moving mark_uninitialized onto alloc_box instead of project_box and move the fixup pass behind it.

[semantic-sil] Update capture promotion for moving mark_uninitialized onto alloc_box instead of project_box and move the fixup pass behind it.
rdar://31521023

I am going to wait to PR test this until the first commit passes so that I can do a smoke test here.

I am actually going to do allocbox-to-stack in this one as well.

@swift-ci Please smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

Looks like a firewall issue perhaps.

@swift-ci smoke test linux platform


[pred_mod] Update test_resources path

Describe your changes

Update the test_resources paths
Create new test_resources
Upload test resources to AWS

Issue ticket number and link
Closes #xxxx (Replace xxxx with the GitHub issue number)
Checklist before requesting a review

[x] I have performed a self-review of my code

Check the correct box. Does this PR contain:

[ ] Breaking changes
[ ] New functionality
[ ] Major changes
[x] Minor changes
[ ] Bug fixes

[x] Proposed changes are described in the CHANGELOG.md

[x] CI Tests succeed and look good!

Requirements after merging

[ ] Need to regenerate common/ resources

[x] Need to regenerate task-specific resources. Specify: <all or ...>

viash ns test -q predict_modality succeeds locally as well!


Add cog to play spooky sounds

For issue #28

Add SpookySound cog
Add sound files
Add PyNaCl to Pipfile (required for Discord voice)

We should have the spooky sounds attached to a command, or listening to a set of words. See the implementation of spookey react. You can still keep it limited to once, every 2 mins though.

I'm not sure what you mean, since the behavior is exactly as described in issue #28. Perhaps I should have used a better PR description, updated now.

Thanks, I have made the requested changes.


Default state on mounted component not passed as props to child components

Hello!
I haven't found an issue that addresses this specifically, so sorry if I missed something and this is a duplicate.
I am trying to test a fairly deep map component:
import React from 'react'
import { shallow, mount } from 'enzyme'
import Map from './Map'

describe('<Map />', () => {

  ...

  it("has default state properties", () => {
    const map = shallow(<Map />)
    const defaultState = {
      suggestionPin: {},
      suggestions: [],
      currentSuggestion: null,
      suggestionInfoIsActive: false,
      currentLocation: { date: '', location: { lat: '', lng: '' } },
      pinFilters: [],
      routePoints: [],
      actualPath: []
    }
    expect(map.state()).toMatchObject(defaultState)
  })

  describe("on componentDidMount", () => {
    it("calls getSuggestions", () => {
      const restore = Map.prototype.getSuggestions
      const mock = Map.prototype.getSuggestions = jest.fn()

      const map = mount(<Map />)
      expect(mock).toHaveBeenCalled()

      Map.prototype.getSuggestions = restore
    })
  })
})

When I run the componentDidMount test, I get an error: TypeError: Cannot read property 'map' of undefined in the SideContainer child component, where it tries to call suggestions.map(...), where suggestions are props from the Map's state.
Everything works fine in production and on localhost. And as seen in the state properties test, the default state registers with shallow() rendering.
The question: why would the child components not pick up the state of the mounted component?
Thanks!
Here is the component:
import React, { Component } from "react"
import SuggestionMapContainer from "./SuggestionMapContainer/SuggestionMapContainer"
import SideContainer from "./SideContainer/SideContainer"
import APIService from "../APIService/APIService"

const service = new APIService("https://spoken-api.herokuapp.com")

export default class Map extends Component {
  constructor(props) {
    super(props);
    this.state = {
      suggestionPin: {},
      suggestions: [],
      currentSuggestion: null,
      suggestionInfoIsActive: false,
      currentLocation: {date: "", location: {lat: "", lng: ""}},
      pinFilters: [],
      routePoints: [],
      actualPath: []
    }
  }

  componentDidMount() {
    this.getSuggestions()
    this.getCurrentLocation()
    this.getRoutePoints()
    this.getActualPath()
  }

  ...

  getSuggestions = async () => {
    await this.getApiObjects("api/v1/suggestion_pins", "suggestions")
  }

  ...

  render() {
    const suggestionMapContainer = (

        <SuggestionMapContainer
          setSuggestion={this.setSuggestion}
          showSuggestionInfo={this.showSuggestionInfo}
          suggestions={this.state.suggestions}
          currentLocation={this.state.currentLocation}
          suggestionPin={this.state.suggestionPin}
          pinFilters={this.state.pinFilters}
          routePoints={this.state.routePoints}
          actualPath={this.state.actualPath}
        />

    )

    const sideContainer = (
      <SideContainer
        setFilters={this.setFilters}
        pinFilters={this.state.pinFilters}
        currentSuggestion={this.state.currentSuggestion}
        currentLocation={this.state.currentLocation}
        suggestionInfoIsActive={this.state.suggestionInfoIsActive}
        setSuggestion={this.setSuggestion}
        getSuggestions={this.getSuggestions}
        suggestionPin={this.state.suggestionPin}
        date={this.state.currentLocation.date}
        suggestions={this.state.suggestions}
      />
    )

    return (

        { suggestionMapContainer }
        { sideContainer }

    )
  }
}

You're using shallow in the componentDidMount test, which never mounts the component. Use mount for that one.

@ljharb thanks! That was just from me messing around and I forgot to change it. mount is what produces the error.

Where in the Map component are you setting the suggestions state? I don't see that in your OP.
Also, could you provide the code for SideContainer, since it doesn't just take suggestions, but also getSuggestions?

Thanks for having a look, @ljharb ! suggestions state gets set in the constructor function, the second state property:
  constructor(props) {
    super(props);
    this.state = {
      suggestionPin: {},
      suggestions: [], // here
      currentSuggestion: null,
      suggestionInfoIsActive: false,
      currentLocation: {date: "", location: {lat: "", lng: ""}},
      pinFilters: [],
      routePoints: [],
      actualPath: []
    }
  }

And here is the SideContainer
import React from "react"
import _ from "lodash"
... // other components

const SideContainer = props => {
  const {
    currentLocation,
    setSuggestion,
    getSuggestions,
    suggestionPin,
    suggestions, // here is suggestions
    currentSuggestion,
    suggestionInfoIsActive,
    setFilters,
    pinFilters
  } = props

  const categories = _.uniq(suggestions.map(s => s.category)) // this is the line that throws the error

  const legend = (
    <Legend
      date={currentLocation && currentLocation.date}
      categories={categories}
    />
  )

  ...

  return (

      { legend }

      ...

  )
}

export default SideContainer

@tmikeschu yes but what updates suggestions to "not an empty array"? None of the code you've provided has a setState call.

My bad! it's on componentDidMount. It shouldn't produce an undefined state property still, right?
Here is the relevant code:
  componentDidMount() {
    this.getSuggestions()
    ...
  }

  ...

  getSuggestions = async () => {
    await this.getApiObjects("api/v1/suggestion_pins", "suggestions")
  }

  getApiObjects = async (path, state) => {
    const response = await service.get(path)
    this.setState({
      [state]: response.data
    })
  }

...aaaand I think I see my error. The environment must not be getting a response from the API service, hence setting each state property to undefined?

async function is just a Promise-returning function, so that means that you always need a .catch on any getSuggestions call - separately, yes, if service.get returns a response object with no data property (instead of rejecting) then that could cause that behavior too.

Thank you, @ljharb !


One-hot Encoding

Hi there!
I've been trying to implement a one hot encoding using StochasticAD. So far, I've failed 🥲.
I think it essentially boils down to this TODO in the src.
After tinkering for some while, I've decided to ask for help given that I did not come up with a good solution.
Cheers!

Hey! Sorry for being Dormant. I think this might work out as a MWE ( and maybe in general, I have to test ).
using Revise
using StochasticAD
using Distributions

# Simple stochastic program

struct OneHot{T, K} <: AbstractVector{T}
	n::Int
	k::K
    val::T
end

OneHot(n::Int,k::K,val::T = one(K)) where {T,K} = OneHot{T, K}(n, StochasticAD.value(k), val - StochasticAD.value(val) + 1)

Base.size(x::OneHot) = (x.n,)

Base.getindex(x::OneHot{T}, i::Int) where T = (x.k == i ? x.val : zero(T))

Base.argmax(x::OneHot) = x.k

_softmax(x) = begin
    y = exp.(x .- maximum(x))
    y ./ sum(y)
end

_logsoftmax(x) = begin
    y = (x .- maximum(x))
    y .- log(sum(exp, y))
end

f(θ) = begin
    id = rand(Categorical(_softmax(θ)))
    @info id
    v = OneHot(length(θ), id, id)
    sum(v'_logsoftmax(θ))
end

θ = randn(3)
f(θ)

m = StochasticModel(f, θ)

stochastic_gradient(m) # Returns a gradient, still have to check if it finds the right value though


New AF point rendering math

Comments are in the commit.  Works well on crop + rotate except under heavy crop.  I or someone else can work on improving it in time.  Give it a shot and let me know what you think.

Thanks will look tonight.
Heads up for you if you want to add some images:
https://github.com/musselwhizzle/Focus-Points-Sample-Images
Are you willing to take on another task? From LR when you "Edit as smart object in photoshop" and then click on save, it generates a "NEF_8844-Edit.tif" image. Photoshop stripes out the metadata needed. We could check if the filename has a -Edit and then look for the original and just read in that metadata. It's on my TODO....but time...

Wish I could...no Photoshop.  I'm also running out of time since vacation ends in two days!

merging into a feature branch so i can play around with it first.


Remove traces of address book

Codecov Report

Merging #228 (dae0332) into master (5df4faa) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #228   +/-   ##
=========================================
  Coverage     77.96%   77.96%
  Complexity      699      699
=========================================
  Files            97       97
  Lines          2183     2183
  Branches        269      269
=========================================
  Hits           1702     1702
  Misses          384      384
  Partials         97       97

Impacted Files
Coverage Δ

src/main/java/seedu/address/MainApp.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/model/person/Name.java
81.81% <ø> (ø)

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 5df4faa...dae0332. Read the comment docs.


Upgraded to 1.3.0 and tabs no longer work when clicked

I recently upgraded from 1.2.0 to 1.3.0 and my tabs stopped working (i.e. I cannot move from the first tab to any other tabs by clicking on them).  No other changes were made in combination with this.  There are no errors/warning/etc. in the console.  Verified that rolling back to 1.2.0 resolved the issue.
Any ideas what has changed with 1.3.0 that may be causing this?  FYI, I am using angular version 1.4.0.

There may be a bug with changes in Angular 1.4 I personally haven't tested with it yet since its not released.  Does the example in the repo work with 1.4?

I rolled back to Angular 1.3.14 and the problem still occurs with 1.3.0 but not 1.2.0.  Seems it is not the Angular version.  Have you tested with angular-bootstrap 0.12.1?

Haven't forgotten this - I will look at it in the next few days.

Fixed by adding '' into DEFAULT_TEMPLATE->tabs->tab. Not sure if it doesn't cause side affects.
Tabs switching worked for me in both 1.2.0 and 1.3.0 versions, but content wasn't displayed

No, that's definitely not the way to go.
I have tested with angular-bootstrap 0.12.1 and Angular 1.3.14 and it works ok.  Perhaps you can send me a plunkr that fails to diagnose the issue.

Oh, sorry, found the problem - missed  for tab's content. And it's mentioned in the readme... Everything works as expected with Angular 1.3.14.

Well, putting <ui-view/> near <tabs> is bad idea, since bootstrap's tabs have well-defined and strict structure which is already generated by angular-ui's tabset. Just look at generated html, and you will understand.
Again, putting <ui-view/> fixes it. Why do you think it's not the right solution?

If you want to do that for a custom template, that's ok, but as a plugin developer it's better to give people the option of placing <ui-view> anywhere (and within any tag structure) they may want for their app.

I created a simple plunker demonstrating the tab change issue that stops working when upgrading to 1.3.0.  I apologize in advance for how simple it is...
http://plnkr.co/edit/F9jzu3wl89ilPYHoENrV
It defaults to using the 1.2.0 version and tab selections works just fine.  If you modify line 15 of index.html, you can see that they no longer work after upgrade to 1.3.0:
simply replace: <script src="ui-router-tabs.1.2.0.js"></script> with:
<script src="ui-router-tabs.1.3.0.js"></script>
What am I missing or doing wrong?

Your code uses custom template (detailTabs.html), which has ng-click="changeTab(tab)" to change active tab, in 1.3.0 you should use ng-click="go(tab.route, tab.params, tab.options)".
You can find default template in the sources

Thanks mikalai-sauchanka.  Did I miss documentation of that change somewhere?

Actually, I just use it as you do :) Libraries' author is rpocklin, I believe. Anyway, I haven't found any notice about that change.


Timeout waiting for emulator to boot. caused by actions/cache@v3

Sometimes github CI has an issue to launch avd from cached instance. Timeout waiting for emulator to boot. I have to remove your github action step from my build as it is not reliable to smooth CI process as it should be. I also consider option the issue might be on my side due not correct configuration.
In case you would like to investigate this issue, here a link on commit and android.yaml file
name: Android CI

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: macos-latest
    strategy:
      matrix:
        api-level: [29]
        target: [default]

    steps:
    - name: Cancel Previous Runs
      uses<EMAIL_ADDRESS>      with:
        access_token: ${{ github.token }}

    - name: checkout
      uses: actions/checkout@v3

    - name: set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: gradle

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew

    - name: Grant execute permission for gradle
      run: chmod +x gradle

    - name: AVD cache
      uses: actions/cache@v3
      id: avd-cache
      with:
        path: |
          ~/.android/avd/*
          ~/.android/adb*
        key: avd-${{ matrix.api-level }}

    - name: create AVD and generate snapshot for caching
      if: steps.avd-cache.outputs.cache-hit != 'true'
      uses: reactivecircus/android-emulator-runner@v2
      with:
        api-level: ${{ matrix.api-level }}
        force-avd-creation: false
        emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
        disable-animations: false
        script: echo "Generated AVD snapshot for caching."

    - name: Build with Gradle
      run: gradle build

    - name: Printing directory structure
      run: pwd && ls

    - name: Run tests
      uses: reactivecircus/android-emulator-runner@v2
      with:
        api-level: ${{ matrix.api-level }}
        force-avd-creation: false
        emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
        disable-animations: true
        target: ${{ matrix.target }}
        arch: x86_64
        profile: Nexus 5
        script: gradle connectedAndroidTest

    - name: Zip build reports
      id: zipBuildReports
      if: always()
      run: zip -r build-reports.zip app/build/reports

    - name: Upload build reports
      if: always() && steps.zipBuildReports.outcome == 'success'
      uses: actions/upload-artifact@v2
      with:
        name: build-reports
        path: build-reports.zip
        retention-days: 3

Steps to reproduce:

Add this config file
Write some UI\Espresso tests and confirm it works locally
Push to the remote github repo

Observed behavior:
CI starts, job ends with error Timeout waiting for emulator to boot.
Expected behavior:
CI starts, job ends successfully

👋  @Gelassen, i think setup-java folks might help you here. This repo is for Github action actions/cache

@tiwarishub, thank you for follow-up. Could you please share your arguments this issue relates to setup-java action rather than actions/cache?

I am running into this same issue, and I'm also confused why you think the issues would be with setup-java
Thanks!

👋 ,  My apologies i was under impression this caching is for setup-java. But now i see this caching is one which is created with actions/cache. Unfortunately the attached logs has expired. If it will be of great help, if you can provide debug logs https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging (step and runner) .

So, the cache seems like it's being hit properly but the ~/.android/avd/avd-name.avd/ folder doesn't exist.
2022-10-21T21:11:50.3343410Z ERROR   | Unknown AVD name [ui-test-emulator], use -list-avds to see valid list.
2022-10-21T21:11:50.3345990Z ERROR   | HOME is defined but there is no file ui-test-emulator.ini in $HOME/.android/avd
2022-10-21T21:11:50.3348960Z ERROR   | (Note: Directories are searched in the order $ANDROID_AVD_HOME, $ANDROID_SDK_HOME/avd and $HOME/.android/avd)

2022-10-21T21:11:16.7792470Z ##[group]Run actions/cache@v3
2022-10-21T21:11:16.7793270Z with:
2022-10-21T21:11:16.7794040Z   path: ~/.android/avd/*
~/.android/adb*
~/.android/debug.keystore

2022-10-21T21:11:16.7794750Z   key: 30-api-macOS-runner-
2022-10-21T21:11:16.7795480Z env:
2022-10-21T21:11:16.7796020Z   JAVA_TOOL_OPTIONS: -Xmx4g
2022-10-21T21:11:16.7796600Z   SHOULD_RUN_SPECIFIC_TEST: true
2022-10-21T21:11:16.7797400Z   SINGLE_TEST_TO_RUN: account.AccountTest#screenshotAccountPage
2022-10-21T21:11:16.7798220Z   API_LEVEL: 30
2022-10-21T21:11:16.7798900Z   GITHUB_WORKSPACE: /Users/runner/work/*****-android-app/*****-android-app
2022-10-21T21:11:16.7799770Z   GITHUB_RUN_NUMBER: 633
2022-10-21T21:11:16.7800340Z   HOMEBREW_NO_INSTALL_CLEANUP: 1
2022-10-21T21:11:16.7800960Z   GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
2022-10-21T21:11:16.7801530Z   GRADLE_BUILD_ACTION_CACHE_RESTORED: true
2022-10-21T21:11:16.7802420Z   JAVA_HOME: /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.16-101/x64/Contents/Home
2022-10-21T21:11:16.7803300Z   JAVA_HOME_11_X64: /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.16-101/x64/Contents/Home
2022-10-21T21:11:16.7804320Z   ANDROID_HOME: /Users/runner/Library/Android/sdk
2022-10-21T21:11:16.7804930Z   ANDROID_SDK_ROOT: /Users/runner/Library/Android/sdk
2022-10-21T21:11:16.7806020Z ##[endgroup]
2022-10-21T21:11:18.3336170Z Received 67108864 of 312491967 (21.5%), 63.9 MBs/sec
2022-10-21T21:11:19.3341960Z Received 188743680 of 312491967 (60.4%), 89.9 MBs/sec
2022-10-21T21:11:20.3342460Z Received 304103359 of 312491967 (97.3%), 96.6 MBs/sec
2022-10-21T21:11:20.9847310Z Received 312491967 of 312491967 (100.0%), 81.6 MBs/sec
2022-10-21T21:11:21.0061730Z Cache Size: ~298 MB (312491967 B)
2022-10-21T21:11:21.0126550Z [command]/usr/local/bin/gtar --use-compress-program unzstd -xf /Users/runner/work/_temp/0bb54a86-01ca-4bcd-888d-0ad303eb8c96/cache.tzst -P -C /Users/runner/work/*****-android-app/*****-android-app --delay-directory-restore
2022-10-21T21:11:43.6856970Z Cache restored successfully
2022-10-21T21:11:43.7145400Z Cache restored from key: 30-api-macOS-runner-

Regardless, I think it's some weird interaction with either android-emulator-runner or the way VMs are spun up by GHA.
I am going to add more logging around the $HOME variable and these other paths $ANDROID_AVD_HOME $ANDROID_SDK_HOME/avd and $HOME/.android/avd) at different points in the pipeline