The term 'Get-WebBinding' is not recognized as the name of a cmdlet

When installing Myrtille 2.9.1 I am getting this error log
Path          :
Online        : True
RestartNeeded : True
Enabled IIS, WebSocket protocol, management console and tools
Path          :
Online        : True
RestartNeeded : True
Enabled .NET extensibility
Path          :
Online        : True
RestartNeeded : True
Enabled WCF/HTTP activation
Created Myrtille self-signed certificate
The term 'Get-WebBinding' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Get-WebBindings depends on the WebAdministration module. It's surprising this module isn't registered on the machine since all the related components are enabled (if not already) by this line. That said,  Import-Module WebAdministration should have been placed before the Get-WebBinding call (just before the self-signed certificate code block).
What is the operating system of the machine on which you are installing Myrtille? I didn't had this issue on a fresh Win10, Server 2016 and Server 2019.
What you can do is to uncheck the "install SSL certificate" checkbox into the installer; it won't enter the faulty code block and you will be able to install Myrtille. You can create a self-signed certificate afterward, or install a trusted one, by using the IIS management console.

Might be related to https://github.com/cedrozor/myrtille/pull/274 on Server 2012

Fixed in Myrtille 2.9.2


Implement Intl.PluralRules

This was standardized with Intl 2018 and should launch alongside the rest of the ICU implementation of Intl.

Congratulations! :champagne:

NumberFormat.formatToParts should go in today too :)


[ENH] - Add local support for Mac

Feature description
It would be nice, as developers, to develop on Mac (and Windows) using a local (kind) deployment.
Value and/or benefit
Currently local deployments are only available for Linux. Adding this would allow those with Macs to develop and prototype more quickly the current workarounds (see dev docs).
Anything else?
Affects all Macs (Apple Silicon + Intel).

I am currently able to partially deploy on Mac (see branch kind_on_mac). Unfortunately this solution is only partially and quite "hacky". More work will be needed before this is fully usable.

So far I have tried (or researched) the following with no success:

UTM virtual machine
virtualbox virtual machine

last time I was reading about this, it wasn't possible to run on Apple Silicon (M1/M2) macs but this might have changed and I will need to give this another try.

Blocked by #1950

The issue around Nebari not working locally on a kind cluster on macOS/Windows stems from the fact that Docker containers are not executed natively but rather in a VM. Thus, the container networks are not exposed and cannot be reached from the host.
There are a couple of options we can try to be able to deploy Nebari locally on macOS/Windows:

Configure Extra Port Mappings to port forward the relevant nodes (probably the load balancer) and configure an Ingress Controller using traefik.
Try a tool like https://github.com/chipmk/docker-mac-net-connect, which allows for direct connections to the containers via their IP address.

seems interesting as an option with Vagrant and Kubernetes https://ugurakgul.medium.com/creating-a-local-kubernetes-cluster-with-vagrant-ba591ab70ee2

from @dcmcand https://github.com/techiescamp/vagrant-kubeadm-mac-silicon

I have got it working on my Mac M1. Here are the docs: https://github.com/nebari-dev/nebari-docs/pull/454

This what my nebari config looks like:
provider: local
namespace: dev
nebari_version: 2024.5.1rc1
project_name: local-dev
domain: nebari.iakte.ch
ci_cd:
  type: none
terraform_state:
  type: remote
security:
  keycloak:
    initial_root_password: <SANITIZED>
    overrides:
      image:
        repository: quay.io/aktech/keycloak
        tag: 15.0.2
  authentication:
    type: password

default_images:
  jupyterhub: quay.io/nebari/nebari-jupyterhub:m1-image
  jupyterlab: quay.io/nebari/nebari-jupyterlab:m1-image
  dask_worker: quay.io/nebari/nebari-dask-worker:m1-image

jhub_apps:
  enabled: true

argo_workflows:
  enabled: false

conda_store:
  image: quay.io/aktech/conda-store-server
  image_tag: sha-558beb8
theme:
  jupyterhub:
    hub_title: Nebari - local-dev
    welcome: Welcome! Learn about Nebari's features and configurations in the
      documentation. If you have any questions or feedback, reach the team on
      Nebari's support
      forums.
    hub_subtitle: Your open source data science platform, hosted
certificate:
  type: lets-encrypt
  acme_email: <SANITIZED>

Relevant issues:

https://github.com/nebari-dev/nebari/issues/2454
https://github.com/conda-incubator/conda-store/issues/821

Relevant PRs:

https://github.com/nebari-dev/keycloak-containers/pull/1
https://github.com/nebari-dev/nebari-docker-images/pull/141
https://github.com/nebari-dev/nebari-docs/pull/454

@aktech Is your M1 a laptop or a mini/server? How stable is it when you're running it? Is it useable at all? I have a 10-core M1 laptop with 32 gigs of RAM. Using the new docs/config above, I managed to deploy it by putting the domain in the hosts file (<IP_ADDRESS> nebari.example.com) and installing/enabling docker-mac-net-connect. Then the laptop fans started spinning very fast and the cluster crashed and never recovered, which was after starting JupyterLab and attempting to build a single empty conda-store env. So it looks like it has limited usefulness on a laptop unless there's a way to reduce resource usage of the K8s cluster. Thoughts?

@nkaretnikov I just tried Amit's config now on a 8-core M1 with 32GB and was able to spin a small Jupyter server up and create a simple conda environment with numpy on it. I think the local cluster has already some memory restrictions because I was not able to spin a medium size server up.

 So I think the stability/crashes/disconnects were solved by me updating everything to latest, but I also didn't test extensively:

I had to update Docker Desktop
I had to install K8s via Docker Desktop instead of using minikube with brew (it can be done via the settings in the UI)
I had to update macOS to latest because there were crashes in Virtual Machine Service, which are related to Linux kernel support. Before that, I also saw high CPU usage by this service when running Docker
I had to create this symlink because Docker no longer creates it and terraform cannot find the socket otherwise:

sudo ln -s "$HOME/.docker/run/docker.sock" /var/run/docker.sock

However, I still cannot get argo workflows working. These are disabled in the config provided by Amit. I needed them for my work, so I set them to true, but then I saw that the nebari-workflow-controller was in the failed state trying to pull the image, so I attempted to do (this image is available on quay):
default_images:
...
  nebari_workflow_controller: quay.io/nebari/nebari-workflow-controller:m1-image

But it's not possible to set this image via the config because the key is not supported. So I patched this Python file instead:
./lib/python3.10/site-packages/_nebari/constants.py:
DEFAULT_NEBARI_WORKFLOW_CONTROLLER_IMAGE_TAG = "m1-image"

This seemed to solve the problem with the image pull, but the workflows still immediately fail. I did check a bunch of logs in various pods, but I didn't find anything. Not sure where it's supposed to be logged if at all. It's still possible that the change above is not sufficient to use this image correctly. And yes, I did add relevant permissions for my user to be able to use argo in Keycloak.
If someone can get argo workflows working (scheduling a notebook via the JLab UI), let me know. But for now, I'm going to use the cloud again because it's not clear how much more work is needed here.

@aktech Is your M1 a laptop or a mini/server? How stable is it when you're running it? Is it useable at all? I have a 10-core M1 laptop with 32 gigs of RAM. Using the new docs/config above, I managed to deploy it by putting the domain in the hosts file (<IP_ADDRESS> nebari.example.com) and installing/enabling docker-mac-net-connect. Then the laptop fans started spinning very fast and the cluster crashed and never recovered, which was after starting JupyterLab and attempting to build a single empty conda-store env. So it looks like it has limited usefulness on a laptop unless there's a way to reduce resource usage of the K8s cluster. Thoughts?

I have a M1 Pro laptop (32GB, 10 cores). It is very stable for me. I have conda environment built with packages required create apps. I never had a cluster crash. Do you have anything else running other than kind cluster?
I am using docker desktop 4.30.0 (149282)

However, I still cannot get argo workflows working. These are disabled in the config provided by Amit. I needed them for my work, so I set them to true, but then I saw that the nebari-workflow-controller was in the failed state trying to pull the image, so I attempted to do (this image is available on quay):

I should have mentioned that, I didn't needed argo, so didn't bothered adding it to config.

@aktech Yeah, ignore the crash issue. I think it was resolved by updating everything to latest. I'm now more interested in how to get argo-workflows working locally. Have you tried that? They are disabled in your original config.

I can give it a try, let me try the m1-image you shared above.
Also, apologies for the late reply.

I deployed argo with the latest image 2024.6.1rc3, it deployed successfully. The notebook scheduling didn't wor. Looks like TLS verification failed while connecting to the API, which is expected as I am running it locally without proper certs. We would probably need to toggle TLS verification to avoid this. Is this what you saw as well?

I cannot recall at this point, but I agree that fixing the cert issue would be a good first step to resolving this.

I see the exact same certificate error, c-f https://github.com/nebari-dev/argo-jupyter-scheduler/pull/10#issuecomment-2122616224. I tried to disable SSL verification but only got me half way thought (the error message changed but did not disappear)
If anyone wants to pick up: https://github.com/nebari-dev/argo-jupyter-scheduler/compare/main...krassowski:argo-jupyter-scheduler:km-papermill-error-2

That's a good starting point, thanks @krassowski do you recall what was the new error message?

See https://github.com/nebari-dev/argo-jupyter-scheduler/pull/10#issuecomment-2132884289 (but maybe it is me issue and I have something misconfigured - so maybe the changes linked above are sufficient - though we need to ensure to only apply them when running a local deployment, so possibly something controlled by an environment variable)

I have got the notebook scheduler working after setting up real valid certs in my local deployment. I can confirm it's certainly an ssl issue.
Completed Pods

Completed Job

I shared this in slack, I think it might be useful for others as well:

Local deployment with lets encrypt certs: (without certs some things do not work out of the box, like argo notebook scheduler, etc)

For anyone interested: . You can setup let's encrypt certs with DNS challenge locally (if you have a domain or can use a subdomain in quansight domains), this basically verifies that you control the domain, by using domain provider's API token, provided by you to let's encrypt. I think its definitely worth setting it up to get a full production environment locally. Here is the branch for setting it up, if anyone want to try: https://github.com/nebari-dev/nebari/compare/dns-challenge?expand=1 (You need to create an API token from cloudflare for the domain you're using)

We should consider adding the support natively. It's specially useful for Nebari deployments with non-public IP addresses (like inside a private network).

Thanks to @aktech we can now deploy on Mac! Should we keep this issue open or close it for now and open a specific one for windows?

@marcelovilla at this point, is there any special setup required to deploy locally on mac?

@kcpevey there are two things that need to be configured:

We need to use a specific ARM image for Keycloack
We need to setup https://github.com/chipmk/docker-mac-net-connect so the container IPs are exposed.

There's a PR outlining these two steps.
I'm happy to help you deploy it locally if you ever need to.

I edited the title of this issue so it's only about local support for Mac. We can open another specific issue for Windows when/if we think it's relevant.

Thanks @marcelovilla I was just wanting to make sure we had documentation on the "how", so it looks like that's all taken care of :)
The docs are now published here.


Disable persistent storage of Tasks in simulator

Disable persistent storage of Tasks in simulator
:recycle: Current situation & Problem
We found it overly complicated to deal with SpeziScheduler in the development process (e.g., testing changes within the simulator or running unit tests against a scheduler implementation).
This PR changes the SchedulerStorage component to not interact with the local storage if running within a simulator environment. This should allow for more rapid development (e.g., no requirement to delete the app in between startups) and help in unit testing scenarios.
Additionally, this PR fixes the Equatable implementation of the Scheduler module.
Lastly, we update to the latest Spezi release and remove usage of the LifecycleHandler and avoid directly interfacing with the NotificationDelegate. This ensure that we don't override the Notification Center delegate from someone else and, most importantly, only respond to notifications the scheduler sent.
:gear: Release Notes

Disable persistent storage of Tasks and Events in simulator environments for easier development.
Fix Equatable implementation of the Scheduler.
Update to new Spezi release, replacing LifecycleHandler implementation with SwiftUI native mechanisms.

:books: Documentation
--
:white_check_mark: Testing
--
:pencil: Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

[x] I agree to follow the Code of Conduct and Contributing Guidelines.

@PSchmiedmayer make sense. Great catch. I restructured the SchedulerStorage module to be an independent module that you can configure from the outside (via an SPI import). Pretty sweet I think. Added logging to properly communicate if nothing is saved or restored.
I made some additional changes in this PR that (1) fixes some issues around Equatable (and therefore doesn't update our ScheduleView in the template application) and (2) updated everything to the latest changes in Spezi (e.g., LifecycleHandler deprecation and new NotificationHandler protocol).


ENH: Enable '--with-fastjet3'

Add support for fastjet in the build with fastjet-cxx.
Add sed to test requires so that gsed is used for all OS.
Add running of examples main161 and main212 to test FastJet integration.
Remove share/Pythia8/examples/, share/Pythia8/htmldoc/, share/Pythia8/pdfdoc/ to decrease the package size by 20 MB.

Keep share/Pythia8/examples/Makefile.inc as might be used.
Keep share/Pythia8/xmldoc/ as required for runtime.

Restrict the test source_files to only the example/ files used to decrease package size from test/info/ metadata.
Bump the build number.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[N/A] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ The recipe is not parsable by parser conda-souschef (grayskull). Your recipe may not receive automatic updates and/or may not be compatible with conda-forge's infrastructure. Please check the logs for more information and ensure your recipe can be parsed.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12303609257. Examine the logs at this URL for more detail.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you, but it looks like there was nothing to do.
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12305799888. Examine the logs at this URL for more detail.

Related to this PR:

https://github.com/conda-forge/pythia8-feedstock/issues/53
https://github.com/conda-forge/microarch-level-feedstock/issues/11

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you but ran into some issues. Please check the output logs of the GitHub Actions workflow below for more details. You can also ping conda-forge/core (using the @ notation) for further assistance or you can try rerendering locally.
The following suggestions might help debug any issues:

Is the recipe/{meta.yaml,recipe.yaml} file valid?
If there is a recipe/conda-build-config.yaml file in the feedstock make sure that it is compatible with the current global pinnnings.
Is the fork used for this PR on an organization or user GitHub account? Automated rerendering via the webservices admin bot only works for user GitHub accounts.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12306649616. Examine the logs at this URL for more detail.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you, but it looks like there was nothing to do.
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12306707632. Examine the logs at this URL for more detail.

@conda-forge-admin, please rerender

@conda-forge/pythia8 I'm going to merge this in as it fixes https://github.com/conda-forge/pythia8-feedstock/issues/53 which should get addressed. If there are questions or concerns on https://github.com/conda-forge/pythia8-feedstock/pull/52#discussion_r1883009814 please feel free to ask here or open an Issue and I can fixup things.


S2U-21 <IP_ADDRESS> Support for Safe Exam Browser

Adds support for safe Exam browser
https://sakaiproject.atlassian.net/browse/S2U-21

We need conversion scripts for the new entities, please provide a linked PR for sakai-reference.

@bgarciaentornos Could you also take a look?

Thanks @mpellicer. I added the requested changes and will add another patch with a few more fixes.

primary issues I see:

SEB-specific code is leaking into the Samigo code. Should try harder to keep SEB-specific code in the SEB module

commons-logging was removed a few versions ago

deploying new commons- libs could cause issues/confusion in future. prob not necessary

lots of altering of imports and other code. this is going to make your life more difficult to maintain branches, cherry-picks, etc

@ottenhoff Thanks for taking a look! I will investigate on Monday, how this can be addressed.

Hey @ottenhoff , thanks for the great help reviewing this one. Did you test it by any chance? What do you feel about this feature for Sakai as as product? We're kinda excited about this!
@stetsche Let's put extra time on this work and make it more robust and optimal, as Sam said, let's get rid of old dependencies, remove non necessary cleanups and provide a lighter patch in general, that will help in a future contribution to 24.x and other 22.x instances.

I haven't tested it, but I wrote the Proctorio code, so I have spent a lot of time here.
I think it's a great feature! My comments all came from experience working with the Proctorio code (e.g., lots of backports, lots of difficulty with merges, etc)

To address the the issues @ottenhoff mentioned I did the following changes

Seperate SEB code more from samigo
a) SEB validations are expired within the module
b) Added pre-delivey phases for securedelivery modules. Config edits for the happen in the publish phase within the module.
c) What I did not move are the assessment settings and the custom begin assessment page related code.
Improve overall compatibility like changes on imports and other that are not needed.
Removed commons-logging dependency

Additionally I fixed a few more issues that I found when working on this.
I removed the translations for the bundle string seb_exception_publish_upload in favor of secure_delivery_exception_publish due to changes.
Can we add translations for secure_delivery_exception_publish in AuthorMessages please?
Thanks a lot to everyone helping with this!

Nice job!

Just added the conversion scripts and fixed additional codacy issues.

I think this is ready now. Thanks to everyone who was helping with this!


v-model not reacting to change on element.selected

Simulating selecting radio buttons doesn't seem to be reflected in the model:
wrapperDeep.find('input[type="radio"]').element.selected = true;

Full code with the reproduced example:
https://github.com/folmert/vue-test-utils-jest-example

RadioGroup.vue:
<template>

        <input v-model="folder" type="radio" name="folder" value="new"> New
        <input v-model="folder" type="radio" name="folder" value="existing"> Existing

Selected: {{folder}}

</template>

RadioGroup.spec.js:
import {mount} from 'vue-test-utils';
import RadioGroup from '@/components/RadioGroup';

describe('RadioGroup', () => {
    let wrapperDeep;

    beforeEach(() => {
        wrapperDeep = mount(RadioGroup, {});
    });

    // works
    it('changes data according to the changed folder data', () => {
        wrapperDeep.setData({folder: 'existing'});
        expect(wrapperDeep.find('.selected').text()).toBe('Selected: existing');
    });

    // doesn't work
    it('changes data according to the selected folder option', () => {
        wrapperDeep.find('input[type="radio"][value="existing"]').element.selected = true;
        expect(wrapperDeep.find('.selected').text()).toBe('Selected: existing');
    });
});

yarn test result:

RadioGroup
√ renders changed data according to the changed folder data (38ms)
× renders changed data according to the selected folder option (8ms)

Expected value to be (using ===):
"Selected: existing"
Received:
"Selected:"

Use asynchronous behaviour testing.
    it('changes data according to the selected folder option', () => {
        wrapperDeep.find('input[type="radio"][value="existing"]').element.selected = true;
        wrapperDeep.vm.$nextTick(() => {
            expect(wrapperDeep.find('.selected').text()).to.be.equal('Selected: existing');
        })
    });

Works fine for me.
RadioGroup
    √ changes data according to the changed folder data
    √ changes data according to the selected folder option

@eddyerburgh Are you working on that or can I try to investigate and implement it ?

I'm not working on it, it would be great if you could investigate it 😀

Didn't find solution (yet), but have a few thoughts - any input about them is welcome:

element.selected vs element.checked - according to HTMLInputElement documentation checked should be used - although it doesn't fix issue

I'm not sure if it's good practice to modify element directly. Inside vue-test-utils specs I see similar situation once:
https://github.com/vuejs/vue-test-utils/blob/20465abc2e28a20adaae8fff12e0797c05b3e959/test/specs/wrapper/update.spec.js#L65-L66
But just after modification an input event is triggered.

What about:
wrapperDeep.find('input[type="radio"][value="new"]').trigger('click')
instead of
wrapperDeep.find('input[type="radio"][value="new"]').element.selected = true

it worked for me in mocha, but not in jest environment - not sure why ...

You can solve this by calling trigger with change after setting the element value:
it('changes data according to the selected folder option', () => {
    wrapperDeep.find('input[type="radio"][value="existing"]').element.selected = true;
    wrapperDeep.find('input[type="radio"][value="existing"]').trigger('change')
    expect(wrapperDeep.find('.selected').text()).toBe('Selected: existing');
});

hi @eddyerburgh sorry to re-open this, but the above workaround doesn't seem to work on checkboxes. That is:
.element.checked = true followed by .trigger('change') doesn't seem to set the v-model prop on the component... 🤔

There's a PR open that will add a method to set an element checked—https://github.com/vuejs/vue-test-utils/pull/557/files
In the PR they set the checked value and trigger a change event, and it works in the test cases in that PR, although in some Vue versions you also need to trigger a click event.

hey @eddyerburgh thanks for the prompt reply, much appreciated! I'll check out the PR. Thanks again and thank you for this library, it's a godsend! 👍 #offtopic does your book test these kinds of scenarios? 🤔

Yes it does 😉

I came across a similar issue with setting a value of an input with v-model.lazy and a computed property with getter/setter (which is for a currency input).
I fixed it with the custom options on the change event trigger:
it('sets amount to zero on invalid input', async () => {
  const valueInput = wrapper.get('input[data-testid="value"]')
  await valueInput.trigger('change', {
    value: ''
  })
  await wrapper.vm.$nextTick()

  expect(valueInput.element.value).toBe('£0.00')
})


Renaming mdx to ocaml-mdx

Solves issue #100
Generates additional binaries called 'ocaml-mdx' and 'ocaml-mdx-test' for a better clarity about what they are doing. As we do not want to break everything, we will let the former binaries for now, before removing them.
Details
Changed the executable rules and added the former binary in a new rule: this way, we wont need to change the rules, just remove the install when we will want to get rid of them.
I'm kinda new to the dune/opam stuff, so i'm not sure if it will be enough: Tell me if I actually forgot something :D

Looks good, thanks!


Generating clients that can handle octet AND json

I made a file endpoint in asp.net core and used the [Produces(MediaTypeNames.Application.Octet)] attribute. NSwagStudio generates a client with FileResponse so it can parse out the results. However, if that endpoint has an error like invalid parameters or other user-driven issues, then it needs to return Json. So http 200 are always Octets and 400s are always Jsons.

Specifying both Json and Octet formats in the Produces attribute makes NSwagStudio fail to generate the FileResponse class. The clients that get generated still reference that class, but now they throw errors.

Alternatively if I don't specify a Json content type and I try to return Json, then I get an http 406 since the client doesn't want to convert from Octet to Json.
Can / should nswagstudio be changed to allow an endpoint to return both json and octet?

I think this is fixed in the latest version, can you verify?


artifact_type on descriptor should be camelCased

artifactType's on descriptors are currently always deserialized to None due to this bug.

Codecov Report

Merging #149 (9e73a8f) into main (833976f) will increase coverage by 0.00%.
The diff coverage is 23.07%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #149   +/-   ##
=======================================
  Coverage   22.43%   22.43%
=======================================
  Files          23       23
  Lines        2086     2099   +13
  Branches     1148     1158   +10
=======================================
+ Hits          468      471    +3
  Misses        808      808
- Partials      810      820   +10


Add method for getting the superclasses of an Instance to rbx_reflection

It's fairly common to need a list of superclasses for a class, so we should provide a method for it. This is an implementation.
It uses a HashSet for convenience. It's slightly more expensive than a Vec but provides an easy mechanism for checking if a class is in the returned set, so it feels worth it.

I hadn't actually checked what the maximum amount was since it felt like it's either 1 or like 5 for most classes.
It turns out it is 6. With that in mind, I think a Vec is fine and I'm also going to update the starting capacity to just be 6.


Fix timezone issue while writing dates in Hive

Fixes #3780
@dain can you please review when you have time?
Unfortunately the unit tests change the default timezone to Asia/Katmandu and the problem cannot be reproduced in that timezone. When I change the default timezone to America/Los Angeles then I can reproduce it. But, I didn't like changing the default timezone during a single unit test execution as there may be other tests running in parallel (are there?) that may get affected. The following can reproduce this issue:
@Test
public void testDateWriteTimeZoneIssue()
        throws Exception
{
    TimeZone defaultZone = TimeZone.getDefault();
    TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
    @Language("SQL") String select = "SELECT" +
            " cast('2015-10-01' as date) _date";
    String createTableAs = String.format("CREATE TABLE test_date_write AS %s", select);
    assertQuery(createTableAs, "SELECT 1");
    assertQuery("SELECT * from test_date_write", "select '2015-10-01'");
    assertQueryTrue("DROP TABLE test_date_write");
    assertFalse(queryRunner.tableExists(getSession(), "test_date_write"));
    TimeZone.setDefault(defaultZone);
}

Merged, thanks!


Request to add as reviewer

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Hey @hhcgit, thanks for offering your help as a reviewer of TechDocs. We are currently in a process of figuring out how we can optimally extend our maintainer base while ensuring a strong relationship between maintainers and our community. Ideally, reviewers also have a long track record of actively contributing to Backstage, and to TechDocs in particular in this case. I would like to close this PR until we have refined our strategy on how to grow our maintenance model.
In the meantime feel free to reach out to us if you have any questions or suggestions about TechDocs, we are happy to discuss and include your contributions!


Return to xampp main page

Hi there..i just want to try your system. after put the file through htdocs, change folder name, change db name & password also configure the database but when i go to http://localhost/inventory it just seem to go back to xampp main page..

same problem with me too

same problem with me too

Hello All,
Although your problems is old, but still it may help for new comers.
look at errorlog file (exists in 'xampp\apace\logs ' folder) and let me know what it says?

i think this is the error...
Warning: include(C:\xampp\htdocs\store2\application\errors/error_php.php): failed to open stream: No such file or directory in C:\xampp\htdocs\store2\system\core\Exceptions.php on line 182

this issue is still exist, can please solve it?


Fix code scanning alert - Reflected cross-site scripting

Tracking issue for:

[ ] https://github.com/shauryaaher/Client-Server-Communication-Web/security/code-scanning/2

Gotcha, almost done.


wrong Lint/UnusedBlockArgument when use eval

  if ovals
    var_vals.zip(ovals).map do |var_val, oval| <===
      var, val = var_val
      eval("#{var} = oval")  <===
    end
  end

In fact, i use oval val but rubocop say it does not be used.

Lint/UselessAssignment and Lint/UnusedMethodArgument have same false positives.
For example:
def lvar
  x = 1
  eval str
end

def arg(x)
  eval str
end

block do |x|
  eval str
end

$ rubocop -D --only Lint
Inspecting 1 file
W

Offenses:

test.rb:2:3: W: Lint/UselessAssignment: Useless assignment to variable - x.
  x = 1
  ^
test.rb:6:9: W: Lint/UnusedMethodArgument: Unused method argument - x. If it's necessary, use _ or _x as an argument name to indicate that it won't be used. You can also write as arg(*) if you want the method to accept any arguments but don't care about them.
def arg(x)
        ^
test.rb:10:11: W: Lint/UnusedBlockArgument: Unused block argument - x. You can omit the argument if you don't care about it.
block do |x|
          ^

1 file inspected, 3 offenses detected

I cannot decide to make this cop aware of eval. We avoid the false positive by changing this cop, but false negatives occur by this change.
block do |v|
  eval str # If str does not include `v`, rubocop should add an offense.
end

Note: The cops do not add offense if the methods return binding.
def lvar
  x = 1
  eval str
  binding
end

def arg(x)
  eval str
  binding
end

block do |x|
  eval str
  binding
end

$ rubocop -D --only Lint
Inspecting 1 file
.

1 file inspected, no offenses detected


Porting to other MicroBlaze

Hi Viktor, did you porting this block design on MicroBlaze V ? I'm very curious about this.

Hi!
No, I haven't tested this design with MicroBlaze V. At the moment, I see no benefit from using MicroBlaze V in my projects. 😃
I believe that in terms of using DDR SDRAM, the MicroBlaze Classic and MicroBlaze V should behave the same.
If you try it yourself, I would be glad to hear if it works.
When you open the HW Design published in this repository in Vivado 2024.1, it will first ask you to upgrade IPs. Then, the "Run Block Automation" will propose converting MicroBlaze Classic to MicroBlaze V.
To be on the safe side of timing, I suggest reducing the MicroBlaze frequency to 100 MHz for the first test.
Do use Vitis Classic 2024.1, not Vitis 2024.1 (i.e., Vitis Unified). Vitis Unified is an unstable mess, and it didn't support MicroBlaze when I tried it. Looking at Xilinx Forums, I'm not the only one having trouble with the MicroBlaze in Vitis Unified.
Just so you know, the testing app from this repository will not work with MicroBlaze V because it contains assembly code specific to MicroBlaze Classic.


sign node label

Parameterized the SIGN_NODE_LABEL to allow users conveniently change defaults https://github.com/adoptium/ci-jenkins-pipelines/issues/51

context.node('eclipse-codesign')  , feels this node is also used to sign jmods. @andrew-m-leonard is it good to update the line mentioned here to `context.node("${SIGN_NODE_LABEL}")?

maybe ask AdamBrousseau to take a look too, since he is the one created original issue

@cornelia247 need a rebase first

this has been stale for over a year, converting to "draft", if no longer needed please close.


[layernode] Move activation to LayerNode

Move activation from Layer internal to LayerNode
Signed-off-by: Parichay Kapoor<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1323. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @kparichay, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1323-202106221335060.10953903198242-6fd14945c8b0bcfae0825b3e9e5ad48e398121fc/.


Improve article 2308.15517

Exact location of issue
Article failed to convert.
Problem details
TeX source not found.

Thanks for the report. As the arXiv main article link indicates, there is no TeX source available:
https://arxiv.org/abs/2308.15517
ar5iv can only create HTML from TeX/LaTeX sources, and it is beyond the scope of our tools to convert PDF to HTML. Maybe one day arXiv will have an in-house OCR approach for those cases.
So I have to close with "wontfix" here.


tools FindBpfObject.cmake may not get correct ARCH for aarch64 and etc.

This line of CMake code(https://github.com/libbpf/libbpf-bootstrap/blob/938651fcef787f3885b7c32792851f8423bf8421/tools/cmake/FindBpfObject.cmake#L144) need to be changed to
COMMAND sed -e "s/x86_64/x86/" -e "s/aarch64/arm64/" -e "s/ppc64le/powerpc/" -e "s/mips.*/mips/"

So that cmake can get correct ARCH (such as arm64for aarch64 platform). Or it will raise an error when building: GCC error "Must specify a BPF target arch via __TARGET_ARCH_xxx"(__TARGET_ARCH_aarch64 isn't defined inside bpf_tracing.h)

@woodpenker would you be able to send a PR with this change?

Fixed by https://github.com/libbpf/libbpf-bootstrap/pull/116


Factory handles logging of stdClass structure

Looks nice. The only thing I am worried about is that if you have big stdClass, then the message would be super long. I think we should handle this case by truncating the print_r output somehow (you will not read the whole thing in Slack anyway, it only serves notification purpose).
Oh and also picky me - please add use stdClass to match rest of the code style :)


Optional comma separated list of roles provided during user creation

Hi!
Added optional field for specifying list of roles during creating users.
In terms of MongoDB commands it looks like this:
db.createUser({
    user: "myReader",
    pwd: "reader",
    roles: [ "read" ]
  });

Currently this command grants given roles only in current database. MongoDB supports also cross-database roles (an idea for future).
Thanks!

Nice! Was thinking about this the other day.


Updates from CPs for IHE ITI Volume 1 - 1130 1157 1158 1177 1178

Updates applied. Please review

Reviewed version of Volume 1 with 2 corrections:
•	CP 1130 :
o	  I think that Paragraph number 10.2.6,  being just after a text requested to be deled by this CP (in paragraph 10.2.5), has been deleted by error  I refused this deletion. Then my action modified the numerotation to the paragraphs following 10.2.5.
•	CP 1178 :
o	Paragraph <IP_ADDRESS>.2 : The old diagram « Figure <IP_ADDRESS>.2-1: Interaction Diagram for IntendedRecipient subscription » was not deleted  I deleted it.
o	Paragraph <IP_ADDRESS>.2 : The old diagram « Figure <IP_ADDRESS>.2-1: Interaction Diagram for Workflow Id subscription Use Case» was not deleted  I deleted it.


How to perform two animations in parallel (= at the same time) ?

Hi,
How to perform two animations in parallel (= at the same time) ?
Thanks

Try using the animation onstart call then place the other animation in it
Something like

YOYO.with(Technique.Tada).(4000).onStart(animation1 ->
{YOYO.with(Technique.fadeIn).(5000).playOn(button2)
}).playOn(button1)


How to Crop single image before calling torchvision.utils.save_image, If I am using PIL lib Image.crop(....) method then image quality degrade.

 vutils.save_image(fixed_fake.data,outputpath , normalize=True)
print("output path",outputpath)
img = Image.open(outputpath)
noOfRow = 5
noOfColumn = 8
x1 = 2
y1 = 2
x2 = 130
y2 = 130
folder = file_batch

for i in range(0, noOfColumn):
    dest_dir = file_batch[i].split("/")[7]
    if not os.path.exists(outf+"/"+dest_dir):
        os.mkdir(outf+"/"+dest_dir)
    for j in range(1, noOfRow + 1):
        area = (x1, y1, x2, y2)
        cropped_img = img.crop(area)
        imgName = "{}{}".format(i, j)
        cropped_img.save(os.path.join(outf+dest_dir,filename))
        y1 = y1 + 130
        y2 = y2 + 130
    x1 = x1 + 130
    x2 = x2 + 130
   y1 = 2
    y2 = 130

What does degrade mean for you? Are you seeing compression artifacts for example from saving the image as .jpg? If that is the case try to save it in a format without compression:
filename = os.path.splitext(filename)[0] + ".png"
cropped_img.save(os.path.join(outf+dest_dir, filename), compress_level=0)

If that does not solve your problem you need to provide more information for us to help you.

So you have a mini-batched tensor BxCxHxW, for example B == 5 for 5 images, and you want to save each image individually? In that case I would simply split the tensor instead the grid of images:
import torch
from torchvision.utils import save_image

images = torch.rand(5, 3, 128, 128)

for num, image in enumerate(torch.split(images, 1)):
    save_image(image, "{}.jpg".format(num))

Hello,
How about slicing? You need to do a bit of math but then you can be sure that there are no artifacts.

Crop of 128 with padding of 2 -> step_size = 128+2
Make sure that your image+2 (no need to pad the right of the rightmost crop) is a multiple of the step size:

nbcropx = np.ceil((dimx+2)/step_size)
nbcropy = np.ceil((dimy+2)/step_size)
newdimx = nbcropx * step_size - 2
newdimy = nbcropy * step_size - 2
img = nn.functional.pad(img,(0, 0, newdimx-dimx, newdimy-dimy), mode='constant', value=0) #maybe x and y are reversed

And then you can just slice it:

for i in range(nbcropx):
    for j in range(nbcropy):
        crop = img[..., i*step_size:i*step_size+128, j*step_size:j*step_size+128]

Simple and really no problem. I didn't test the code so there may be a few bugs but you get the idea. You can also improve it to add rescaling, etc...

@SebastienEske If I understand @praveenkumarchandaliya correctly he just wants to save each image in a batch individually. He used utils.save_image(), which if given a batch creates a grid of images. Instead of creating a grid that you don't want and slicing / cropping / ... it afterwards, it is far easier to just save the images one by one.

Oh! Ok. Sorry for my misunderstanding then.


Add snap data

Adds 2019 and 2020 SNAP data split into four age groups

Looks perfect!

@StephenWoo This looks good after merging in the refactor :+1:


Introduce store package abstractions for writing to persistent storage.

In this commit, we introduce Iterators and develop Appenders.
All Iterator implementations go in iterators.go; all Appender
implementations go in appenders.go to keep store.go smaller.
Also in this commit, we introduce the timestampSeriesType to store
series of just timestamps with no values. Since both timeSeriesType
and timeStampSeriesType are both sequences of pages that store items,
they share common functionality. Therefore we factor out that common
functionality into pageSeriesType. Both timeSeriesType and
timeStampSeriesType have an anonymous pageSeriesType field.
Pages of timestamps and pages of values also share common functionality.
We introduce the basicPageType interface to provide a uniform way to
search a page by timestamp, iterate over a page, clear a page, and get
the number of items in a page.
We add a map of groupId to timeStampSeriesType inside
timeSeriesCollectionType so that we can keep track of all the timestamps
for each endpoint.
To facilitate writing every metric for every timestamp to persistent
storage, we add additional methods to TimeSeriesCollectionType like
FetchForward and FetchForwardWithTimeStamps designed for fetching values
to write to persistent storage.
Finally we introduce the NamedIterator abstraction to encapsulate away
the details of fetching the data to write to persistent storage and
keeping track of what has been written out and what has not. Clients get
a NamedIterator for an endpoint and iterate over it to write the values
out to persistent storage. If writing to persistent storage is
successful, the client can commit its progress.

Sorry for the super huge poll request. I tried everything to split it up into smaller parts but couldn't do it without breaking the build. I had to make several fundamental changes to the in memory datastore.

I do not like how large store.go has grown (almost 2000 lines). Hard to find anything.
I have partitioned this large file into several smaller files each < 600 lines for easier maintenance.
I am closing this PR and sending a new one.


Count Submatrices With All Ones

Problem Link
https://leetcode.com/problems/count-submatrices-with-all-ones/
Coding platform
Leetcode
Programming language

[ ] C
[ ] C++
[x] Java
[ ] Python

Additional context (OPTIONAL)
I want to solve it in Java

I would like to do this in  C++


Information Missing

This page lacks information on how to modify sharding policy. The only pages I have found that remotely offer what this page should contain have several issues:
https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/alter-table-sharding-policy-command
Does not contain information on how to modify sharding policy-- using toggling it with this command yields an exception
https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/shardingpolicy
Does not explain how to make any modifications
There is a way to change this policy, but I cannot find where it is documented and I believe it should be linked from this page or one of the pages I have linked above.

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

ID: e433239d-3e07-be17-5993-b4bafc557cea
Version Independent ID: 44247206-b515-e228-b580-deffda0cf2ee
Content: .show table sharding policy command - Azure Data Explorer
Content Source: data-explorer/kusto/management/show-table-sharding-policy-command.md
Service: data-explorer
GitHub Login: @shsagir
Microsoft Alias: shsagir

@mawarren642  Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@mawarren642  Thanks for contacting us with feedback about our product documentation. Depending on the complexity, it could take from a few business days to a few weeks to look further into your question, issue, or suggestion. We'll contact you if we need further information, and you'll receive an email message each time we "@mention" you in a comment.
Thanks again for submitting your feedback. Your suggestions help improve our documentation.

Hi @mawarren, the https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/alter-table-sharding-policy-command document describes how to alter the sharding policy. Can you share what command you have run and what kind of exception you are obtaining?


Bump Dependencies #10562187149

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/10562187149

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


mysql_example error UnicodeEncodeError

I am facing an issue while running mysql_example.py on campaign dataset.
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4: ordinal not in range(128)
Python version: 2.7.12

I think this a version issue. The error is not coming up while running the code in python3.

But I am getting a new error now..
ValueError: No records have been blocked together. Is the data you are trying to match like the data you trained on?
stack trace is..
INFO:root:creating block_key index INFO:root:calculating plural_block INFO:root:adding donor_id index and sorting index INFO:root:creating covered_blocks INFO:root:creating smaller_coverage clustering... Traceback (most recent call last):   File "mysql_example.py", line 368, in <module>     threshold=0.5)   File "/home/formcept/.local/lib/python3.5/site-packages/dedupe/api.py", line 116, in matchBlocks     threshold=0)   File "/home/formcept/.local/lib/python3.5/site-packages/dedupe/core.py", line 213, in scoreDuplicates     raise ValueError("No records have been blocked together. " ValueError: No records have been blocked together. Is the data you are trying to match like the data you trained on?

Adding following lines after from __future__ import print_function will solve the problem.
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

I think I've addressed all these issues in https://github.com/dedupeio/dedupe-examples/commit/8eebb494937cc9ff93a10404128715330c122aec
If I haven't please re-open this issue. Thanks!


🚀 Feature: Add Offline Functionality with useOfflineMode Hook

🔖 Feature description
I propose adding offline functionality to the project using the useOfflineMode Hook to enhance user experience and improve application robustness.
🎤 Why is this feature needed ?
Improved user experience: Users can continue using the application even when their internet connection is unstable or lost.
Increased application reliability: Offline functionality ensures the application remains functional, reducing downtime due to connectivity issues.
Better branding and consistency: Ensuring that the application maintains a consistent design, including offline states, is essential for branding and user satisfaction.
✌ How do you aim to achieve this?
In order to realize offline functionality I will make use of a custom hook called useOfflineMode with offline functionality will be achieved through localforage library. This library allows the browser’s IndexedDB store the user information for some time, and it can be retrieved once the user comes back online. It enables us to craft a strong offline experience whereby important user data is cached locally only being uploaded onto the server when the Internet connection has been reconnected. Integration of localforage into the OfflineMode hook makes it possible for us to effectively store data locally, which allows users to continuously use the platform without loss of information in case they are not accessing the internet when using it.
🔄 Additional Information
Firstly, when the offline features were implemented through the Local Storage library initial, I had problems in handling asynchronous operations appropriately. Upon realising how this works I settled on a better solution involving the use of the localforage library given its strong offline data management capabilities.
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Are you willing to submit PR?
Yes I am willing to submit a PR!

@vaibhavpnimkar This is a nice idea. I appreciate you.
But,
How to handle the AI request and response in the Offline mode?  explain

It does not address off-line response generation first and foremost. Contrary, it makes available the previous chats and files in case of loss of network connection for users. It enables users to go back and review prior interactions and content on offline, which enhances users’ capability of handling and reviewing available document despite no internet connection.

Okay, From your point of view,
In Offline-mode, Do we prevent user input in the chat sections?

In my opinion, this is a reasonable approach for taking user’s input in an offline mode while using the application. This may be done through the introduction of a request queue that will keep track of user requests that are made in offline mode. In online mode, once the application regains an internet connection, these requests will be queued up and sent to the API by themselves. This is how; it guarantees that the users never experience a hitch when using the chat feature. But again preventing user input in the chat sections can also be a viable approach

In general, query request queuing is not a viable approach. Becoz, It will hit more requests once the user comes online from offline mode. It will affect the user experience. So, I think, we should prevent the user input in offline mode.
Does it make sense?
@vaibhavpnimkar @dartpain

Yes, I was also thinking along those lines. However, I believe it would be beneficial for us to explore and discuss all available alternatives before making a decision.  And I totally agree to your statement of preventing  the user input in offline mode.

I'm ready to start working on it. Could it be assigned to me? Additionally, I'd like to confirm if the you are interested in adding this feature to the project. @staticGuru

So you are proposing to add an offline mode essentialy.
My only concern is that from users perspective it will not offer anything useful. Things will simply not works as most of the work gets done on the backend not on the clients browser. Unless user wants to reload and read his existing conversation.
From a users perspective what kind of useful interactions they may have in the offliine mode? @vaibhavpnimkar

While I suggest the addition of an offline mode for enhanced accessibility. I understand the reasons you pose why this might be less helpful from a user’s perspective. Yes, a lot of back-end interactions with clients cannot occur in offline mode.
The main use for users of offline mode is to have an opportunity to read saved up materials and messages on which no internet is required. This can be helpful in cases, when a user has to look up previous conversations or documents.
While this is true, it’s just as important to consider the drawbacks of offline mode balance them with its advantages. Another approach involves assuming that there is not much the user can do in offline mode and accordingly concentrate on offering clear indications to user about what can be done offline. We should also research on any specific use cases or interactions that we may have in improving or optimizing and taking them offline.
Finally; it must match what a user expects and need. We should also aim for compromises when balancing online access versus a smooth flow of the user experience”.


Cirrus: Update CI VM Images

Depends on: https://github.com/containers/netavark/pull/431
These images have built-in rust toolchain and clipy linter.
Ref:
https://github.com/containers/automation_images/pull/214
Signed-off-by: Chris Evich<EMAIL_ADDRESS>

/hold for https://github.com/containers/netavark/pull/431

/hold cancel

@Luap99 @flouthoc ping.  This should be good to go.


"exclude" doesn't work with new csproj format

Description
I am converting one of my test projects to the new csproj format. The project references XUnit and an optional package XUnit.Assert.Source which adds source files of the assertion library to the project structure. I have to remove the transitive dependency Xunit.Assert which includes the compiled version of the same assertions so that no conflicts occur. This worked well for the traditional csproj.
Repro steps
paket.dependencies:
source https://www.nuget.org/api/v2
nuget xunit
nuget xunit.assert.source

paket.references
xunit
    exclude xunit.assert
xunit.assert.source

TestOfExclude.csproj
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Asserts\Assert.cs">
      <Paket>True</Paket>
    </Compile>
    .... and so on ....
    <Compile Include="Asserts\Sdk\Exceptions\XunitException.cs">
      <Paket>True</Paket>
    </Compile>
  </ItemGroup>
  <Import Project="..\.paket\Paket.Restore.targets" />
</Project>

A project with the reproduction TestOfExclude.zip
Expected behavior

XUnit.Assert is not included in the list of referenced NuGet packages.
The project compiles.

Actual behavior
The opposite, more than 200 errors like this:
CS0111	Type 'Assert' already defines a member called '.ctor' with the same parameter types	TestOfExclude\Asserts\Assert.cs

For me, the issue also does not look resolved. After porting a project to the new style SDK project format, excluded assemblies are copied to the output directory.
When testing with "TestOfExclude.zip" and using paket.exe 5.257.0 it is also not working as expected.

For me, the issue also does not look resolved. After porting a project to the new style SDK project format, excluded assemblies are copied to the output directory.
When testing with "TestOfExclude.zip" and using paket.exe 5.257.0 it is also not working as expected.


HARP-8737: Use projection to compute surface normal

Codecov Report

Merging #1260 into master will decrease coverage by <.01%.
The diff coverage is 44.44%.

@@            Coverage Diff             @@
##           master    #1260      +/-   ##
==========================================
- Coverage   52.88%   52.87%   -0.01%
==========================================
  Files         260      260
  Lines       23364    23363       -1
  Branches     5171     5169       -2
==========================================
- Hits        12355    12354       -1
  Misses      11009    11009

Impacted Files
Coverage Δ

...e/harp-omv-datasource/lib/OmvDecodedTileEmitter.ts
36.21% <ø> (ø)
:arrow_up:

@here/harp-lines/lib/Lines.ts
63.63% <100%> (-0.21%)
:arrow_down:

...p-geojson-datasource/lib/GeoJsonGeometryCreator.ts
64.23% <28.57%> (ø)
:arrow_up:

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 9bc68e4...477dd5e. Read the comment docs.


Fieldmap correction

Dear fMRIprep experts,
We are using fmriprep 1.2.1, and the susceptibility correction was not properly applied for one subject, seemingly due to incorrect registration between fieldmap and T1 image. Despite the correct registration between EPI and T1, the final BOLD output is not in MNI space either.
Susceptibility distortion correction:

*_desc-brain_mask.nii.gz: (underlay is mni_icbm152_t1_tal_nlin_asym_09c.nii)

Our session had two identical functional runs, but the other run was not affected at all. I also checked the json files for EPI and fieldmap, and everything looks fine. I wonder if you have any suggestions to fix it.
Thank you,
Oliver

Hi @oliver-xie, could you check with a more recent version? Is there any reason to keep using fmriprep-1.2.1 (e.g. you already run a substantial part of your sample with it and would not like to re-run)?

Hi @oesteban, I tried on 1.2.5 and the issue persisted, and I noticed this warning
"q-forms of reference and mask are substantially different".
I suspect that this issue might be related to https://github.com/poldracklab/fmriprep/issues/1460#issuecomment-469640429


High cpu gunicorn processes

The default gunicorn process installed via azavea.gunicon infinitely reboot.
We should either revert to the default gunicorn template, or disable it during provision

Gunicorn is no longer, moving issue to DRIVER repo.


New Electrum Version <IP_ADDRESS>. Wont Open

After I download the file my windows can not open the file type?

So I got the file open using WinZip, but I still do not see where to begin the wallet setup?

We're currently still working on Windows and MacOS builds of Electrum for version <IP_ADDRESS>. The package you downloaded is for Linux. Use the previous version for now.

Thanks for getting back to me so quickly James, much appreciated! Do you think im safe to store/hold my VTC long term on the Web Wallet in Vertpunk, or do you recommend Electrum? Thanks.

I would recommend you use the Core wallet: https://github.com/vertcoin/vertcoin/releases, or a paper wallet: https://vertaddress.org/.

Thanks man, much appreciated! Im looking forward to the continual growth of Vertcoin, and im looking forward to the big things coming. Keep up the great work!


gcc7, gcc7Stdenv, gfortran7: remove old implementation

Description of changes
gcc-7.5.0 was released in Nov 14, 2019, 5 years ago. It's a branch that
went out of support years ago. Numerous bugs never get backported to
this version.
Let's remove it.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

1 package built:

blackmagic-desktop-video

If https://github.com/NixOS/nixpkgs/pull/342235 is merged earlier I can rebase past it to get 0 rebuilds on this PR.

Will need cuda changes:
1|   gccMajorVersion = nvccCompatibilities.${cudaVersion}.gccMaxMajorVersion;
           12|   cudaStdenv = stdenvAdapters.useLibsFrom stdenv pkgs."gcc${gccMajorVersion}Stdenv";
             |                                                  ^
           13|   passthruExtra = {
       Did you mean one of gcc8Stdenv, gcc9Stdenv, gccStdenv, gcc10Stdenv or gcc11Stdenv?

It needs to wait until after branch‐off; see https://github.com/NixOS/nixpkgs/pull/342112.
I intend to remove GCCs 7 through 10 at that point to align with upstream’s support policy.

Also QMK would need looking at, I think?

(Thank you for taking the charge in getting these cleaned up!)


Sometimes the search box doesn't appear

I think this is probably due to a bad internet connection. If so we should try to make the web code more robust to this problem.
Also we should consider showing a message like "Search loading" to give some feedback before the search box appears.

duplicate
https://github.com/pombase/website/issues/1395


Update upload-index-videos.md

Fixing 404 link

@fvneerden : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Advance between decks is labeled wrong and doesn't work

The "Advance Between Decks" checkbox in the presenter view has two major issues:

It should probably be called "Advance Between Segments" instead, because that's actually what it does.
It doesn't work unless there's a valid slide in every segment. In theory, pressing next when you're at the end of a segment should move to the next slide in the show, regardless of how many segments need to be skipped.

Fixed!


Doc : Need to correct the COVID-19 Dashboard India Hyperlink

is this how it should be ???

Fixed this. Thanks for reporting.


Adding hook for metronome regen

Problem

In case of yunohost tools regen-conf --force, metronome specific config is trashed

Solution

Adding hook for metronome regen

PR Status

[ ] Code finished.
[ ] Tested with Package_check.
[ ] Fix or enhancement tested.
[ ] Upgrade from last version tested.
[ ] Can be reviewed and tested.

Package_check results

Dunno if that's really a clear explanation because that's tricky to explain but if you're around in the brique camp during the week I can tell you more about it ;P

Thanks for the informations, I will look at it. I hope to be at the brique camp on Wednesday night and maybe Thursday

Uuuuh I think you should consider having a look at the yunohost conf regen hook to see how they work.
so for instance here : https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/hooks/conf_regen/12-metronome#L60-L74
You should feed $4 (the 'pending conf dir') to do_pre_regen and use it instead of defining your own temp_dir.
In fact ... the metronome hook runs before your hooks and the whole thing should looks something like :
1. core Metronome pre_regen, puts file in `${pending_dir}/etc/metronome`

2. your app pre_regen, should probably edit/patch the conf already in `${pending_dir}/../metronome/etc/metronome` (or maybe add additional files, idk your use case precisely).

   * for an example, check mailman [here](https://github.com/YunoHost-Apps/mailman_ynh/blob/master/sources/hooks/conf_regen/98-postfix_mailman#L9-L16)

3. ...yunohost decide or not to actually apply the conf from ${pending_dir} or not, c.f. the --dry-run option where the conf is generated but not actually applied in the "true" directories...

4. core post_regen (where it reloads the service possibly or fix some permission and other weird stuff _but it has nothing to do anymore about writing conf files_ anymore !)

5. your app post_regen ... i'm quite sure that you have nothing to do in it

@alexAubin
I have completely review the hook.

Generating templates of the metronome config during install
The hook copy the metronome template in the pending (I wasn't able to use ${pending_dir}/etc/metronome, $pending seems to not have a value)
Tested and working.

I you can have a little look before merging


why the current day disappear in other views?

I can add the current day in others views, and put de indicator feature mentioned in this issue ?

Using weekDays resolve this problem.

Yeh. It's because friday in our holiday here, maybe I shouldn't make the default configuration kinda personal lol

heheh by default in my opnion, should be like the print that I sended.


Update UG to cover certain usages

Changes
Fix UG as suggested by the issues below, plus some consistency and aesthetic improvement.
Related Issues/ PRs

Fixes #177
Fixes #183
Fixes #184
Fixes #189

Codecov Report

Merging #219 (3034333) into develop (d15d2eb) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop     #219   +/-   ##
==========================================
  Coverage      58.50%   58.50%
  Complexity       635      635
==========================================
  Files            128      128
  Lines           2492     2492
  Branches         248      248
==========================================
  Hits            1458     1458
  Misses           926      926
  Partials         108      108

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Add database cleaning with transaction

Right now you can clean the database with truncation: https://github.com/luckyframework/lucky_record/pull/137
The problem is it is super slow. Transactions are much faster, so transaction cleaning should be added.
It may be helpful to see how DatabaseCleaner did it: https://github.com/DatabaseCleaner/database_cleaner/blob/master/lib/database_cleaner/active_record/transaction.rb

what's your main idea here?
there is LuckyRecord::Repo.transaction where passes a block and yields inside...
to "clean" the database, instead of run the DatabaseCleaner.new.truncate command, call the code in a block (like it's done in transaction_spec.rb)
so, what's next?

checking the transaction behavior, not sure if user should be obligated to call LuckyRecord::Repo.rollback
for me makes more sense in the end of transaction method, Lucky Records calls it automatically


Tint2

New Theme
Hello I created dracula theme for tint2: https://github.com/tuzu128/dracula-tint2

We're live! 🎉
https://draculatheme.com/tint2
https://github.com/dracula/tint2
Thanks for building this theme @tuzu128!
Feel free to remove the initial repository now.


Could not reproduce train.py course

Wonderful work! I tried to reproduct the training process. But when I tried to run the commands “python train.py --config ./configs/train_res.yml --logdir logs”，ResGen failed and the errored information as follow:
[2024-09-24 12:05:05,702::train::INFO] Load checkpoint from /public/home/hhxy/wangpoints/train_186.pt
Traceback (most recent call last):
File "train.py", line 204, in
train()
File "train.py", line 141, in train
best_loss = load(config.train.checkpoint_path,ckpt_name)
File "train.py", line 114, in load
state = torch.load(checkpoint, map_location=args.device)
File "/public/home/hhxy/mambaforge/envs/resgen/lib/python3.8/site-packages/torch
with _open_file_like(f, 'rb') as opened_file:
File "/public/home/hhxy/mambaforge/envs/resgen/lib/python3.8/site-packages/torch
return _open_file(name_or_buffer, mode)
File "/public/home/hhxy/mambaforge/envs/resgen/lib/python3.8/site-packages/torch
super(_open_file, self).init(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: '/public/home/hhxy/wangpp/nts/train_186.pt'
Wish your reply and hope to get your guidance and explanation, thanks a million.

Hi! Please make sure you put the right checkpoint file in your path!


Make sure GITHUB_TOKEN is only used for GitHub URL

1.4.0-insiders
vscode-extension-vscode/lib/shared.ts sets the Auth header for all URLs when GITHUB_TOKEN is set, should only be set for GitHub's URLs to avoid passing it to other parties.
(Found verifying #8834.)

this won't fix #8834 imo since afaik the issue was found while accessing github urls. My github token don't have access to vscode repos thus I got denied rather than enabled to download.

@maxandersen I agree, this is meant as a general issue, not specific to your problem.

Fixed via https://github.com/Microsoft/vscode-extension-vscode/commit/0c0cfc4a4cc1912dbf36a31d8886189d8a62e281
@chrmarti please report issues for the VSCode module in https://github.com/Microsoft/vscode-extension-vscode


fix: 'use strict' newline causes mismatching sourcemap

The new line created by the ´use strict´ replacement is making the minified code throw errors with line trace pointing to an offset of one 11:20 instead of 10:20, breaking the sourcemap (sourcemap is generated by default before this plugin changes the minified code).

Great find, thanks!


RepositoryHandler should be ExtensionAware

I would like to be able to add our own maven repository "alias" from a Gradle Plugin ( like the ones gradle provide (google(), jcenter(), ...)
Expected Behavior
(project.repositories as ExtensionAware)
  .extensions
  .add(
    typeOf<(String) -> MavenArtifactRepository>(),
    "artifactory",
    fun(repository: String) = ...
  )

that code should add the method.
Current Behavior

repositories is not ExtensionAware so it doesn't work
Context

We have our internal Artifactory, and for example from the plugin we can add directly libs-release to all the consumers, but sometimes they need something else, like libs-snapshot, and having that extension would make it really easy.
We also need the project to be able to look for the credentials ( stored in properties or and env var ).
currently we have 2 workarounds to that issue:

for .gradle.kts the an extension function works, for example:
fun RepositoryHandler.artifactoryLibsRelease(project: Project): MavenArtifactRepository = artifactory("libs-release", project)
then the consumer can do:repositories {
  artifactoryLibsRelease(project)
}

for .gradle we have just methods on the pluginExtension:open class ArtifactoryPluginExtension(project: Project) {
  private val config = DefaultArtifactoryConfig(project)
  fun getUrl(): String = config.getContext()
  fun getUrl(repository: String): String = config.getContext() + "/" + repository
  fun getUser(): String = config.getUser()
  fun getPassword(): String = config.getPassword()
}

so the consumer at least can do:repositories {
  maven {
    url = uri(artifactory.getUrl("plugins-release"))
    credentials {
      username = artifactory.getUser()
      password = artifactory.getPassword()
    }
  }
}

Is this something that could be reopened? I also have the same exact use case Christian laid out. There's a similar (but less configurable) example plugin in gradle docs.
I'd be interested in putting together a contribution sometime in the next few months

The "repositories is not ExtensionAware so it doesn't work" is not correct, so this issues as described and as the title says is already present in Gradle. RepositoryHandler like almost all classes instantiated by Gradle, no matter whether Gradle ones or ones from 3rd party plugins, does implement ExtensionAware automatically, no matter whether it declares it explicitly in its source file or not.
You can also quickly see this using
repositories {
    println(this)
    println(this is ExtensionAware)
}

which prints
repository container
true

The problem just is, that for the extensions in the repository handler no accessor methods are generated afaik.
And a second problem is, that from Groovy it would not really help here, as it cannot invoke a Kotlin function just by parentheses as it has no call method which is the parameter overload for Groovy opposed to invoke for Kotlin. And additionally it cannot directly call an extension property even if it has a call method, because the design of extensions is, that you add something by a name that then has methods or properties and not that you directly add a callable function.
Actually you can achieve what you want easily with very few lines of code.
You just provide the accessor yourself in a .kt file like
fun RepositoryHandler.foo() = mavenCentral()

This can be used by Kotlin DSL,
and for Groovy DSL you add an extra property that can be called as it cannot directly call extension properties.
So for example in a precompiled script plugin, but this can of course be translated to a binary plugin too:
repositories {
    this as ExtensionAware
    extra["foo"] = closureOf<Nothing?> { foo() }
}

And now you can use it like repositories { foo() } in both, Groovy and Kotlin DSL.

Thanks @Vampire !
Maybe my struggles are because I've been trying to test this out in an init script instead of a plugin? Also I'm trying to apply this both to the "buildscript" closure and the build itself.
I've tried something similar but with Kotlin init script -> Groovy build script, I continue ending up with errors like this:
Could not find method foo() for arguments [] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

I'll try it out with a plugin when I can make some time

Well, doing it for Groovy consumption in an init script works perfectly well:
allprojects {
    repositories {
        this as ExtensionAware
        extra["foo"] = closureOf<Nothing?> { mavenCentral() }
    }
}

The problem is, for Kotlin you cannot provide the extension function inside a *.kotlin.kts file, but you need to have it in a regular *.kt file that then is part of the class path of the build script just as I descibed above.


Alpine binaries slow? How to debug?

Thank you soo much for the Alpine binaries. Installation in my Docker image worked flawless with your Docker script.
But something is fishy, and I don't know how to debug.
Here are some timings for the exact same operations on the same file on my Mac vs in Docker on the same Mac. I built my own ARM binary for Mac because I couldn't find it among your release binaries.
Directly on Mac, ARM64 build with CGO but without turboJpeg:

In an Alpine container on the same Mac:

There could be a lot of things slowing this down. I'll try to isolate it a bit more.
Do you have any ideas for debugging?

I did not build the ARM64 for Mac indeed because it's quite complex to cross-compile CGO applications, I'm kinda waiting for the ARM Mac runner to become available on GitHub to do that: https://github.com/github/roadmap/issues/528
Are you perhaps building this docker image as x64 but running it on arm64 using Rosetta?
I have tried the musl binary inside and outside the docker container and it's fast for me.

Thanks for the tip.
All of my Dockerfiles has --platform=linux/amd64 for deploying to AWS. I hadn't thougt about this going through Rosetta when I run on M2. I'll try an ARM build. ARM is available at AWS now as well, maybe I can deploy ARM builds all the way.
I can confirm that this is not pdfuim being slow. I made some tests directly in a shell on the Docker image. In fact your new pdfium build is faster than cairo.
pdftocairo:

pdfium WASM build:

pdfium CGO + turbojpeg:

Nice, thanks for confirming.
I would not have expected Rosetta to be that slow...

ARM build, massive difference!

I didn't get pdfium upd an running yet. Getting this:

I changed the binaries to ARM, but I have probably missed something. Got to run now, will test more in a couple of ourt.
Thanks!

I just realized that there are no musl-ARM binaries for Linux. Is this as hard to compile as for Mac? Or did you just forget this platform?

Yeah cross compiling CGO in general is quite complicated, but I didn't really think about musl ARM, I think a bigger problem might be that there is also no musl ARM pdfium binary: https://github.com/bblanchon/pdfium-binaries

Ok, I’ll keep using AMD. It’ll be really slow on my machine, but probably a lot faster on AWS.
Later today I’ll try to deploy a test server with some benchmark tests. I’ll let you know how it goes in this thread.
Sent from my iPhone
On 2 Oct 2023, at 13:31, jerbob92 @.***> wrote:

Yeah cross compiling CGO in general is quite complicated, but I didn't really think about musl ARM, I think a bigger problem might be that there is also no musl ARM pdfium binary: https://github.com/bblanchon/pdfium-binaries
—
Reply to this email directly, view it on GitHubhttps://github.com/klippa-app/pdfium-cli/issues/21#issuecomment-1742849422, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABCGQDKGPPP7ES3AACAINMLX5KQ2VAVCNFSM6AAAAAA5PBRZH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBSHA2DSNBSGI.
You are receiving this because you authored the thread.Message ID: @.***>

I'll check if I can add a Alpine ARM build for pdfium-binaries, if that works out I will look into cross-compiling the CGO binaries.

Some benchmarks... Quite slow on AWS, but this is on a small machine. I don't know how pdfium info can be so fast when renderand explode is about the same as on my Mac M2 via Rosetta. The PDF is 7 pages of CAD drawings.
I'll make some cairo tests to get a baseline.
AMD64 locally, via Rosetta:
pdfium info: 1.255209 ms
pdfium render 4000px: 13968 ms
pdfium render 120px: 7046 ms
pdfium explode: 400 ms
AMD64 at AWS Fargate 0.25 vCPU, 2GB ram:
pdfium info:  0.35 ms
pdfium render 4000px: 14110 ms
pdfium render 120px: 9794 ms
pdfium explode:  395 ms

Perhaps on Rosetta there is a longer process startup time due to how Rosetta works? In that case you will only see that big of a difference because info doesn't really do that much, while for the other there is much more processing time in the processing.
I think turbojpeg can be so fast due to multithreading, so it makes sense it's not going to be very fast on a 0.25 vcpu.

Yes, I'll make some tests with more CPU power. pdf2cairo performed even worse. Another win for pdfium..
pdftocairo on the same 0.25 vCPU machine, same PDF file: 32220 ms

Here are the numbers for the same scenario, but 1 vCPU:
pdfium info: 0.25 ms
pdfium render 4000px: 3053 ms
pdfium render 120px: 1892 ms
pdfium explode: 62 ms
pdftocairo: 8145
2 vCPU:
pdfium info: 0.27 ms
pdfium render 4000px: 3002 ms
pdfium render 120px: 1855 ms
pdfium explode: 86 ms
pdftocairo: 8145 ms
1 vs 2 vCPU is almost identical. As long as I'm only processing one PDF at a time there seems to be no reason for 2 vCPU.
I also tried with 8 vCPU. Cairo seems to utilize more CPUs better. 50% faster. pdfium 30% faster @400px
8 vCPU:
pdfium info:  21 ms
pdfium render 4000px:  2077 ms
pdfium render 120px:  1799 ms
pdfium explode:  34 ms
pdftocairo: 4079 ms

Cairo takes better advantage of more CPUs, but even @8vCPU cairo isn't as fast at pdfium @1vCPU. It makes more sense to spin up multiple 1vCPU containers with pdfium when the load increases (i.e. multiple renders concurrently).
I there will be ARM binaries avaliable I'll make the same tests again.
Closing this with the conclusion:

Don't run pdfium on 0.25 vCPU
No real gains to be had over 1 vCPU
i.e. 1 vCPU is sweet spot for now.

Small update on the Alpine ARM support for pdfium-binaries:

I got arm64 (aarch64) to compile pretty easily
I'm getting some compile errors on normal arm, so that will require some more work, maybe I'll try to get arm64 merged in first and then look into arm later.

Just some more info on this, for anyone landing on this thread.
As of Docker Desktop for Mac 4.25, the Rosetta support is buildt in.
My Alpine AMD64 containers are ripping through pdfium calls like never before on Apple Silicone. I don't have the setup for the above performance tests, but I can visually see that the performance is vastly improved.

Another update on performance.
My PDF files often consist of many pages. I'm now shopping up pages in smaller page-spans and spawning multiple pdfium-cli processes. Currently I'm using max 10 processes. The penalty for starting a process pays off very fast. The stdout solution for pdfium-cli lends itself great for this concept. My conversion speeds for larger documents are now really great, and I can always throw in more CPU cores if needed.


🔧 [Refactor] DM Button: Group room must allow adding of Moderators when open

🔧 Refactor

DM Button: Group room must allow adding of Moderators when open
A group room must present the user with the option to add a new moderator even when open.
Currently this feature is missing

The requirements for this tickets are more complicated than expected.
Users are allowed to add another to a table, if the user:

is the owner of the table
is a moderator of the table (already before the call started)
became a moderator during the running call (by BBB)

This requires a support from the backend.

I need to clarify a few things with @Elweyn before I can continue here...


This page is unusable

The table is much wider than the page width making it almost impossible to navigate as the horizontal scroll bar for the table is right at the bottom of the screen.
Thanks

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

ID: 9ce35226-b40b-3c9f-a37f-585b84aa129e
Version Independent ID: ac9953e2-769a-c115-b1c6-e6f6fc940db2
Content: Filterable properties for the Filter parameter
Content Source: exchange/docs-conceptual/filter-properties.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@ickthwart, I hear you. The RecipientFilter topic has the same problem:
https://docs.microsoft.com/powershell/exchange/recipientfilter-properties
If you click anywhere in the table, you can use the Left and Right arrow keys to scroll horizontally.
I think the problem is amplified by the 'column' on the right that narrows the page to hold the Is this page helpful? and In this article elements for the entire height of the page.

I'll see if there's anything that can be done from an HTML/page rendering perspective (likely some CSS thing that forces text to break mid-word), but I'm not optimistic.

Thanks Chris.
Even if just the 'Comments' column could be made narrower, that would help. As it stands, that column alone is wider than the display area (on my 1920 screen) so scrolling left and right to read that is just painful. I bet the page author had a super hi-res screen......
Thanks
Paul

Apparently, nothing can be done to narrow the columns or the table. The only option is to dismantle the table into a list, or use left and right arrow keys to scroll horizontally.
Thanks for the feedback.
Closing


App State Sharing Service

Overview
A stripped-down, MRTK-service-ified version of the AppState system proposed in #3210
AppState
The AppState service provides a means to synchronize a set of structs among connected users. That's it - it doesn't know or care about scene objects, and it's up to the dev to decide what info to synchronize and when.
If you want examples of other systems that can build on AppState to generate / manipulate scene objects, there are several in #3210.
AppStateData / AppStateDataSubscriptions
This is a Photon-specific implementation of the IAppStateData interface. IAppStateData is the conduit through which the AppState synchronizes data, and IAppStateDataSubscriptions is used to configure which users receive which data. I would like to remove the Photon dependency and use an MRTK networking service in place of these components.
Profile Setup
The profile inspector helps you search for and configure app state structs and (in the case of IL2CPP builds) state array types.

Other Issues

This PR has a dependency on Newtonsoft. That's a byproduct of the Photon dependency. I would like to eliminate both.
The connection process handled by PhotonServiceConnector is opaque and flakey. This is another issue that could potentially be solved by using an MRTK networking service.

Have you tried to simply replace NewtonSoft within the MRTK side with the UnityJSON utility?  and have you run in to some issues which prevent this working?

I haven't. I'm hesitant to put effort into modifying Photon when we're working towards ditching it altogether.

Not necessarily saying alter Photon, just the MRTK specific code, since this branch shouldn't contain any actual Photon code from their asset, the user has to download that themselves.  Just ensuring our interface isn't using Newtonsoft.

AppStateData now uses JsonUtility. I've removed the shared Newtonsoft folder and restored PUN 2's dll. Removing PUN 2 now removes the Newtonsoft  dependency as well.

I think there's a lot of goodness in enabling photon scenarios for the community, but this does raise a few questions:

Where was this photon code obtained from? Is there a specific repo/commit that can be referenced for this port? Is it possible to get instructions on how to obtain this code without having to directly check everything into the MRTK? Does anyone know what licenses are associated with these scripts?

If we can get instructions on how to obtain this code, it may be more practical to try and understand how your logic can take dependencies on this photon code base without requiring it to be included in the repo. One quick thing may be to stub out specific photon logic behind a macro that a developer has to manually enable.

Where was this photon code obtained from? Is there a specific repo/commit that can be referenced for this port?

This is using the PUN 2 package from the Unity asset store. Questions like these are part of why I want to move away from Photon - downloading a fresh version of PUN 2 could break the app state, for instance, and we would have no way of knowing. This situation may improve as things move to the package manager but we're not there yet.

I think that @andreiborodin and you should sync to see what refactoring could be planned

Agreed, and @andreiborodin I think this use case can help shape your network interface, particularly when it comes to targeting individual connections for sending data.

Closing this and re-opening as draft for clarity.


[BUG]: No typescript types for relational queries with drizzle neon setup

What version of drizzle-orm are you using?
0.28.2
What version of drizzle-kit are you using?
0.19.13
Describe the Bug
I am trying to use the drizzle relational queries with neon db setup but the typescript doesn't update types for relational queries

Though, in runtime it's present

I've checked with planetscale-serverless and it appeared that types are generated correctly with this driver
Expected behavior
Typescript types for drizzle orm with neon generated correctly for relational queries
Environment & setup
I have a set up of drizzle-orm with neon

import { neon, neonConfig } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
import { schema } from './schema';

neonConfig.fetchConnectionCache = true;

const sql = neon(process.env.DATABASE_URL);
export const db = drizzle(sql, { schema });

My schema:
export const products = pgTable('products', {
    id: serial('id').primaryKey(),

    title: varchar('title', { length: 120 }).notNull(),

    isVisible: boolean('is_visible').default(false).notNull(),
});

export const productsRelations = relations(products, ({ one, many }) => ({
    productImages: many(productImages),
}));

export const productImages = pgTable('product_images', {
    id: serial('id').primaryKey(),
    url: text('url').notNull(),

    productId: integer('product_id'),
});

export const productImagesRelations = relations(productImages, ({ one }) => ({
    product: one(products, {
        fields: [productImages.productId],
        references: [products.id],
    }),
}));

I am having similar issues with types for neon; I have tried in 3 different projects, one of which was a clean and new project with the same result. These are the file errors I am getting:
Found 10 errors in 9 files.

Errors  Files
     1  node_modules/drizzle-orm/mysql-core/db.d.ts:1
     1  node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts:15
     1  node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts:74
     1  node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts:17
     1  node_modules/drizzle-orm/pg-core/query-builders/select.d.ts:193
     2  node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts:1
     1  node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts:24
     1  node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts:8
     1  node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts:74
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

By the type error, it looks like the schema was provided to the drizzle() call incorrectly. How exactly is your schema defined? You are importing it as import { schema } from './schema'; which assumes a named export called schema, but the schema you provided doesn't have such export.

@dankochetov
import * as usersTables from './users';
import * as productsTables from './products';

export const schema = {
    ...usersTables,
    ...productsTables,
};

I've just re-exported the schema which is is spread by different files, for consistency. I've also tried doing everything in 1 file and manually importing it, but it didn't make any difference for my problem

You defined the schema incorrectly. You don't need to spread the tables, it will populate the schema with their columns instead.
export const schema = {
  usersTables,
  productsTables,
};

Works for me now, sorry for creating that question as a bug!
And thanks a lot for your help @dankochetov


publicKeyToHex is not a function

const address = publicKeyToHex(payer.publicKey);
^
TypeError: publicKeyToHex is not a function

help!

I believe the issue is that the @solana/solidity npm package needs to be published again, there have been API changes the readme usage example depends on. cc @seanyoung

I've just published a new version: 0.0.17. It should be fixed in this.


define get_skeleton() in SkeletonSource for custom data

I am running a skeleton example on custom data inspired by example_skeleton.py. I implemented the get_skeleton() method of SkeletonSource but I didn't find its use anywhere in the example. I want to know how I can forward my custom skeleton data to the viewer source?
In the skeleton example, the dummy segmentation data is provided in a LocalVolume and a SkeletonSource object is just instantiated without using the get_skeleton() method.
with viewer.txn() as s:
    s.layers.append(
        name='a',
        layer=neuroglancer.SegmentationLayer(
            source=[
                neuroglancer.LocalVolume(
                    data=segmentation, # here
                    dimensions=dimensions,
                ),
                SkeletonSource(dimensions), # here
            ],
            skeleton_shader='void main() { emitRGB(colormapJet(affinity)); }',
            selected_alpha=0,
            not_selected_alpha=0,
            segments=[395750],
        ))

Turns out the skeleton example was broken --- I just fixed it.
get_skeleton is called by the Python Neuroglancer code when the client requests a skeleton --- your own code doesn't need to call it directly.

Turns out the skeleton example was broken --- I just fixed it.
get_skeleton is called by the Python Neuroglancer code when the client requests a skeleton --- your own code doesn't need to call it directly.


test: add 3074 send eth integration test

Adds a 3074 integration test to exercise the example described in #68.
This required first to modify the test invoker, previously it always forwarded a zero value to the underlying auth/authcall wrapper contract, now there's an additional value parameter in sponsorCall. The smart contract artifacts are rebuilt to reflect this new behaviour.
The test itself does this:

Spins up an AlphaNet node
Deploys the invoker contract using a deployer EOA with funds.
Sets up a signer EOA with funds, asserts that balance is not zero, and stores this initial balance.
Sets up a receiver EOA without funds, and asserts that its balance is zero.
The signer account signs a commit with the receiver address and empty data.
The deployer EOA calls sponsorCall including the signature, the receiver address and the amount to be sent
After the transaction is verified to be successful there are two checks:

The receiver balance has been increased by the amount sent
The signer balance has been decreased by the amount sent

The test is passing, @jrachman can you please check if this test follows the same logic as the example you described in #68? Not the script part, of course, but the interaction with the AlphaNet node.

@fgimenez this is good to me! i think there is probably something weird with how i am doing my custom genesis rust script which can be found here. how do you populate an account with eth at genesis?

@Jrachman not sure, I've started locally a node using your example https://github.com/otim-xyz/alphanet/blob/main/examples/custom-genesis-dev-node.rs, run the integration test in this PR against it and everything worked fine, you can give it a try applying this patch to this branch:
diff --git a/crates/testing/src/tests.rs b/crates/testing/src/tests.rs
index 3d2427a..e022d91 100644
--- a/crates/testing/src/tests.rs
+++ b/crates/testing/src/tests.rs
@@ -126,6 +126,7 @@ async fn test_eip3074_send_eth() {
     let tasks = TaskManager::current();
     let test_suite = TestSuite::new();

+    /*
     // spin up alphanet node
     let chain_spec = Lazy::force(&DEV).clone();
     let node_config = NodeConfig::test()
@@ -140,6 +141,8 @@ async fn test_eip3074_send_eth() {
         .unwrap();

     let rpc_url = node.rpc_server_handle().http_url().unwrap();
+     */
+    let rpc_url = String::from("http://localhost:8545");
     let deployer = test_suite.signer();
     let provider = ProviderBuilder::new()
         .with_recommended_fillers()

and then running the test with:
$ RUST_LOG=info cargo +stable test -p alphanet-testing send_eth

The problem might be somewhere else, doesn't seem to be related to alphanet node.

@fgimenez hmmm there is something wrong with my forge scripts then since the test is also working for me. id say we are good to go on this pr and will dig deeper into why my transactions are still failing. 👍

@fgimenez hmmm there is something wrong with my forge scripts then since the test is also working for me. id say we are good to go on this pr and will dig deeper into why my transactions are still failing. 👍

thx, if you have a way to reproduce the error I'd be happy to help if possible, we can continue the conversation in #68


Bug：*ngIf与 有冲突

Resources:
Before submitting an issue, please consult our troubleshooting guide (http://ionicframework.com/docs/troubleshooting/) and developer resources (http://ionicframework.com/docs/developer-resources/)
Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x] 3.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
当我在ion-range外层标签使用ngIf属性的时候，range组件的snaps="true"属性无效，点击之后才会出现分隔，刚加载的时候没有分隔的样式

但是我去掉ngIf之后，就恢复正常了

Hello! Thank you for opening an issue with us!
Can you edit the issue above to provide your information in English? We would really like to help you but our small team is mostly limited to English speaking people. Sorry.
Thank you for using Ionic

Being as he may not be able to speak in english.. I just ran the built in chrome translate. What he is saying is:

When I use the ngIf attribute on the ion-range outer tag, the snaps = "true" attribute of the range component is invalid, and the separation occurs after clicking, and there is no separate style when it is loaded

But after I removed ngIf, I returned to normal

As a Chinese, I would like to provide a translation… (however, my english is not good)
He added a *ngIf directive on the outer div. And he found the vertical little scale marks not showing, although he had added snaps="true" on ion-range. As he described, when the page is loaded, the scale marks are not showing. But after clicking on it, the scale marks began to show.
And then he removed the *ngIf on outer div, and found this bug disappears.

Thanks for the translations! I was able to reproduce this issue using the following markup:
<div *ngIf="showRange">
  <ion-range min="1" max="19" step="1" pin="true" snaps="true"></ion-range>
</div>

ionViewDidEnter() {
  setTimeout(() => {
    this.showRange = true;
  }, 1000);
}

The range-tick elements don't even exist in the DOM until after the drag.

I had a similar problem, when I use variables for max and min
Example:
Does not work
<ion-range step = "10" snaps = "true" [min] = "rangeMin" [max] = "rangeMax">
It works

Any idea how to proced?

@JeffreyWxj
I solved my problem, use:
@ViewChild interval (range): range;
Update
this.range.createTicks ();

@guto-gomes Can you post a bit more of the code for your fix? I'm trying to do the same thing you did and its not working... I have my range inside a <ion-item>.
Import Range:
import { Range } from 'ionic-angular';
Template:
<ion-item>       <ion-range #range [min]="min" [max]="max" step="1" snaps="true" [(ngModel)]="number" (ionChange)="change()" color="secondary">         <ion-label range-left>{{min}}</ion-label>         <ion-label range-right>{{max}}</ion-label>       </ion-range>     </ion-item>
  @ViewChild('range') range: Range;
 ngAfterViewInit() {     this.range._createTicks();   }

I got same issue when I use ion-range inside child component. Did anyone find the solution for this?