Send an email to anyone who started but did not complete the sign up process

###Description
We're seeing an issue where users are starting but not finishing the sign up process. We currently do not have a way to communicate next steps with these users.
###Proposed Solution
Create a job on the backend that sends an email to anyone who started but did not complete the sign up process. We should do this every night at midnight, EST.
Alternate: - we could make this a session-based process, so that there's a spring session attached to a successful signup form submission. If the session expires without the user passing Experian, we kick the user over to manual id verification, send all the emails, etc. Sessions expire every 15 minutes. This would catch the case of people filling out the signup form but not personal details - we currently kind of lose those people, since they don't get follow up from the manual idv team.
###Additional Context
We should be able to do this through job scheduling in Springboot.

Proposal from Nick: put a cancel button on the frontend that eventually triggers the email to support. Waiting on this until the first round of Experian is out in production, so we can see how often this path happens.
Monitor the pending orgs as we do now, and if we're having issues then we can readdress this.

Create a job on the backend that looks if anyone did not complete Experian, shoot an email.
Spring boot has job scheduling into it, should be pretty easy.

@emmastephenson and @LGFranklin to look at #s and see how big an issue this is

@Rebecca-LM Can you please draft an email for this?

@bmaden-usds draft copy here.


Fix: TF Private Endpoint interface naming update

Overview/Summary
This PR updates the resource name for the example TF PE interface to align with the names used for conditional checks in the example.
This PR fixes/adds/changes/removes

Changed resource "azurerm_private_endpoint" this to resource "azurerm_private_endpoint" "this_managed_dns_zone_groups" . This changed is needed to allow for conditional checks used in the example

Breaking Changes

Resource name changes will cause a redeployment of the resource.

As part of this Pull Request I have

[x] Read the Contribution Guide and ensured this PR is compliant with the guide
[x] Checked for duplicate Pull Requests
[x] Associated it with relevant GitHub Issues or ADO Work Items (Internal Only)
[x] Ensured my code/branch is up-to-date with the latest changes in the main branch
[x] Ensured PR tests are passing
[x] Updated relevant and associated documentation (e.g. Contribution Guide, Docs etc.)

@Azure/avm-core-team-technical-terraform, can you please take a look at this? Thanks!


Grammar/typo issues in the protocol documentation

In Range:

Therefore the end position is exclusive.

should be:

Therefore, the end position is exclusive.

according to my grammar checker program.

In PublishDiagnostics Notification:

Diagnostics notification are sent from the server to the client to signal results of validation runs.

should be:

Diagnostics notifications are sent from the server to the client to signal results of validation runs.

as "are" indicates a plural and notification is singular here.

In Document Highlights Request:

The document highlight request is sent from the client to the server to resolve a document highlights for a given text document position.

should be:

The document highlight request is sent from the client to the server to resolve document highlights for a given text document position.

as "a" indicates a singular noun, whereas "document highlights" is plural.

In Document Highlights Request:

However we kept ‘textDocument/documentHighlight’ and ‘textDocument/references’ separate requests since the first one is allowed to be more fuzzy.

should be:

However, we kept ‘textDocument/documentHighlight’ and ‘textDocument/references’ separate requests since the first one is allowed to be more fuzzy.

according to my grammar checker program.

In Document Highlights Request:

Symbol matches usually have a DocumentHighlightKind of Read or Write whereas fuzzy or textual matches use Textas the kind.

should be:

Symbol matches usually have a DocumentHighlightKind of Read or Write whereas fuzzy or textual matches use Text as the kind.

as there is a space missing between "Text" and "as".

PR available


Mobile App [Radzima RN, Android] 'Compass' button on the Map tab

Description:
Realize map alignment to the North ('Compass' button) on the Map tab.
Example:

Verified successfully on Test Flight as a part of Mobile Release 2 Build 17 UIKit/RN v.1.1.1


Wrapper do not render v-dialog (Vuetify)

Hello, friends!
Already two weeks I'll try to solve a little problem with vue-test-utils and testing of v-dialog component.
Aim: To test proper behaviour of UI.
Chain of Components: CreateProposal -> CreateEditProposal -> List of form fields components.
My test is:
import { mount } from '@vue/test-utils'
import Vuetify from 'vuetify'
import VueRouter from 'vue-router'
import Vue from 'vue'
import CreateProposal from '../../../src/components/createProposal'
import Vuex from "vuex";
import TestHelpers from "../../test-helpers";

let wrapper
let h

Vue.use(Vuetify)
Vue.use(VueRouter)
Vue.use(Vuex)

Vue.config.errorHandler = (e) => { console.info(e) }

describe('CreateProposal Test', () => {

  const routes = [{ path: '/proposal/create', name: 'CreateProposal' }]
  const router = new VueRouter({ routes })

  const emptyProposal = {
    aimsAndScope: '',
    title: '',
    valid: false
  }

  const dummyPerson = {
    id: 77,
    firstName: 'Joe',
    lastName: 'Dummy',
    jobTitle: 'Fake employee',
    department: 'Ghost department'
  }

  let store = new Vuex.Store({
    modules: {
      jomPerson: {
        state: {
          data: {
            authInfo: null
          }
        },
        mutations: {
          setAuthInfo (state, authInfo) {
            state.authInfo = authInfo
          }
        },
        getters: {
          getAuthInfo (state) {
            return state.authInfo
          }
        }
      }
    }
  })

  store.commit('setAuthInfo', dummyPerson)

  beforeEach(() => {
    wrapper = mount(CreateProposal, {
      store,
      router,
      sync: false,
      propsData: {
        proposal: emptyProposal,
        isProcessing: false
      },
      attachToDocument: true
    })

    h = new TestHelpers(wrapper, expect)
  })

  it('ui rendered', async () => {
    wrapper.find('button#addr_btn_person-rseditor').trigger('click')
    wrapper.vm.$nextTick()
    expect(wrapper.html()).toContain('Search Responsible Editor')
  })

})

I expect that after clicking a "Open Address Book" button I can check if modal window appears.
But in fact, I can't do that because mount method does not render it.
After a days of research, I found a way to render v-dialog modal html code using render() method from '@vue/server-test-utils'.
import { render } from '@vue/server-test-utils'
import CreateEditProposal from '../../../src/components/createEditComponent/createEditProposal'
import CreateProposal from '../../../src/components/createProposal'
import TestHelpers from '../../test-helpers'

describe('CreateProposal UI', () => {
  let wrapper
  let h

  beforeEach(async () => {
    wrapper = await render(CreateProposal, {
      components: {CreateEditProposal}
    })

    h = new TestHelpers(wrapper, expect)
  })

  it('is rendered all elements correctly', () => {
    h.see('Responsible Editor')
    h.see('Title')
    h.see('Open Address Book')
    h.see('Create')
    h.see('>0 / 256<')
    h.see('Search Responsible Editor')
  })

})

The result HTML contains all I want.
But this wrapper is not a VUE instance. So I cant interact with it with vue-test-utils.
So. Question is:
How to test UI and UX with vue-test-utils and especially with vuetify v-dialog component.
Thanks for any help!

+1


feat(ast): allow conversion from TSAccessibility into &'static str

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4714
#4713
#4712
#4711  👈
#4710
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @DonIsaac and the rest of your teammates on  Graphite


New enchantments.

Added a bunch of new enchantments to enchants.json

Note: triple strike (Triple-Strike) is one word, so it is spelled with a dash, similar to Turbo-Crop enchantments.


Feat: remove copy to clipboard button

This PR contains two commits:

feat: remove copy to clipboard button in production and warn user
feat: disallow highlighting seed phrase in production. This is to prevent users circumventing the removal of the copy to clipboard by selecting and copying the text manually.

Only the first commit is specified by the audit report. The second made sense to me but I am happy to remove the commit if it is not a desired change.
Relates to #222.

Fixed now to only remove copy to clipboard button in production.


Invite API - how to get sender information on receiver's side

Is there a way to get sender information (name, picture etc.) from an invitation on receiver's side as it is visually represented on https://developers.google.com/app-invites/android/ ?
Also, is there a way for us to know if for example sender is putting fake email in invitation?
I found all this this very confusing and cannot find any specific answer on official site. Thank you for your help in advance.

get sender information (name, picture etc.) [...] on receiver's side
I don't believe that Google provides this but it is possible to use the invitation ID as a unique identifier for each invitation, store data on your site upon sending, and then retrieve the data from your site when the recipient gets the invitation. I'll forward your feature request to the app invites team.

know if for example sender is putting fake email in invitation?
The sender of the invitation determines the text of the final invitation that gets sent so the "invitation sender" is in effect not verified - invitations could also be sent via SMS and there's no verification of the sender because the sender has control over the message. As such, the best signal that you have to work with is data that you have verified and associated to the invitation ID: if the invitation itself is spoofed, the ID lookup would fail / the invitation would not resolve.

If you really want to get the sender information, you could just store that as part of your deep link data.  Then parse it back out on the receiver's side.  You can put anything you want in the deep link!

Closing for lack of activity.


Add license

@jleclanche would you mind specifying a license and adding a LICENSE file for this project?

@dwaynebailey thoughts? MIT? I'm fine with whatever

Actually I guess it's MIT: https://github.com/translate/python-jproperties/blob/master/setup.py#L13


⚠ Bofrost.fr has degraded performance

In 6d65d20, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1326 ms

Resolved: Bofrost.fr performance has improved in e180ad2 after 23 minutes.


Stuck trying to use this on Windows 11

Hi there, I've never used Docker before, and have absolutely no idea what I'm doing
Somehow I stumbled my way into installing Docker for Windows and searched for hothost-web and installed it.
Set the 3 envinroment variables in the boxes according to the setup guide linked in your post
But then, when I hit run, it fails with:
2023-02-17 17:06:41 node:fs:600 2023-02-17 17:06:41   handleErrorFromBinding(ctx); 2023-02-17 17:06:41   ^ 2023-02-17 17:06:41  2023-02-17 17:06:41 Error: ENOENT: no such file or directory, open '/var/lib/hothost/jwt' 2023-02-17 17:06:41     at Object.openSync (node:fs:600:3) 2023-02-17 17:06:41     at Object.writeFileSync (node:fs:2221:35) 2023-02-17 17:06:41     at file:///code/src/env.js:30:16 2023-02-17 17:06:41     at ModuleJob.run (node:internal/modules/esm/module_job:193:25) 2023-02-17 17:06:41     at async Promise.all (index 0) 2023-02-17 17:06:41     at async ESMLoader.import (node:internal/modules/esm/loader:530:24) 2023-02-17 17:06:41     at async loadESM (node:internal/process/esm_loader:91:5) 2023-02-17 17:06:41     at async handleMainPromise (node:internal/modules/run_main:65:12) { 2023-02-17 17:06:41   errno: -2, 2023-02-17 17:06:41   syscall: 'open', 2023-02-17 17:06:41   code: 'ENOENT', 2023-02-17 17:06:41   path: '/var/lib/hothost/jwt' 2023-02-17 17:06:41 } 2023-02-17 17:06:41  2023-02-17 17:06:41 Node.js v18.12.1
Novice user here and I was pretty happy about even getting this far..  as for what I'm hoping to do - I just want to monitor remote URL's that are ERROR 404 for when they go online, using my own desktop PC at home which runs Windows 11.
Thank you!

@rolex905 but why do you need hothost agent in your local windows?  Just to play with it before using on real servers? Just in case, this tool created for servers monitoring. So when you have offline machine which runs some web service(s) when there will be suspection then this machine runs out of resources it drops alert to email/slack/telegram.
Anyway on windows:
First of all install WSL2, then install Ubuntu into WSL2 from Microsoft Store. https://hinty.io/devforth/how-to-install-wsl-2-best-way-to-run-real-linux-on-windows/
Then Install dcoker desktop and enable WSL2 integration in it's settings. This is not a fresh post but settings tab is almoast same https://hinty.io/ivictbor/simple-way-to-docker-on-windows-10-home-with-wsl-2/
Then first of all run hothost web on your host, using docker command in readme, open http://localhost:8007 in browser and copy snippet from there to run agent. Paste into terminal and you are done.


Can't take a picture on Android 6.0 or higher

I can't open the camera and take a pic using magicalcamera. The code magicalCamera.takePhoto(); doesn't work on the following devices:

ZTE BLADE A510. Android 6.0;
LG X power. Android 6.0;
Xiaomi Redmi 4X. Android 7.0.

Saying "the code doesn't work" I mean it literally doesn't do anything. No crashes, no errors, no any reaction.
BUT it works perfectly on Oysters Pacific E. Android 6.0...I can't find the difference...
I'm using 5.0.2 version

Can you test the play store magical camera app...
I dont know what happen, because the camera is the camera intent of android

https://github.com/fabian7593/MagicalCamera/issues/36#issuecomment-466699668


unknown sensor values, until scale woken up

I have two 2nd Generation Body Composition Scales, setup as separate services.

Both scales are setup via Passive BLE monitor
For one of them, the entity values eventually change to an 'unknown' status until you activate/step on the scale.

If you click on any of the entities, you can see a value in the history:

The bodymiscale.person entity has a status of 'Problem' which coincides with these statuses, however i noticed that the Problem statuses align with when the other scale is used - Not able to replicate consistently.
I do not believe this is linked to any form of reboot of the rpi, as I noted in a few old issues, as the unknown status is retained after a reboot, and will change to unknown when no reboot occurs.

I can see the below error message, but unclear if related as it shows update when there are values.
Logger: frontend.js.latest.202301100
Source: components/system_log/__init__.py:256
First occurred: 1:34:12 PM (1 occurrences)
Last logged: 1:34:12 PM

http://<IP:PORT>/lovelace-body/thais-weight:0:0 Uncaught

Your scale should not be the weight sensor. You will need to create a template.
Scale -> Sensor template -> Bodymiscale

@dckiller51, are you please able to provide an example of the sensor template?
If I understand this right, the Service Weight sensor should be the template sensor, and the template sensor should just be point at the BLE Monitor weight sensor?

I have created template sensors for both the scale weight, and scale impedance, but still seem to have the same problem.
I also noted I did not have the model: true set in the card.
template:
  - sensor:
    - name: "Shane weight template"
      unit_of_measurement: kg
      state: "{{ states('sensor.ble_weight_bedroom_scale') | round(2) }}"
  - sensor:
    - name: "Shane scale impedance template"
      unit_of_measurement: ohm
      state: "{{ states('sensor.ble_impedance_bedroom_scale') | round(2) }}"
  - sensor:
    - name: "Thais weight template"
      unit_of_measurement: kg
      state: "{{ states('sensor.ble_weight_bathroom_scale') | round(2) }}"
  - sensor:
    - name: "Thais scale impedance template"
      unit_of_measurement: ohm
      state: "{{ states('sensor.ble_impedance_bathroom_scale') | round(2) }}"

Reloading the integrations now fixes the one I reload, but breaks the other - So something not working quite correct between the two configurations.

Maybe the solution is here ?
https://github.com/dckiller51/bodymiscale/issues/121#issuecomment-1260116078

Unfortunately no, I already have that set against the integration, and also applied to the devices themselves.
The use of the templates resolves the main issue of not seeing anything at all, so it's fine in it's current state.
From what I can tell from the current situation is that the BLE Monitor service is getting & retaining the state values, the BodyMiScale is holding the right values from it, however the card says the service is no longer providing the entity - which makes me suspect the issue is in the card itself?
BodyMiScale Card:

When I click the card:

BodyMiScale service has values:

So does the BLE Monitor device:

@dckiller51 going to close this as the the issue has pretty much been worked around, however there is still an underlying issue when two services are setup, and one is either reloaded, or an update provided from the scale.


fix: Feature id in mv-option request is undefined

Thanks for submitting a PR! Please check the boxes below:

[x] I have run pre-commit to check linting
[x] I have filled in the "Changes" section below?
[x] I have filled in the "How did you test this code" section below?
[x] I have used a Conventional Commit title for this Pull Request

Changes

The feature ID is no longer undefined.
It is validated that the feature ID is in the request.

How did you test this code?

Create a new MV feature.
(API) Covered by unit tests.

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.01% :tada:

Comparison is base (ecb7fd2) 95.51% compared to head (d2ff80e) 95.53%.
Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2751      +/-   ##
==========================================
+ Coverage   95.51%   95.53%   +0.01%
==========================================
  Files         993      993
  Lines       27971    28037      +66
==========================================
+ Hits        26717    26784      +67
+ Misses       1254     1253       -1

Files Changed
Coverage Δ

api/features/multivariate/views.py
97.05% <100.00%> (+0.90%)
:arrow_up:

...ures/multivariate/test_integration_multivariate.py
100.00% <100.00%> (ø)

... and 3 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added info about tsql_utils to README

The first time i tried to use dbt-sqlserver, it was somewhat confusing and difficult to figure out how to make dbt-utils work.
Hopefully this will make it easier for new users.

THanks for merging it in, guys!

thanks @infused-kim, any chance you'd be willing to do the same for dbt-msft/dbt-synapse?

Sure, I would be more than happy to do that, but is it necessary? I saw that it mentions tsql-utils already:

dbt-msft/tsql-utils enables dbt-synapse to use dbt-utils: the much-loved, extremely-useful collection of dbt macros.

but is it necessary? I saw that it mentions tsql-utils already
whoops -- you're right!


tokio supported?

I see that all of the examples use async_std rather than tokio.
I don't have a particular reason to want to use tokio with tide, but I'd like to know if it is possible.
If it is possible, are you aware of an example outside of this repo that does that?

I looked into writing a tokio Listener for tide at some point, but ran into issues. I think it might still be possible to run tide on tokio, but haven't seen anyone do it yet, and it's certainly not straightforward. This has to do with async-h1's clone bound for the io stream, which tokio::net::TcpStream did not have at the time (this was before tokio 1)

I looked into writing a tokio Listener for tide at some point, but ran into issues. I think it might still be possible to run tide on tokio, but haven't seen anyone do it yet, and it's certainly not straightforward. This has to do with async-h1's clone bound for the io stream, which tokio::net::TcpStream did not have at the time (this was before tokio 1)

Potentially you could use async-std's network library on top of tokio's runtime using async-compat, but it's unclear to me what the benefits of that hybrid approach would be. The only part of tokio that this approach would use would be spawning a new async-compat future onto the tokio runtime

Potentially you could use async-std's network library on top of tokio's runtime using async-compat, but it's unclear to me what the benefits of that hybrid approach would be. The only part of tokio that this approach would use would be spawning a new async-compat future onto the tokio runtime


Update for simplecov changes

SimpleCov recently changed their attribute from coverage to coverage_data:
https://github.com/colszowka/simplecov/commit/6e7a9ab3fa2c03ee86930596139270d822e2cc77#diff-46af4f57a15019b45e7bb2e9c2f38c53
We need to update as well.

Would be awesome to get this merged in

Given the last update to this gem was 7 years ago, don't think anything is going to be done really.

Thanks for the fix. New gem version available here: https://rubygems.org/gems/simplecov-json/versions/0.2.1

And sorry for the delay merging this, I don't use simplecov or this gem anymore. If someone is interested, I'm open to transfer the ownership of this gem: https://github.com/vicentllongo/simplecov-json/issues/14


Ghidra Headless Module not found module

I can import utils module in ghidra

headless error: ImportError: No module named utils when i in ghidra headless

ghidra version is v11.0

Are you using the built in Jython or a 3rd party CPython extension?  What is the utils module?  I don't have that.

Are you using the built in Jython or a 3rd party CPython extension? What is the utils module? I don't have that.

I using the built in Jython，Used to generate graphics, possibly due to the use of headless mode, the third library of gui is prohibited from being called.


[nanopb] update to 0.4.8

Solved https://github.com/microsoft/vcpkg/pull/37312
https://github.com/nanopb/nanopb/commit/6bbb70af1a7dc47e737957e1ad469581dcbf99f6#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a
The upstream commit above caused the following error during the installation of this port:
Absolute paths were found in the following files:
  F:\vcpkg\packages\nanopb_x64-windows\tools\nanopb\nanopb_generator.py
error: Found 1 post-build check problem(s). To submit these ports to curated catalogs, please first correct the portfile: F:\vcpkg\ports\nanopb\portfile.cmake

[x] Changes comply with the maintainer guide.
[x] SHA512s are updated for each updated download.
[ ] The "supports" clause reflects platforms that may be fixed by this new version.
[ ] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

Thanks for the update!


Removed the WindowsAgentSetup's dependence on the master's setup operation for speeding up the Windows agent setup

Get the DCOS directly from the dcos-engine instead of querying the master on the fly, which delaying the completing the Windows agent setup.
This change adds a new parameter to DCOSWindowsAgentSetup.ps1, which requires matching dcos-engine to get the fully benefits of this performance improvement.
For deployments launched by older without matching dcos-engine change, it will fall back to the old logics but no performance improvement

The deployment tests (both with your DCOSVersion only dcos-engine and older acs-engine) succeeded with good clusters. I


Feature request: perform erase before flashing

Hello,
This tool happily corrupts device data.  Namely, a Flash write cycle is just that, write only.  I understand this from a point of expressiveness, and that's fine for library purposes.  For practical purposes, you're always erasing beforehand.  When using from CLI, I have to manually run an erase cycle first, or put two commands into a batch/script, to actually reprogram a device.
Erase should simply be another option.
Inconsistency: it seems fuses NEVER need to be erased.  (I don't know offhand if that's a quirk of UPDI or what.)

This didn't make the cut for 3.10.2 and will be scoped for 'next' release

@T3sl4co1l :
Version 3.11 on pypi test has --erase switch on write: https://test.pypi.org/project/pymcuprog/<IP_ADDRESS>/
as documented, and as suggested here, this  is the "lowest-cost" solution in terms of simplicity and back-compatibility.
--erase will do a chip erase before writing from an Intel hex file
It will not work for writing bin or literal (excluded to avoid complications)

Hi Dominic, It has unfortunately been slipping out of the last few sprints, but we still hope to release it this side of summer.  Which means May/June.
(There should be few risks attached, but we need to run a set of QA procedures.)


bonjour

Just wanted to thank you for making this project, it really saved my time : )

Thanks for the feedback. Glad you like it.


Error: val.indexOf is not a function

Good day, @bornkiller !
I have an error val.indexOf is not a function on every digest.
It's from angularLocalStorage.
What do you think about?..

@bornkiller , are you here?

@kuraga
I will fixed it this week, for a long time working on other things out.

Thanks!

@bornkiller My patch is #4 :smile:

@bornkiller My patch is #7 , merge please! :smile:


Broken Tools causes "Error sending packet clientbound/minecraft:container_set_content" crash

As the title described, broken tools has an issue with Enchantment Component, it returns null (Which causes the #4)
Reference from the library's author:
After checking the code, its' a bug in divergent-progression in the https://github.com/BlueStaggo/divergent-progression/blob/main/src/main/java/io/bluestaggo/divergeprog/mixin/ComponentHolderMixin.java. The issue is that it hardcodes enchantment prevention in get, but doesn't mirror the code in the constains, so it can return contains true, but get would still be null
I hope this can help?

Ohhh yeah that's quite the oversight. I'll fix it soon.


Encoding problems

As couple of pitcures say more that thousand words...
https://s4.postimg.org/nb39k06ml/Encoding.png
https://s4.postimg.org/xmfmcnybx/No_View.png
Not sure that they are related, but code is not displayed, if looking at raw code, there seem to be somekind of encoding problem.
In code it is actually regular - , so not sure how that could even have encoding issue.

Ok, quick test showed, they are related.
Anyway fixed these issues in code, by overwriting these symbols, still not sure why it happened.

Probably source code problem, caised by cross using IDE's


Cross-Site Asset Transfer

Category
[ ] Bug
[X] Enhancement
Reference: #59 - Implementation of "Verify individual web parts: web parts do tend to have references to the source site and therefore some of them will not work"
Problem Area
[ ] Error during the setup/use of the Page Transformation UI solution (did you check our troubleshooting guide?)
[ ] Error during the use of page transformation from PnP PowerShell
[ ] Error during the use of page transformation from .Net
[X] Page is not looking correct after transformation
Expected or Desired Behaviour
When we are transforming pages across site collections, the referenced files are included in the transfer, to the new sites.
Plan for implementation
Plan:

Detect for referenced assets within the web parts
Referenced assets should only be files e.g. not aspx pages and located in the pages, site pages libraries
Ensure the referenced assets exist in the source location within the same site collection/web according to the level of transformation
Multiple support the scenario where multiple web parts refer to a single asset
With the modern destination, locate assets in the site assets library with in a folder using the same naming convention as SharePoint Comm Sites
If SiteAssets library does not exist - create the library (in the case of vanilla Communication Sites)
Add copy assets method to transfer the files to target site collection
Store a dictionary of copied assets to update the URLs of the transferred web parts
Phased approach for this:  Image Web Parts, Text Web Parts with inline images (need to determine how they are handled), TBC - expanded as testing progresses
Not covering page to page links within the same site collection e.g. summary links to pages

@jansenbe - I wanted to list out my plans for implementing this, as its quite a large change. I will include unit tests. What are your thoughts on this? Do you think there is anything that you think might need adding to the capability?

Hi @pkbullock,
I really like that you reach out upfront to discuss these more fundamental changes! I'm more than happy to work together with you on this change.
Some inline comments to your proposed plan:

Detect for referenced assets within the web parts

We need somehow be able to define this in a flexible manner. I was thinking of:

Adding a new optional attribute CrossSiteTransformationSupported=true/false to the WebPart element of the webpartmapping.xml file
Indicating in the webpartmapping.xml file which properties contain assets that might have to be transfered. Was thinking of something like a new collection under the WebPart element: <TransferableAssets><Asset Property="ImageLink" Type="ServerRelativeUrl" Transform="CopyToSitePages"/></TransferableAssets>. Using this model the core transformation engine can understand what assets are candidates for transformation, how they're defined and which transformation function should be used. The function approach allows to create different transformation functions and reuse these where needed (bit like the Functions we have in the current model). Also the transformation function run can then alter the earlier collected/calculated web part properties so when the actual transformation happens there's no need to update any of the existing builtin functions

Referenced assets should only be files e.g. not aspx pages and located in the pages, site pages libraries

Will be covered by previous comment, meaning only assets defined in the model will be taken. I agree that we initially should focus on images

Ensure the referenced assets exist in the source location within the same site collection/web according to the level of transformation

Will be implemented a transformation function. Transformation function can have parameters to make a single function behave differently when needed

Multiple support the scenario where multiple web parts refer to a single asset

Yes, should be part of the above model. The transformation function should be avoiding unneeded duplicates

With the modern destination, locate assets in the site assets library with in a folder using the same naming convention as SharePoint Comm Sites

Yes, let's come up with a model to store transfered assets in a central spot

If SiteAssets library does not exist - create the library (in the case of vanilla Communication Sites)

Yes, that will be needed

Add copy assets method to transfer the files to target site collection

See earlier comments

Store a dictionary of copied assets to update the URLs of the transferred web parts

See earlier comments

Phased approach for this:  Image Web Parts, Text Web Parts with inline images (need to determine how they are handled), TBC - expanded as testing progresses
Not covering page to page links within the same site collection e.g. summary links to pages

So in general I do like your idea and I think it will be very valuable addition to the page transformation tech. If we push the core implementation into the model and engine then we do have generic extendable solution which potentially can serve additional purposes (like pre/post transformation actions). If you feel more comfortable having a meeting to discuss this then let me know, personally I think it would be good to brainstorm a bit more on this together.

Morning @jansenbe
Great feedback, further brain storming would give us the opportunity to iron this out. What the best way of contacting you? I have a twitter handle @pkbullock we could exchange contact details privately.

Closing this issue as we do have a first level of support included which will go out in the March release.


VMD on VRM AnimationTree Node

Proposal Title
VMD on VRM AnimationTree Node
Context and Problem Statement
Eirexe made a VMD player based on Lox's work.
This new ability means we now have a viable way to load VMD motions and use them as a VRM motion player.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
We want to make an AnimationTree node to drive Miku Miku VMD motion and add other procedural animation features to blend motion on the VRM Avatar.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
However, we need to make some changes to the AnimationTree UI editor to make the changes possible. We want an expanded AnimationTree to customize nodes, mainly when Godot Engine adds procedural animation features.
Saracen wants to make sure that the AnimationTree gets the features needed so any custom nodes can be quickly prototyped via scripted extensions if needed. Doing it in purely c++ can limit scripting.
iFire's "hard coding" definition tests if the node is different from writing the node from a composition of existing nodes.  A VMD animation tree node would be "hard coding."
There are currently some limitations with the AnimationTree, which makes the animation tree somewhat challenging to extend with custom nodes via scripting. However, the good news is, we do not think it would take much to make a VMD AnimationTree node work. The AnimationTree work is primarily a UI limitation and a small one at that.
If this enhancement will not be used often, can it be worked around with a few lines of script?
NOT A FEW LINES OF CODE!
Positive Consequences
No response
Negative Consequences
No response
Is there a reason why this should be core and done by us?
We currently know how to do this, if we don't who else will?
References

https://github.com/EIRTeam/VMDMotionGD
https://github.com/V-Sekai/godot-vrm
https://en.wikipedia.org/wiki/MikuMikuDance

Derivative License
Copyright (c) 2020-2021 V-Sekai contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

From what I investigated into this, it seemed quite feasible to subclass AnimationNodes with custom behaviour, the main limitation seemed to be that the current AnimationTree editor UI did not provide a way for a user to add custom nodes to the tree, with only a menu to select for the existing selection of pre-defined hardcoded nodes. Adding a way to register/create custom nodes in the AnimationTree would make this possible and also make it possible to prototype other nodes for controlling procedural animation features.

ed3fc951671176c15756341a0ce0ac7a98f4dc37


Warning by importing photo_view_scale_state.dart

photo_view is very nice library.
It helps me to show my app users photos easily.
I found an issue about importing src/photo_view_scale_state.dart.
I need to handle my app state by using PhotoViewScaleState and I'm using scaleStateChangedCallback to do that.
I need import 'package:photo_view/src/photo_view_scale_state.dart'; to use PhotoViewScaleState in my project code, but if do so, I get warning from Android Studio like this.

I can build my app though.
Could you fix this?
Log of flutter doctor is here.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.11.9, on Mac OS X 10.13.6 17G65, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.2)
[✓] IntelliJ IDEA Community Edition (version 2018.1.2)
[!] VS Code (version 1.27.2)
[✓] Connected device (1 available)

You have PhotoViewScaleState only by importing photo_view/photo_view.dart

Thanks for pointing out. Looking into it.

Just published the fix  0.1.0


[Service Bus] Settlement methods should throw error in receiveAndDelete mode

Live tests succeeded - https://dev.azure.com/azure-sdk/internal/_build/results?buildId=291467&view=results


New Crowdin translations

Enjoy!

Codecov Report

Merging #43 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #43   +/-   ##
=======================================
  Coverage   17.43%   17.43%
=======================================
  Files         167      167
  Lines        4985     4985
=======================================
  Hits          869      869
  Misses       4116     4116

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 5220bee...5219206. Read the comment docs.


[BUG] dict values for LabelQuestion are not represented in datasets card

Describe the bug
I created a dataset with {"1": "value-2", "2": "value-2"} but there is no way of retrieving the values() from the dicts.
Expected behavior
I would expect this to be represented somewhere.
Environment:
N.A.
Additional context
https://huggingface.co/datasets/argilla/emotion

Right, those are not represented as we don't have a clear way to determine whether the values() have been automatically fulfilled or introduced by the user, we could add a check whether text == value and just don't show those in that scenario, but show those when text != value, but is it really useful? As AFAIK that's something that only makes sense in the Argilla UI, since the annotations will come with the value not the text

Yes, it mostly makes sense in the Argilla UI but I would still find it weird not to see the entire dataset context. Comparable to a textcat model predicting the IDs instead of the labels based on the label_2_id-mapping.

Oh ok, so you mean when calling FeedbackDataset.from_huggingface, right? Then the information can be reflected in the argilla.yaml configuration file we're pushing to the Hub, and later be retrieved via values() 👍🏻


chore(deps): update dependency semantic-release to v17.2.0

This PR contains the following updates:

Package
Type
Update
Change

semantic-release
devDependencies
minor
17.1.2 -> 17.2.0

Release Notes

semantic-release/semantic-release
v17.2.0
Compare Source
Features

throw an Error if package.json has duplicate "repository" key (#1656) (b8fb35c)

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

:tada: This PR is included in version 6.1.3 :tada:
The release is available on:

v6.1.3
GitHub release

Your semantic-release bot :package::rocket:


Added support for instruction count to perf driver

Fixed it and edited the name for both the perf driver and adding our bench marking examples.


Allow titles in settings to use more than one line

Some of them are truncated in the German translation, even with text size set to 'small' (in the OS settings).

I'm not against this change, but doesn't this point to the need to review the "offending" titles? I mean, i believe that according to Android's guidelines, settings titles should occupy one line, so we should aim for that.
Nevertheless i'm merging this, as it's an improvement

I agree that some translations should be shortened and someone already did it: https://github.com/xbmc/Kore/commit/023b0b4f738d8c213e7222193fb54285ff19683a#diff-7049c01dbaca09e41462205bc840bb2bdf6766f0b832e1ff68059c7fdfafadc8L284-R287


AnyM monad wrapper should become primary monad wrapper

Using AnyM results in much more readable code  with a lot less generics , particularly when using more advanced functions that operate of Monads : compare

AnyM<Integer> result = lifted.apply(anyM(Optional.of(3)),anyM(Optional.of(4)));

 Monad<Optional<Integer>, Integer> result = lifted.apply(monad(Optional.of(3)),monad(Optional.of(3)));

When operating on a Monad via the Monad wrapper, the underlying Monad is abstracted away.
The interfaces should operate at minimum like Stream and BaseStream in the JDK, which have a similar declaration pattern
public interface Stream<T> extends BaseStream<T,Stream<T>>

public interface AnyM<T> extends Monad<Object,T>

But currently methods where a type conflict occur are resolved by creating a new method with an anyM suffix. This is confusing.
Either the conflict should be resolved by a suffix in the Monad interface, or AnyM should not extend Monad, but implementations could delegate to Monad.

Completed on Master


virtcontainers: check PCI resource format before using it

Make sure the number of columns in the PCI resource file is greater
or equal to 2, since the first two columns are used to calculate
the PCI bar space.
Add unit test for isLargeBarSpace().
fixes #2542
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

cc @amshinde @Jimmy-Xu

/test

@jodh-intel changes applied, thanks

/test

@Jimmy-Xu  please take a look

@devimc Does this need a backport?

@amshinde no, isLargeBarSpace didn't land in 1.10 nor 1.9


set remote address on http request

Fixes #2296

Codecov Report

Merging #2298 into master will increase coverage by <.01%.
The diff coverage is 66.67%.

@@            Coverage Diff             @@
##           master    #2298      +/-   ##
==========================================
+ Coverage   85.93%   85.93%   +<.01%
==========================================
  Files         108      108
  Lines        8089     8090       +1
==========================================
+ Hits         6951     6952       +1
  Misses        857      857
  Partials      281      281

Impacted Files
Coverage Δ

http3/server.go
64.6% <66.67%> (+0.16%)
: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 fb9315c...44cc47a. Read the comment docs.

Thank you!


Display root resource/ACL correctly in HTML UI

JIRA Ticket: https://jira.lyrasis.org/browse/FCREPO-3424
What does this Pull Request do?
HTML UI performs extra processing to allow interactions so we load the resource we are looking at, for "fake" resources like the default ACL this fails to load. Handle this more cleanly.
How should this be tested?
Build PR, browse to http://localhost:8080/rest/fcr:acl with a web browser. See the results. Use cURL for alternate serializations and still see the results. Put a new default ACL and see it displays too.
Interested parties
Tag (@ mention) interested parties or, if unsure, @fcrepo/committers

..waiting on GitHub Actions


Don't include WPF on non-Windows. Fixes #33

WPF is only ever supported on Windows, so don't include the Wpf.targets file.

Thanks!


Allow modification of sidebar font size

The ability to change the font size in the sidebar was requested via Stack Overflow http://stackoverflow.com/questions/35774918/vs-code-customize-sidebar.

I have the same request !

sidebar font

Being visually impaired, I would also love this option.

+1, hate ms thin fonts

https://github.com/Microsoft/vscode/issues/519

+1. Can't use VS Code until this is in.

+1. Not only the fonts cant be set, there's no colour distinction between folders and files. Atom has a great extension to distinguish file types as well. Would be great to have this.

+1, this truly stop me switching to VS Code from Atom.

Note you can use "window.zoomLevel": -0.5, in config that will 'zoom out' entire vscode and then to compensate it you can set "editor.fontSize" bigger.

+1 sidebar font size and family is important

Yes, we need to be able to change font-size of sidebar and other parts of the IDE as currently fonts are too small. Sidebar & UI of Atom & sublime are better comparatively.

I am actualy bothered more about fontfamily. I asume reason for using zoom is that there is certain hiearchy sizes and fonts in the sidebar and you would need multiple settings to set everything by hand. Zoomlevel makes this possible by changing one value.
I think lot of people would like to change whole look of VSCode but i guess microsoft requires that you imidiately recognize that its vscode - a microsoft product?

@krisak I agree. I'm somewhere between design and development and I just don't like 'feel' of VS Code interface. And while I find VSC is better than Sublime in many cases, that 'feel' of UI, sidebar, big icons is the only reason I'm still with Sublime.
While I understand someone else might love it, I'd like to be able to customize it

@timpler It's a workaround I'm using too, but butchers font rendering :(

I hope there will be more options about sidebar customization including fontSize, fontFamily, backgroundColor, lineHeight...

Hope that we could change sidebar customization,  including fontSize, fontColor, fontFamily, backgroundColor, lineHeight...

+1

+1

+1

+1

+1

This issue is a duplicate of https://github.com/Microsoft/vscode/issues/519, please comment over there. Also avoid commenting "+1" and instead prefer a 👍 reaction on the top issue comment.


Evaluate removing className prop from components

The issue with having that prop is that we are using css modules in this project.
And you can pass as prop a class with the same name, you can end up with html like this:
<div class="_card_1vxfd_1 _card_1v4l8_48">

The names of the classes are still unique, but it looks like you make a mistake.

I would need to replace usage of the className prop with other props, and create variant styles within the component for each prop.
https://github.com/gajus/react-css-modules?tab=readme-ov-file#class-composition


DotNetCoreCLI@2 doesn't add --project arg before project path for run command

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Bug
Enter Task Name: DotNetCoreCLI
Issue Description
DotNetCoreCLI@2 doesn't add --project arg before project path for run command
Task logs
##[section]Starting: DotNetCoreCLI
==============================================================================
Task         : .NET Core
Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version      : 2.153.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
==============================================================================
[command]C:\windows\system32\chcp.com 65001
Active code page: 65001
[command]"C:\Program Files\dotnet\dotnet.exe" run d:\a\1\s\GetIt.Test
Couldn't find a project to run. Ensure a project exists in d:\a\1\s, or pass the path to the project using --project.
##[error]Error: The process 'C:\Program Files\dotnet\dotnet.exe' failed with exit code 1
##[error]Dotnet command failed with non-zero exit code on the following projects : d:\a\1\s\GetIt.Test
##[section]Finishing: DotNetCoreCLI

This looks like a bug to me. For the time being you can keep the "Path to project(s)" as empty and add "--project projectPath" in Arguments field.

Ohh, nice idea, thanks. I worked around that by using the batch script task.
I never understood why run is the only command that uses --project, for all other commands it's implicit.


gem install tmuxinator fails on MSYS2 for versions 0.7.2 and above

gem install -v 0.7.2 tmuxinator fails on MSYS2. The versions 0.7.0 and 0.7.1 works for me.
0.7.2 error
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory @ rb_file_s_symlink - (/c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.7.2/tmuxinator, /c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.7.2/bin/mux)

0.8.0 error
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory @ rb_file_s_symlink - (/c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.8.0/tmuxinator, /c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.8.0/bin/mux)

0.9.0 error
/c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.9.0/bin/tmuxinator
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory @ rb_file_s_symlink - (/c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.9.0/completion/tmuxinator.fish, /c/Users/foo/.gem/ruby/2.3.0/gems/tmuxinator-0.9.0/completion/mux.fish)

Setup
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-msys]

$ gem -v
 2.5.1

$ uname -a
 MINGW64_NT-6.1 FOOMACHINE 2.6.0(0.304/5/3) 2016-09-07 20:45 x86_64 Msys

Also getting this  :'(
$ uname -a
MINGW64_NT-6.1 W7E-74068 2.10.0(0.325/5/3) 2018-02-09 15:25 x86_64 Msys

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-msys]

$ gem -v
2.6.8

Still same.
But, Managed to copy files manually to respective folders and some tweaks to pass the checking on tmux availability.
❯ tmuxinator new test
Checking if tmux is installed ==> Yes
Checking if $EDITOR is set ==> Yes
Checking if $SHELL is set ==> Yes
❯ tmuxinator start test
no server running on /tmp/tmux-197609/default
The system cannot find the path specified.
'#!D:' is not recognized as an internal or external command,
operable program or batch file.

I'm going to close this as stale. Feel free to reopen if there's still anything to discuss.


autoflip 0x00d36c4

Please make sure that this is a solution issue.
System information (Please provide as much relevant information as possible)

Have I written custom code (as opposed to using a stock example script provided in Mediapipe):

bazel-out\x64_windows-opt\bin\mediapipe\examples\desktop\autoflip\run_autoflip --calculator_graph_config_file=mediapipe/examples/desktop/autoflip/autoflip_graph.pbtxt --input_side_packets=input_video_path=mediapipe/examples/desktop/autoflip/life_at_google.mp4,output_video_path=mediapipe/examples/desktop/autoflip/life_at_google_autofliped_v1.mp4,aspect_ratio=1:1

MediaPipe version:
Bazel version: 5.1.1
Solution (e.g. FaceMesh, Pose, Holistic): autoflip

The first time I ran AutoFlip, I got a well-cropped, well-played video. However, the error continues to occur after that. When I got the right video, ffmpeg and open264 lib was not installed. And the error appears even after installing ffmpeg, open264 lib.
The mediapipe git clone is also new(I did it today), and the error continues to occur even when the bazel is newly installed.
Please help me.... I really need your help.
Standalone code you may have used to try to get what you need :

Other info / Complete Logs :
Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached:
set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC
set BAZEL_VC_FULL_VERSION=14.29.30133
set BAZEL_WINSDK_FULL_VERSION=10.0.19041.0
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C://Users//kkhhj//AppData//Local//Programs//Python//Python38-32//python.exe" mediapipe/examples/desktop/autoflip:run_autoflip
I changed ceres.bazel because of the issue #2985
C:\Users\kkhhj\AppData\Roaming\SPB_Data_bazel_kkhhj\jbcms7g5\external\ceres_solver\bazel\ceres.bzl
cmd:
C:\Users\kkhhj\mediapipe>bazel-out\x64_windows-opt\bin\mediapipe\examples\desktop\autoflip\run_autoflip --calculator_graph_config_file=mediapipe/examples/desktop/autoflip/autoflip_graph.pbtxt --input_side_packets=input_video_path=mediapipe/examples/desktop/autoflip/life_at_google.mp4,output_video_path=mediapipe/examples/desktop/autoflip/life_at_google_autofliped_v1.mp4,aspect_ratio=1:1
'ffmpeg'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
ls: cannot access 'C:\Users\kkhhj\AppData\Local\Temp\sals.0': No such file or directory
Failed to load OpenH264 library: openh264-1.7.0-win64.dll
Please check environment and/or download library: https://github.com/cisco/openh264/releases
[libopenh264 @<PHONE_NUMBER>4bd200] Incorrect library version loaded
Could not open codec 'libopenh264': Unspecified error
C:\Users\kkhhj\mediapipe>

Hi @kim-minsol ,
Could you provide steps to reproduce this issue.

Hi @kim-minsol , Could you provide steps to reproduce this issue.

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C://Users//kkhhj//AppData//Local//Programs//Python//Python38-32//python.exe" mediapipe/examples/desktop/autoflip:run_autoflip

I built autoflip with this code, but the issue #2985 occurred during the process.

To resolve the error, Wno-sign-compare was removed from the ceres.bzl part.

After the build, autoflip ran well and got the video properly. (life_at_google.mp4)
However, the log that ffmpeg is not running and the version of openh264 lib is not correct was app was shown, so I installed it.

After installation, I tried to run the same video again with input, but 0x00d36c4 error occurred.

After removing ffmpeg and openh264, I tried to run it with the same and different videos, but I get the corresponding error.

(+) I rebuilt bazel and mediapipe git clone and succeeded in getting a proper video.

(+) However, if you run the same image twice with input, the corresponding error (0x00d36c4) occurs again.

I'm curious about the reason why the video is broken and the solution. I need help!

Hi @kim-minsol ,
We have similar closed issue , please check below link
https://stackoverflow.com/questions/41972503/could-not-open-codec-libopenh264-unspecified-error


ncclRemoteError

Who can help me？

Can you provide more details? How did you get the error, what were you doing, whats your platform/device?
You're github issue right now gives no details to work with

Closing this issue for now.


Expose immutable Metadata from RouteConfig

Since extensibility of the yarp is work in progress yet I use Metadata to add some additional information that I can later use to run my own middelware. Without Metadata being accessible through Endpoint->Metadata->RouteConfig->Metadata I need to build my own store for metadata which is unfortunate because I already have everything.

For reference, can you get an example of the kind of information you are adding to the route metadata?

For reference, can you get an example of the kind of information you are adding to the route metadata?

Sure. I'm still in a process of estimating yarp and I'm working on a POC that has the functionality that is currently used in production. I'm thinking on separating configuration from the RP itself so that I don't need to update RP every time I add new route. It should look like this
RP ---watch_and_load---> combined JSON config <---update--- ConfigUpdaterApp
                                                                ↑       ↑
                                                  route_collection1    route_collection2

I want combined json config to be a standard config for RP, no additional stuff. That means currently that I need to rely on metadata if I want something custom (transform extensibility isn't there yet). Something custom is for example a transformation that is not available in RP now or another middleware that I want to activate on the route. For example I want to short circuit certain paths and don't let them go through. I add metadata item { "ShortCircuit", ""}. Now in my RP I add a ShortCircuitMiddleware that needs to somehow understand which routes should be short circuited. Since all the meatadata is available on the endpoint (only hidden because of internal classes) I could use
if (context.GetEndpoint()?.Metadata.GetMetadata<RouteConfig>()?.Metadata?.TryGetValue("ShortCircuit", out var _))
    // short circuit the request

So I want to reuse existing ProxyRoute structure to add functionality and I need an access to this additional data

After https://github.com/microsoft/reverse-proxy/pull/328 got merged, you could add your custom metadata to YARP endpoints.

@Kahbazi I think they're asking about different metadata in this case. Endpoint.Metadata is a routing concept, but RouteConfig.Metadata is just extra config input.

@Tratcher I was thinking about adding ProxyRoute.Metadata directly to Endpoint.Metadata or creates an object from ProxyRoute.Metadata and add it to Endpoint.Metadata in ReverseProxyConventionBuilder.ConfigureRoutes(Action<IEndpointConventionBuilder, ProxyRoute> convention).


[WIP] Prevent programmatic changes to trigger events

// WIP : Need better checks to avoid unsubscribing/resubscribing for nothing; Also need unit tests and docs

Closes #304
All events related to property change in Xamarin.Forms are triggered both by UI and programmatic updates.
While events triggered by programmatic changes are acceptable in OOP, in Fabulous, there is some drawbacks:

Unnecessary update messages (model is already up-to-date, no need to update it again)
Unnecessary UI updates
In some conditions, this may trigger infinite loops (see #161)
In some cases, this might introduce unwanted behaviors in Fabulous (see #304)

Overall this systematic event triggering has a negative impact on both performance and ease of use (requires developers to use workarounds like debounce to reduce the number of messages)
This PR changes the way DynamicViews is generated, going away from strict XF matching. Events are now handled separately.
Instead something like that (which would trigger a TextChanged event when updating Text)
match prevTextChangedOpt, currTextChangedOpt with
| ValueSome prevValue, ValueSome currValue when identical prevValue currValue -> ()
| ValueSome prevValue, ValueSome currValue -> target.TextChanged.RemoveHandler(prevValue); target.TextChanged.AddHandler(currValue)
| ValueSome prevValue, ValueNone -> target.TextChanged.RemoveHandler(prevValue)
| ValueNone, ValueSome currValue -> target.TextChanged.AddHandler(currValue)
| ValueNone, ValueNone -> ()

match prevTextOpt, currTextOpt with
| ValueSome prevValue, ValueSome currValue when identical prevValue currValue -> ()
| _, ValueSome currValue -> target.Text <- currValue
| ValueSome _, ValueNone -> target.Text <- ""
| ValueNone, ValueNone -> ()

This was rewrote like:
let shouldUpdateTextChanged = not ((identical prevTextChangedOpt currTextChangedOpt) && (identical prevTextOpt currTextOpt))

if shouldUpdateTextChanged then
    match prevTextChangedOpt with
    | ValueSome prevValue -> target.TextChanged.RemoveHandler(prevValue)
    | ValueNone -> ()

match prevTextOpt, currTextOpt with
| ValueSome prevValue, ValueSome currValue when identical prevValue currValue -> ()
| _, ValueSome currValue -> target.Text <- currValue
| ValueSome _, ValueNone -> target.Text <- ""
| ValueNone, ValueNone -> ()

if shouldUpdateTextChanged then
    match currTextChangedOpt with
    | ValueSome currValue -> target.TextChanged.AddHandler(currValue)
    | ValueNone -> ()

Closed in favor of #530


Rewrite Sprites

This rewrites the sprites logic but depends on the BitmapRegistry changes so it merges to that branch. I've put this in a different merge request to explain a bit in the review comments.

For me now the name 'Sprite' is strange. It is now only the area of the bitmap that is drawn to screen. So something as 'BitmapArea' or 'BitmapPart' (I don't like both of them) should be used.

For me now the name 'Sprite' is strange. It is now only the area of the bitmap that is drawn to screen. So something as 'BitmapArea' or 'BitmapPart' (I don't like both of them) should be used.

How about 'BitmapSection'?

Yes, sounds a bit better. Also, BitmapBounds, BitmapSource or BitmapSubset would work. I would prefer the last.
This should be used for all Bitmaps. Normally this subset should be by default (0, 0, width, height) of the bitmap (perhaps (0, 0, -1, -1) for whole bitmap?). For 'Sprites' this value isn't the default, but one with the right coordinates.
With this, a SpriteCache isn't needed anymore. You only have a cache for the Bitmap and later use the subset coordinates to draw the bitmap. The most drawing engines have a special function for this.
If you remove the most parts of the Sprite, you could also use a MRect for the subset.


Few SharePoint library properties missed to copy when using MoveCopyUtil feature

I have used the below code to copy the files from One library to other in a SharePoint site by following the below mentioned Microsoft article,
https://learn.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.client.movecopyutil.copyfile?view=sharepoint-csom
MoveCopyOptions option = new MoveCopyOptions();
option.KeepBoth = true;
MoveCopyUtil.CopyFile(clientContext, SrcFile, DestFile, true, option);
But on few instances, the file was copied successfully to the destination library but few properties failed to get copied. Can someone please check what could be cause of this issue.

Any update is there for this?

This and the CopyFolder (and indeed all the rungs of that particular set of documentation) should state what the limits of internal file size(s) is/are.
I have attempted to utilise this utility and there are unspoken limits where it will fail based on a file / folder that is too large ... but there's no way to mitigate this with your input. Nor any way to tell if it copied everything but one single large file, or there were multiple large files but it only showed the error for one.


[firebase_storage] Support the v2 Android embedder plugins API

@amirh
The issue at https://github.com/flutter/flutter/issues/41877 has been closed and moved here. Future collaboration on this issue will be done here.

Hi @amirh
could you please provide your flutter doctor -v
and your flutter run --verbose.
Also, to better address the issue, would be helpful
if you could post a self contained app on github
or the steps to reproduce it.
Thank you

This is now implemented.


Reverting back to the azure-communication-identity beta changes

Description
The latest patch release branch for the azure-communication-identity SDK was merged into the main branch by mistake, and all the beta version changes were overridden by the patch release changes. We are reverting it back to the beta version changes.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-communication-identity


Unnecessary wakeup

Describe the bug
orbtk calls update on minifb in a tight loop:
https://github.com/redox-os/orbtk/blob/54301bcc796c9ba1812f78528c91b93a24b9877c/crates/shell/src/minifb/mod.rs#L361-L382
However, minifb::Window::update unconditionally wakes up after the amount of time for update rate elapses, instead of waiting for actual events to happen.
So even if orbtk stays in low CPU usage, it still consumes CPU from time to time.
On linux, you can find an orbtk program to be in nanosleep most of the time. For comparison, a typical gtk program spends most time in poll. Even firefox stays in poll, pthread_cond_wait, and pthread_cond_timedwait most of the time.
This is similar to #136, but I believe this is still a problem independent of how #136 is resolved.
To Reproduce
Steps to reproduce the behavior (linux):

Run an orbtk program
Attach the debugger
You'll likely end up in a nanosleep with only a short amount of time before it wakes up.

Expected behavior
Actually polling the input events we're waiting for.
OS
Linux, but the problem should be universal.

Thank you very much. Some architectural changes are needed in OrbTk to archive that. The wake up need to be called from window events and custom events that could come from a background thread. The next big topic would be better mechanisms to support async functions and custom threads https://gitlab.redox-os.org/redox-os/orbtk-mirror/issues/215. I will use this topic also to implement poll in OrbTk.

Should be fixed.


Helm chart

I assume due to #169 that the Helm Chart in this repo shouldn't be considered ready for use.
Before it gets published anywhere I noticed that the template/deployment.yaml is actually a DaemonSet, so it should be renamed accordingly. Also the DaemonSet resources does not support a replicas field in the spec.

Yeah, that was a recent update. I don't care all that much if the file is named deployment.yaml or daemonset.yaml, but it is good hygiene to clean it up.
Most of the testing happens from the direct manifests, not from the Helm chart. We really should auto-generated one from the other, and then we are in a reliable channel all the way through.


[Core]: Defining an Embedded COBOL subset as a C replacement for systems programming (and why strict aliasing is broken)

Let's start with the problem that I'm having (and attempting to solve). While trying to figure out some memory related details in our runtime, I realized that some COBOL features are impossible to implement in standard conforming C without invoking undefined behavior. More specifically, according to the rules in the C standard, it's not possible to implement COBOL's REDEFINES (unions) in C without invoking undefined behavior, and by extension most kinds of type punning is also prohibited.
I'll clarify what I mean by this, as this might also come as a surprise to other C developers. Both the C99 and C11 standards contain a footnote saying the following:

If the member used to access the contents of a union object is not the same as the member last used to store a value in the object, the appropriate part of the object representation of the value is reinterpreted as an object representation in the new type as described in 6.2.6 (a process sometimes called "type punning"). This might be a trap representation.

Which at first makes it seem like C allows the kind of type punning we need to make COBOL's REDEFINES work. However, footnotes are specified in the foreword as non-normative:

In accordance with Part 3 of the ISO/IEC Directives, this foreword, the introduction, notes, footnotes, and examples are also for information only.

Meaning that footnotes can't define normative behavior and should only clarify the existing normative text with additional information. No normative text exists in the C standard that specifies the kind of type punning described in the footnote. In fact, we have sections in the standard that contradict what is said in the footnote:

The value of at most one of the members can be stored in a union object at any time. . . .

If the value of only one member can be stored in a union, then the value of the other members is non-existent (and reading from them would be UB). Nothing stops Clang and GCC from optimizing (currently or in the future) based on the assumption that union members, other than the very first written to, are in fact non-existent, so we risk undefined behavior here.
The other issue is, that even if we consider the footnote as normative (and resolve the conflicts), C's strict aliasing rules (in 6.5) would still prohibit us from accessing the same memory location as objects of different types:

An object shall have its stored value accessed only by an lvalue expression that has one of the following types:
— a type compatible with the effective type of the object,
— a qualified version of a type compatible with the effective type of the object,
— a type that is the signed or unsigned type corresponding to the effective type of the object,
— a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object,
— an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or
— a character type.

So we have to assume that accessing (reading or writing) to the same memory location using different types is at best implementation-defined (-fno-strict-aliasing), and at worst undefined behavior. I'm not the first one having issues with how the standard defined these rules, as it turns out the Linux kernel is compiled with -fno-strict-aliasing for this same reason (and generates a ton of type punning warnings when the flag is turned off).
This strict aliasing issue is, of course, not only quite awful for any low-level systems programming, but also really bad for us because Standard COBOL does not have the same strict aliasing restrictions, and in fact, the ability to access the same memory location as different types is required in order to make REDEFINES (unions) work as specified by the standard.
As described in the section 13.18.44 of the COBOL23 standard:

The REDEFINES clause allows the same computer storage area to be described by different data description entries.

And again a little further down, in the general rules for the clause:

When the same storage area is defined by more than one data description entry, the data-name associated with any of those data description entries may be used to reference that storage area.

Being able to access the same memory location as different types is a requirement for Standard COBOL, and is at the same time a violation of Standard C's strict aliasing rules. So we can conclude that C as it currently is, cannot be used to implement COBOL's REDEFINES without invoking undefined or implementation-defined behavior (and by extension, C# unions have the same issue).
Some people have suggested using memcpy as a workaround to make type punning work in C, but this has several issues, one being that in order for this to work we need the compiler to be able to recognize the use of memcpy for type punning and optimize it out (not always possible, and risks more UB). If for some reason the call to memcpy is not optimized away and the call is actually executed then we'd be calling memcpy on overlapping memory, which is undefined behavior.
Also, using a memcpy-like function for type punning can cause undefined behavior in COBOL. As described in section 14.6.10:

When the data items referenced by a sending and a receiving operand in any statement are identified as sharing either a part of or all of their storage areas, and the rules for the statement do not provide for a specific result in the following circumstances, then:

When the data items are not described by the same data description entry, the result of the statement is undefined.

I'd rather not have to deal with conflicting UB on both sides and strict aliasing weirdness, so I'm proposing a subset of Standard COBOL, that I'll be calling "Embedded COBOL", which consists only of language features that map as close to one-to-one as possible with freestanding standard C.
Please note that this won't be another dialect that Otterkit will directly support in addition to Standard COBOL, but rather a subset of Standard COBOL features that we'll be prioritizing (implementing first) in order to replace our existing C code as soon as possible.
I'll update this issue soon to start adding the C to COBOL feature mappings, let me know if anyone has any feature suggestions from C (that map to COBOL) that I should add to the list.
Tagging both @gabrielesilinic, and @TriAttack238. I need your feedback on this.
Also tagging @GitMensch. I don't think COBOL has any restrictions that would make this impossible, let me know if I'm wrong on this. Also, feel free to add any C features I should include that map directly to COBOL.

Arithmetic operations (C to COBOL feature mapping)
Probably the most basic set of operations a programming language can support are arithmetic operations. The following is how these operations are done in C:
int a = 17;
int b = 25;
int res;

res = a + b; // addition
res = a - b; // subtraction
res = a * b; // multiplication
res = a / b; // division

Naturally, COBOL does not have standalone expressions in the same sense that C does (with a few exceptions). The following is how those same operations would be defined in COBOL by using the arithmetic statements:
*> In the data division
01 a binary-long value 17.
01 b binary-long value 25.
01 res binary-long.

*> In the procedure division.
add a to b giving res.
subtract a from b giving res.
multiply a by b giving res.
divide a by b giving res.

Alternatively, those can also be written using the compute statement. While the above statements are much closer to assembly in how they look (add, sub, ...), the following statement is closer to how arithmetic expressions look in C:
*> In the procedure division.
compute res = a + b.
compute res = a - b.
compute res = a * b.
compute res = a / b.

Since the the compute and arithmetic statements are identical in behavior, an optimizing COBOL compiler can "lower" all arithmetic statements into their compute equivalent, as long as the runtime behavior and result of execution still match what is specified by the standard for each statement.

Manual memory allocation (C to COBOL feature mapping)
An important feature of systems programming languages is the ability to manually request dynamic memory with a user-defined size, and then at a later point manually free the memory. In C this is done through library calls to malloc and free:
// Returns a pointer to a block of at least 25 bytes.
void* ptr = malloc(25);
// Frees the memory pointed to by ptr.
free(ptr);

In COBOL, dynamic memory can be requested from the runtime by using the built-in allocate statement, and freed using the built-in free statement.
*> In the data division
01 ptr pointer.

*> In the procedure division.
*> Returns a pointer to a block of at least 25 bytes.
allocate 25 characters returning ptr.
*> Frees the memory pointed to by ptr.
free ptr.

Alternatively, we can also allocate just enough memory to fit a certain data item. Please note that this syntax requires the data item to be described with the based clause.
*> In the procedure division.
allocate b-item returning ptr.

In the above example, the returning phrase can be omitted if the pointer is not needed. The address of the b-item data item will be set to the address of the obtained storage.

Re: mapping - and exception handling in general
A direct mapping of a COBOL statement to anything will commonly only be possible as long as the user either doesn't have one of the most important things in the standard enabled or you handle it inline (which is not a direct one statement mapping any more): exception handling.
Don't forget that this may not only be enabled by >> TURN but also by PERFORM format-3 (exception-handling).
Often a direct mapping will also only work if the data-type matches a C data type, like POINTER or BINARY-LONG and if all data types involved match "enough".
Re: REDEFINE (C union) and records
It is guaranteed that a union will have the size of its biggest element (sizeof(some_union))  and that this will be used to allocate the union if you use that locally; and while the standard is explicit about "you can take out what you put in, but don't take a guarantee about taking out anything else" this is no problem for COBOL redefine, but about "if you put a char into a union containing all simple data types, getting out an int will be problematic".
If you allocate it with zeroed memory and you put a char in, you will still have a char plus zeroed memory in afterwards.
... that's really no problem for COBOL rules.
Note that this is different to structs as those will commonly include padding bytes (so no option to use this for records directly).
But there's a defined way that is guaranteed to work with COBOL rules: don't put the data-items into the struct but the amount of memory they need using char[somesize] and then set the data-item's storage to that memory. Using this you also don't need to think about possible undefined union access; you don't need to use unions at all (but they still can make reading and debugging easier).
Re: arithmetic operations
You can only use direct assignments if both parts have the same scale (you can adjust literals to match that) and if the result is guaranteed to fit completely into the target item.
For computations: those can also only be used with a COBOL to C mapping if the target scale and size matches the maximum; as soon as rounding or truncation can apply you don't have any mapping that will work.
Re: memory allocation
This is one of the spare things that should work correctly with a direct mapping, if exception-handling is disabled.
For ALLOCATE and FREE the inline exception handling would be not that bad (testing a resulting pointer / the argument before the free; then handle, then take action).

Hey, @GitMensch.

But there's a defined way that is guaranteed to work with COBOL rules: don't put the data-items into the struct but the amount of memory they need using char[somesize] and then set the data-item's storage to that memory. Using this you also don't need to think about possible undefined union access; you don't need to use unions at all (but they still can make reading and debugging easier).

In C this will only work with -fno-strict-aliasing. Reason is the strict type aliasing rules. These rules are to make type-based alias analysis possible (optimization essentially), in which the compiler assumes that an access into a variable of one type is not modified by an access into a variable of a different type (access meaning reading or writing).
So lets say that we define the following in the data division:
 01 Int32.
     05 ivalue binary-long.
 01 Float32 REDEFINES Int32.
     05 fvalue float-binary-32.

That has some real world applications, such as getting the IEEE representation of the float in an integer, and while it would be perfectly valid and free of undefined behavior in Standard COBOL, in C this is very prone to strict aliasing violations.
Due to strict aliasing, the compiler can assume that an access into ivalue is not modified by an access into fvalue. This can lead to either undefined behavior, or cases where the optimizer removes code that is actually needed.
Lets consider the following actions in a sort of pseudo assembly:
move ivalue, 0;      // write 0 into ivalue
move fvalue, 25.0;   // write 25.0 into fvalue
move rax,    ivalue; // write ivalue into rax

Type-based alias analysis in this case, can assume that our write into ivalue wasn't modified by our write into fvalue, so instead of loading ivalue into rax, the optimizer loads 0 into rax. Which then leads to the function returning 0, instead of the IEEE representation of 25.0 in an integer.
COBOL doesn't have strict aliasing so that's not an issue there, but this set of actions when done in C can lead to this behavior from the optimizer (without -fno-strict-aliasing).
Here's a snippet of C that demonstrates this behavior.
#include <stdio.h>

int aliasing(float *fvalue, int *ivalue) {
    // move ivalue,   0; // write 0 into ivalue
    *ivalue = 0;
    // move fvalue,  25; // write 25.0 into fvalue
    *fvalue = 25.0f;
    // move rax, ivalue; // write ivalue into rax
    return *ivalue;
}

int main(void) {
    // We'll use the same memory location:
    int int32 = 0;

    // Should print 0 here:
    printf("%d\n", int32);

    // Reinterpret (redefines) an int as a float:
    int32 = aliasing((float*)(&int32), &int32);

    // This prints<PHONE_NUMBER> on -O0 (correct)
    // but it prints 0 on -O2 (?????)
    printf("%d\n", int32);
}

It shows the correct result that we want on -O0, but on -O2 it breaks completely and returns 0. If we look at the assembly output we can see why this happens.
aliasing: # @aliasing
  mov dword ptr [rsi], 0
  mov dword ptr [rdi],<PHONE_NUMBER>
  xor eax, eax
  ret

The optimizer, through type-based alias analysis, assumed that our write into ivalue (0) wasn't modified by our write into fvalue (25.0). So instead of making another memory move, it decided to zero rax/eax (which returns 0, the value of ivalue before the write into fvalue).
If we rewrite that C snippet into COBOL (but using REDEFINES) and then compile back to C, it should have the same issues due to C's strict aliasing. Casting a char* (or char[]) into an int* or a float* (so we can store those there) is also a violation of these rules, and the optimizer is free to break more stuff if we do that.

Due to strict aliasing, the compiler can assume that an access into ivalue is not modified by an access into fvalue.

Can it? I think not because in C you'd either have something like
union sample {
   struct Int32 {
      int ivalue;
   }
   struct Float32 {
      float fvalue;
   }
}

Any working C compiler must know that any access to one may change the other, because this is what unions do!
Otherwise you'd have to have something like
  char data[4] = { 0 };
  char *Int32 = &data;
  int *ivalue = (int *)&data;
  char *Float32 = &data;
  float *fvalue = (float *)&data;

And as those are all pointers, a C compiler cannot make any assumptions about its use, and if, then it must assume that all access to any of those pointers will adjust the others.

Casting a char* (or char[]) into an int* or a float* (so we can store those there) is also a violation of these rules, and the optimizer is free to break more stuff if we do that.

You possibly want to check the two samples above with different compilers and different optimization levels. I don't think that those create strange results, do they?

@KTSnowy can we pretty please have a simpler syntax? COBOL may be cool but it's quite verbose, if we could make it better and faster to write we probably should, it's fine to take inspiration from COBOL but ot doesn't have to be cobol

@GitMensch, yeah the part of the C standard that says that we can take a different union member from the one last written to is only valid (defined behavior) in the context of the strict aliasing rules. Using a union to access the same memory address as both an int and a float is a violation of the rules, and the optimizer will still assume that both pointers don't alias each other.
Replacing the single int with the sample union will result in the same behavior. The program when compiled with -O0 returns 0 \n<PHONE_NUMBER> (correct result), and when compiled with -O2 it will return 0 \n 0 (broken result).
#include <stdio.h>

union sample {
    struct Int32 {
        int ivalue;
    } Int32;
    struct Float32 {
        float fvalue;
    } Float32;
};

static inline int aliasing(float *fvalue, int *ivalue) {
    // move ivalue,   0; // write 0 into ivalue
    *ivalue = 0;
    // move fvalue,  25; // write 25.0 into fvalue
    *fvalue = 25.0f;
    // move rax, ivalue; // write ivalue into rax
    return *ivalue;
}

int main(void) {
    // We'll use the same memory location:
    union sample storage = {0};

    // Should print 0 here:
    printf("%d\n", storage.Int32.ivalue);

    // Reinterpret (redefines) an int as a float:
    storage.Int32.ivalue = aliasing(
        &storage.Float32.fvalue, &storage.Int32.ivalue
    );

    // This prints<PHONE_NUMBER> on -O0 (correct)
    // but it prints 0 on -O2 (?????)
    printf("%d\n", storage.Int32.ivalue);
}

I tried adding static inline (result is the same without it) to make sure that it wasn't the function call that was making the result weird. This would hopefully force the compiler to inline everything and to use the pointers directly (as a union), instead of opaque pointers through a function call.
The optimizer in this case just deleted my assignment of 25.0f into the float (assumed it wasn't needed), and decided to zero the register of the value being passed into the printf calls (It's what the xor is doing to the esi register, rdi is passing the string format). The resulting assembly is just passing zeroed registers into printf.
main: # @main
  push rbx
  lea rbx, [rip + .L.str]
  mov rdi, rbx
  xor esi, esi
  xor eax, eax
  call printf@PLT
  mov rdi, rbx
  xor esi, esi
  xor eax, eax
  call printf@PLT
  xor eax, eax
  pop rbx
  ret
.L.str:
  .asciz "%d\n"

I also tested with the char[] in the example you gave. The resulting assembly is the same as the one above, just zeroing the register of the value being passed to printf.
#include <stdio.h>

static inline int aliasing(float *fvalue, int *ivalue) {
    // move ivalue,   0; // write 0 into ivalue
    *ivalue = 0;
    // move fvalue,  25; // write 25.0 into fvalue
    *fvalue = 25.0f;
    // move rax, ivalue; // write ivalue into rax
    return *ivalue;
}

int main(void) {
    // We'll use the same memory location:
    char data[4] = { 0 };
    char *Int32 = data;
    int *ivalue = (int *)&data;
    char *Float32 = data;
    float *fvalue = (float *)&data;

    // Should print 0 here:
    printf("%d\n", *ivalue);

    // Reinterpret (redefines) an int as a float:
    *ivalue = aliasing(
        fvalue, ivalue
    );

    // This prints<PHONE_NUMBER> on -O0 (correct)
    // but it prints 0 on -O2 (?????)
    printf("%d\n", *ivalue);
}

The only way to "fix" this is by passing -fno-strict-aliasing, which seems more like a temporary fix to me. At that point we're not writing C anymore, but a dialect without strict aliasing, one which other compilers are not required to support at all. This same behavior occurs on both Clang and GCC (on x86), when tested with both -O0 and -O2.

Checked with GCC Debian 10.2.1-6, the result is two times ´0, even with ?-O3 -fstrict-aliasing`. Same with the following compilers on wandbox.org: GCC 12, gcc HEAD 14.0.0 2023090, clang 15.0.7 and clang HEAD 18.0.0 - for all three given samples.
The only way to create an issue is to not compile the source as C but C++ (g++ instead of gcc raises the mentioned error with all three code variants). Are you sure you use gcc?

can we pretty please have a simpler syntax?

@gabrielesilinic, this is meant as a strict subset of Standard COBOL that we'd use to replace C in our native code. Not a different dialect, more like a coding guideline of which Standard COBOL features can be used in place of C features, to replace C in systems programming (COBOL can be low level enough for it to work nicely)
Due to standard C misbehaving when accessing the same memory location as different types, implementing certain COBOL features (without undefined behavior) is impossible in C.

Checked with GCC Debian 10.2.1-6, the result is two times ´0, even with ?-O3 -fstrict-aliasing`. Same with the following compilers on wandbox.org: GCC 12, gcc HEAD 14.0.0 2023090, clang 15.0.7 and clang HEAD 18.0.0 - for all three given samples.

@GitMensch, printing two times 0 is the incorrect result. After writing the 25.0f into the float we should be getting one 0 and one<PHONE_NUMBER>.

I'm compiling it with these options, and just switching the optimization levels. Same options on GCC.
clang -O0 -std=c17 -pedantic -Wall -Wextra -Werror -o test test.c

Essentially the C compiler is optimizing our float assignment away, which makes it result in two zeros. In Standard COBOL this shouldn't happen, the float should be assigned to the same memory location as the int and displayed back as an int.

@gabrielesilinic We could use LLVM though, compiling COBOL to LLVM IR. Making it actually native, without requiring a C# or C translation step.

printing two times 0 is the incorrect result. After writing the 25.0f into the float we should be getting one 0 and one<PHONE_NUMBER>

it obviously is getting late for me... and you're correct only with lower optimization or -fno-strict-aliasing we get the expected result with all of those 3 test programs.

it obviously is getting late for me...

Sorry if this caused you to stay up late. We can continue tomorrow and see if we can find a solution for it if you'd like.

and you're correct only with lower optimization or -fno-strict-aliasing we get the expected result with all of those 3 test programs.

I assume it's because the optimizations based on the strict aliasing rules are only enabled with -O2 and -O3 on both GCC and Clang. Disabling the optimizations, either with the -fno-strict-aliasing flag or a lower optimization level "fixes" the problem, but both of these aren't truly permanent or ideal fixes (output executable could be much slower).
It might be time to bring in LLVM into the project, if we can't fix this properly. We could then make it behave exactly how the standard requires, without any inherited weirdness from both C# and C.

I've noticed that their IR assumes that whatever language is being compiled has C-like semantics.

We need an IR that has COBOL semantics, because translating COBOL semantics to C-like semantics is a huge pain. I might change this issue's purpose (and name) from a Standard COBOL subset, to a Standard COBOL intermediate representation.

@GitMensch, closing this issue now, I'm creating a new one to explain the situation a bit better. This one focused too much on just C's strict aliasing and COBOL to C mappings, but that's not the whole story.


User authentication and cache persistence API

Add an Authenticate method to user credentials, and persistent token caching options.

The mentioned blocker is now implemented here: https://pkg.go.dev/github.com/AzureAD/microsoft-authentication-extensions-for-go/cache.
I'm interested in seeing this moved forward so that tools like AZCopy can support newer authentication mechanisms like  federated credentials

Thanks for pointing this out. I updated the metadata. This feature is almost ready to ship--#21244 and #21245 have the implementation minus a Linux storage implementation which is almost complete but not quite ready for release.


Cheatsheet for migrating from oandapy to oandapyv2

Hi,
I think there is a need for a cheat sheet to migrate the old to the new version.
oanda = oandapy.API(environment="practice", access_token=OANDA_ACCESS_TOKEN)
response = oanda.get_prices(instruments="EUR_USD")

api = oandapyV20.API(environment="practice", access_token=OANDA_ACCESS_TOKEN)

e.g. how do I do get_prices now in V2?
Many Thanks,
Houman

@houmie
Hi, please check the examples repo: https://github.com/hootnot/oandapyV20-examples
it has a candle-data application and different streaming examples
Also check the docs: http://oanda-api-v20.readthedocs.io/en/latest/oandapyV20.endpoints.html#module-oandapyV20.endpoints.instruments

I've extended the candle-data example with the price parameter .
The params parameter simply accepts all the parameters as they are in the specs of OANDA's REST V20 docs, see developer.oanda.com/rest-live-v20
So if you pass:
params={'count': 2, 'price': 'B', 'granularity': 'M5'}

you will get the 'bid', pass 'BA' you get 'bid/ask', run the example:
python src/candle-data.py --count 1 --price MBA --i EUR_USD --gr M5 --nice
{
 "candles": [
  {
   "complete": false,
   "bid": {
    "h": "1.06224",
    "c": "1.06224",
    "l": "1.06216",
    "o": "1.06216"
   },
   "mid": {
    "h": "1.06230",
    "c": "1.06230",
    "l": "1.06223",
    "o": "1.06223"
   },
   "volume": 6,
   "time": "2016-12-01T06:35:00.000000000Z",
   "ask": {
    "h": "1.06236",
    "c": "1.06236",
    "l": "1.06230",
    "o": "1.06230"
   }
  }
 ],
 "instrument": "EUR_USD",
 "granularity": "M5"
}

Hi, how do you specify in the instruments.InstrumentsCandles() params the dailyalignment or the weeklyalignment? for the daily OHLC data?

Hi, you are posting in the oanda repo, but reading your post you seem to use oandapyV20.
Regarding oandapV20: every parameter you find in the docs under request parameters can be passed via the params dict. So, that also goes for the alignment parameters. https://developer.oanda.com/rest-live-v20/instrument-ep/
If you have questions regarding data differences, pls drop those at OANDA, maybe<EMAIL_ADDRESS>


ES6 export from source

jshint errors when encountering an ES6 export from a source:
export { foo } from "source"

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-exports

what version?

and, what error, for that matter

Latest version and master branch. Error is a silent parse error which surfaces as an undefined identifier.
Hopefully the attached pull helps illustrate.


Feature: CI Config Generator

Two major components here.
Default parameter generator.

Issue: #86
PR: None yet.

Config structure generator

Issue: #209
PR: #217

Release v0.9.

Closing as the only outstanding issue is #86;


Redux connected components are not receiving muiTheme updates

Problem description
I have a root component that provides the style to child components
The theme depends on the component's state and I'm able to change the theme and see the components re-render with the new applied theme
However, any component that is wrapped on redux's connect hoc do not receive the new theme.
Versions

Material-UI: 0.16.7
React: 15.4.1
Browser: 56.0.2924.87 (64-bit) on Mac OS X

As far as I know, MUI theme is used as a React context object; but Redux connect HOC doesn't propagate React context relative changes.
But you can let Redux propagates any changes by setting its connect "pure" params to 'false'.
But then, every changes will be propagated to your connected components, so your components will re-render even if they don't have to.
One way to let your components know the MUI theme's changed without triggering useless components re-rendering is to overload React lifecycle method 'shouldComponentUpdate' on your connected component.
Then, you could create a base React component class of your own overloading this method. This method should then compare React props & state + your MUI context changes the way you want (isSomethingHasChangedInMUITheme() function should implement that).
ex:
shouldComponentUpdate(nextProps, nextState) {     if ( !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || (this.context.muiTheme && isSomethingHasChangedInMUITheme(this.context.muiTheme)) ) {         return true;     }     return false; }
shallowEquals only shallow checks object properties changes.
Also, I think another way would be creating a HOC modifying the way Redux connect originally behaves.
Don't hesitate to challenge me if you consider I'm wrong; I need to improve my knowledge as well.

Thanks for the explanation and the workaround :)
I will try and give you a feedback

@rafaelcorreiapoli You raised a good pain point. The theme update depends on the React rendering propagation to work correctly. Any pure component along the way might break it.
@Doubl3 Thanks for sharing this workaround.
I have been noticing another pattern used in styled-component to propagate theme update: an event system where components listen for theme updates. It's basically what react-redux is doing internally, but on the store. cc @nathanmarks

I also had this kind of Problem :( Put I don't want to play with the React lifecycle. My solution is little bit primitive:

store the theme into the redux state
setup persisatance to rehidrate the theme state after full page reload
after changing the theme in the redux state invoke a full page reload

The bad side is that every theme change needs a full page reload. But in my case a user won't change the theme all day and the theme should stay the same after he choses one.

There is quite a talk about this whole context and shouldComponentUpdate at react-redux and the related PR that's linked there if anyone is interested in reading.
I dont think there will be any changes soon regarding this, at least not until react 16 or even 17 comes out - i might be mistaken of course :)

@slavab89 We are going to update the internal styling solution, I think that the issue will be fixed along the way. I have added it under the v1-beta milestone

pure rendering logic will no longer block the theme propagation, we use the same approach as react-redux


Replace rustflags with build.rs extra-link-args.

Rustflags apply to ALL the crates in the graph, while we only need
them for the toplevel crate which is the only one getting linked.
Rustflags are not equal for all crates, this caused cargo to re-build the
same dependency crate multiple times uselessly. After this change, deps
are reused more, making builds faster.
Note that this only applies when sharing the target/ dir for multiple crates
in the repo which is not the default.

bors r+


Undefined variable error for defined variable

The following snippet complains that newval is not defined, however it is.
def slice_lines(val, start) {
    nlines = numlines(val)
    if (nlines < 2) {
        println("Error1.")
        quit(0)
    }
    newval = ""
    for (curr in 1 .. nlines) {
        line = getline(val, curr)
#        if (curr >= start) {
            println("Got line: $line")
#            if (curr != start) {
#                newval = printf("$newval\n$chompline")
#            }
        }
    }
    return newval
}

Error:
Bish error: Undefined variable "newval"
Abort

The real error here is:
#            }
        } <---- this line should be commented
    }
    return newval