Unify Mesh::be_to_face

Since #3379, Mesh::be_to_face was the mapping for boundary elements to "faces" (codim-1 entities) for 1D and 3D meshes, and Mesh::be_to_edge was the mapping for 2D meshes.
This PR removes Mesh::be_to_edge and simplifies some of the mesh logic.
~This PR adds 1D mesh support to Mesh::GenerateBoundaryElements and adds boundary elements to ParSubMesh in 1D.~
~(Previously, if one took a boundary submesh of a 2D mesh, no boundary elements would be created).~

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

#3811
@pazner
@tzanio
@jandrej + @hughcars + @mlstowell
8/12/23
11/3/23
⌛due 9/2/23

PR Checklist

[ ] Code builds.
[ ] Code passes make style.
[ ] Update CHANGELOG:

[ ] Is this a new feature users need to be aware of? New or updated example or miniapp?
[ ] Does it make sense to create a new section in the CHANGELOG to group with other related features?

[ ] Update INSTALL:

[ ] Had a new optional library been added? If so, what range of versions of this library are required? (Make sure the external library is compatible with our BSD license, e.g. it is not licensed under GPL!)
[ ] Have the version ranges for any required or optional libraries changed?
[ ] Does make or cmake have a new target?
[ ] Did the requirements or the installation process change? (rare)

[ ] Update continuous integration server configurations if necessary (e.g. with new version requirements for each of MFEM's dependencies)

[ ] .github
[ ] .appveyor.yml

[ ] Update .gitignore:

[ ] Check if make distclean; git status shows any files that were generated from the source by the project (not an IDE) but we don't want to track in the repository.
[ ] Add new patterns (just for the new files above) and re-run the above test.

[ ] New examples:

[ ] All sample runs at the top of the example source file work.
[ ] Update examples/makefile:

[ ] Add the example code to the appropriate SEQ_EXAMPLES and PAR_EXAMPLES variables.
[ ] Add any files generated by it to the clean target.
[ ] Add the example binary and any files generated by it to the top-level .gitignore file.

[ ] Update examples/CMakeLists.txt:

[ ] Add the example code to the ALL_EXE_SRCS variable.
[ ] Make sure THIS_TEST_OPTIONS is set correctly for the new example.

[ ] List the new example in doc/CodeDocumentation.dox.
[ ] If new examples directory (e.g.examples/pumi), list it in doc/CodeDocumentation.conf.in
[ ] Companion pull request for documentation in mfem/web repo:

[ ] Update or add example-specific documentation, see e.g. the src/examples.md.
[ ] Add the description, labels and screenshots in src/examples.md and src/img.
[ ] In examples.md, list the example under the appropriate categories, add new categories if necessary.
[ ] Add a short description of the example in the "Extensive Examples" section of features.md.

[ ] New miniapps:

[ ] All sample runs at the top of the miniapp source file work.
[ ] Update top-level makefile and makefile in corresponding miniapp directory.
[ ] Add the miniapp binary and any files generated by it to the top-level .gitignore file.
[ ] Update CMake build system:

[ ] Update the CMakeLists.txt file in the miniapps directory, if the new miniapp is in a new directory.
[ ] Add/update the CMakeLists.txt file in the new miniapp directory.
[ ] Consider adding a new test for the new miniapp.

[ ] List the new miniapp in doc/CodeDocumentation.dox
[ ] If new miniapps directory (e.g.miniapps/nurbs), add it to MINIAPP_SUBDIRS in the makefile.
[ ] If new miniapps directory (e.g.miniapps/nurbs), list it in doc/CodeDocumentation.conf.in
[ ] Companion pull request for documentation in mfem/web repo:

[ ] Update or add miniapp-specific documentation, see e.g. the src/meshing.md and src/electromagnetics.md files.
[ ] Add the description, labels and screenshots in src/examples.md and src/img.
[ ] The miniapps go at the end of the page, and are usually listed only under a specific "Application (PDE)" category.
[ ] Add a short description of the miniapp in the "Extensive Examples" section of features.md.

[ ] New capability:

[ ] All new public, protected, and private classes, methods, data members, and functions have full Doxygen-style documentation in source comments. Documentation should include descriptions of member data, function arguments and return values, template parameters, and prerequisites for calling new functions.
[ ] Pointer arguments and return values must specify whether ownership is being transferred or lent with the call.
[ ] Any new functions should include descriptions of their intended use e.g. for internal use only, user-facing, etc., along with references to example code whenever possible/appropriate.
[ ] Consider adding new sample runs in existing examples to highlight the new capability.
[ ] Consider saving cool simulation pictures with the new capability in the Confluence gallery (LLNL only) or submitting them, via pull request, to the gallery section of the mfem/web repo.
[ ] If this is a major new feature, consider mentioning it in the short summary inside README (rare).
[ ] List major new classes in doc/CodeDocumentation.dox (rare).

[ ] Update this checklist, if the new pull request affects it.
[ ] Run make unittest to make sure all unit tests pass.
[ ] Run the tests in tests/scripts.
[ ] (LLNL only) After merging:

[ ] Update internal tests to include the new features.

Looks like #3379 (merged last week) also fixes this…
@mlstowell, it seems like in 1D, be_to_face is used for the boundary element to vertex mapping. Is there any reason to have a separate be_to_edge array in 2D? To me it looks like be_to_edge is only ever used in 2D, and be_to_face is used only in 3D (and now 1D). Perhaps be_to_edge can be removed (or deprecated for backwards compatibility if needed, though it is protected) and be_to_face can be used in all dimensions?

Without looking at it yet, this should be compatible with #3461. No idea why the other PR is hovering for so long :)

This PR is now under review (see the table in the PR description). To help with the review process, please do not force push to the branch.

I resolved conflicts and also made the deprecation suggested here: https://github.com/mfem/mfem/pull/3811#discussion_r1350838612

Considering the presence of methods like Mesh::GetBdrElement and Mesh::GetBdrElementFace,
I think a more explicit name for Mesh::GetBdrFace will be better: e.g. Mesh::GetBdrElementFaceIndex or Mesh::GetBdrElementFaceId.

Considering the presence of methods like Mesh::GetBdrElement and Mesh::GetBdrElementFace, I think a more explicit name for Mesh::GetBdrFace will be better: e.g. Mesh::GetBdrElementFaceIndex or Mesh::GetBdrElementFaceId.

Done in 9863bc5bd68ee9549be275c7e62777853f8e1f14.

Merged in next for testing...

Re-merged in next for testing...

There are two issues with this PR (I believe) in tonight's autotest on tux:

The following sample run segfaulted: mpirun -np 4 ex14p -m ../data/inline-segment.mesh -rs 5 -no-vis

The GLVis build in build-test-basic complained about GetBdrElementEdgeIndex being deprecated. May be good to add a companion PR there.

The following sample run segfaulted: mpirun -np 4 ex14p -m ../data/inline-segment.mesh -rs 5 -no-vis

Should be fixed in 659432963. (Maybe the initialization logic could be refactored to make it easier to track these kinds of things).

The GLVis build in build-test-basic complained about GetBdrElementEdgeIndex being deprecated. May be good to add a companion PR there.

PR here: GLVis/glvis#266, but I think we should wait until this PR is merged first.

Thanks!

Re-merged in next for testing...

From nightly testing: there are deprecation warnings in GLVis from this PR -- we need a GLVis  PR to fix them.


streambase

add Polish version of awesome-piracy - related to #38

Streambase is dead now, I'm removing it from the repo. This is the last known good copy of it https://web.archive.org/web/20231116172917/https://rentry.co/streambase.


Does it support multi-environment deployment?

The Seata server used in development and production environments is not one, and the address needs to be maintained manually every time a release is released.

https://github.com/seata/seata/wiki/Multi-configuration-Isolation


County coordinators not receiving copy of CSV processing reports

Ali noted that while SCs were getting copies the CC was not.
Observed that CC selection was REG centric.

Code fixed and deployed to test3

Pat to ask suffolk roots to test


ignore auto generated files

I also noticed the following files in my working directory upon compiling:
libcef_dll_wrapper/
src/Release/

I think these should be added as well to the .gitignore?

You should always build outside source directory. Maybe Cmake rule to disallow building in source dir would be more appropriate?

ah, I see @spajak . Yes, when you get a chance, I think that would be great.


Firestore transactions

fixes #1934

@mp911de can you take a look if you have time? thanks

I left a few comments that you might want to have a look. The only significant issue is the missing class guard for the transaction manager implementation.

@mp911de Thanks for taking a look!
@dmitry-s Would you have time to create a post-merge PR to resolve Mark's comments while at the conference? If not, one of us can take care of it.

@mp911de Did you delete this comment? I can't seem to find it anymore, but it's in my email:

You might want to move the declaration of ReactiveFirestoreTransactionManager into an own class as the class loader finds a static reference to ReactiveFirestoreTransactionManager and that causes loading of all used types on the interface. The dedicated configuration class should be made @ConditionalOnClass

Probably it’s invisible because I added it to an outdated conversation

@mp911de Can you clarify what you meant in that comment. That bean is already annotated with @ConditionalOnClass. So, what would be the benefit of moving it to a separate class?

When Java's class loader loads the configuration class, it also sees a method returning ReactiveFirestoreTransactionManager. The class loader then attempts to load ReactiveFirestoreTransactionManager and will fail as the class requires Project Reactor to be present.
By moving the dependency into another class (say FirestoreTransactionConfiguration) and making the class @ConditionalOnClass allows Spring's class-introspection (based on ASM) to determine whether to load FirestoreTransactionConfiguration at all or whether to skip loading. Introspection happens before any class-loader gets a chance to load the class.

@mp911de I see. Can we just move the @ConditionalOnClass({ Flux.class }) up to the containing class FirestoreReactiveAutoConfiguration? We clearly depend on Project Reactor for this whole configuration.

Yes, that makes sense if the Firestore support cannot be used without Project Reactor


Tooltip formatter doesn't work

I'm trying to make use of the tooltip formatter callback function but it seems it doesn't work..
I'd do the same as in
http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/tooltip/formatter-simple/
Also, my data point objects have some properties other than just x,y coordinates that I'd display in the tooltip too...
Is there an existing way to achive this? If not, are you planning to include these?
Many thanks!

hi @turorudolf are you placing the "options", not directly in the highcharts-ng config object

hey @dfromero you're right! that was i needed! thnx!

I'm actually having an issue with the tooltip formatter callback function. I am able to update the tooltip contents correctly, but it's not rendering the html. I've attempted a copy of the object config below:
vm.userRankingConfig = {
options: {
global: {
useUTC: false
},
chart: {
type: 'bar',
height: 100
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
},
},
tooltip: {
shared: true,
formatter: function()
{
var value = this;
var string = '';
console.log(value);
    		string += '
' + value.x + '
';

    		string += '
';
    		_.forEach(value.points,function(point){
    			string += '
'
    			string += '' + point.series.name + ''
    			string += '' + point.point.y + '';
    			string += '
';
    		});

    		string += '
';

    		string += '
'

    		return string;
    	},
    	useHtml: true
    },
  legend: {
    enabled: false
  }
}

}

@jonathanwoahn do you have a demo (jsfiddle) including test data for this ?

Here you go:
http://jsfiddle.net/d377711v/
On Fri, Aug 21, 2015 at 1:06 PM, Diego Romero<EMAIL_ADDRESS>wrote:

@jonathanwoahn https://github.com/jonathanwoahn do you have a demo
(jsfiddle) including test data for this ?
—
Reply to this email directly or view it on GitHub
https://github.com/pablojim/highcharts-ng/issues/360#issuecomment-133496476
.

@jonathanwoahn try this http://jsfiddle.net/diegoromero89/o055rr9o/
according to highcharts docs
A subset of HTML is supported. The HTML of the tooltip is parsed and converted to SVG, therefore this isn't a complete HTML renderer. The following tabs are supported: b, strong, i, em, br, span. Spans can be styled with a style attribute, but only text-related CSS that is shared with SVG is handled.

Good to know on the highcharts doc. Unfortunate that they don't handle more
tags. I think that solution will work - thanks for your help!
On Fri, Aug 21, 2015 at 2:36 PM, Diego Romero<EMAIL_ADDRESS>wrote:

@jonathanwoahn https://github.com/jonathanwoahn try this
http://jsfiddle.net/diegoromero89/o055rr9o/
according to highcharts docs
A subset of HTML is supported. The HTML of the tooltip is parsed and
converted to SVG, therefore this isn't a complete HTML renderer. The
following tabs are supported: b, strong, i, em, br, span. Spans can be
styled with a style attribute, but only text-related CSS that is shared
with SVG is handled.
—
Reply to this email directly or view it on GitHub
https://github.com/pablojim/highcharts-ng/issues/360#issuecomment-133526285
.

Thanks @dfromero !

@turorudolf - your code is mostly fine and html IS supported.
Checkout http://jsfiddle.net/erez_cohen/d377711v/5/
The only thing I changed was useHtml to useHTML.
(I ran into this "horrible" case myself and spent hours till I turned to their support).
Regarding the citation above from highcharts docs - the "limited html support" is only relevant on useHTML = false (the default). Once using useHTML = true you get a much broader support.
See http://api.highcharts.com/highstock#tooltip.useHTML.


fix(rate limits): Adding additional rate limit handling

:tada: This PR is included in version 1.4.5 :tada:
Your semantic-release bot :package::rocket:


Build 6824799 failed

Project URL: https://readthedocs.org/projects/astroquery/
Build URL (if applicable): https://readthedocs.org/projects/astroquery/builds/6824770/
Read the Docs username (if applicable): keflavich

I got the following error, which I'm reporting as instructed:
"Error
There was a problem with Read the Docs while building your documentation. Please report this to us with your build id (6824799)."

This is one of a number of similar issues. See #3707. We're on it.

This was a temporary issue which should be fixed now while the servers recovers from their load. I'm closing this one, but feel free to reopen if you consider. Thanks!


Update description of the module

The description does not say what the module actually do. The text:
It puts the buttons on the cards or it gets the hose again.

does not make much sense and seems more like a placeholder, can you please add a screenshot and update the description with something that makes more sense?

Heh that's a fair request, I've updated the description accordingly! Thanks for the input


Circuit generation from CPOG

A digital circuit is generated automatically from a CPOG model when the following condition applies:

Microcontroller target is selected
abc is selected, associated with a tech library in genlib format

Other modifications:

The gate library can be specified only inside Digital Circuit tab, under Edit -> Preferences..

Before merging this PR, the dependencies of CircuitPlugin from CpogPlugin should be double-checked in gradle. This version relies on scenco-workcraft v1.4.6

Gradle dependences are fine as the build succeeded. Let us wait for @jrbeaumont to build an osx version of the backend tool before proceeding with the merge.

The PR works both in Linux and Windows.

Sorry this has been so long. I believe a new version of Scenco needs building. Which repo do I do this from?

scenco-workcraft is the one which needs to be built. Thanks.

I will build and test this afternoon.

Could you send me some test data so I can ensure it works?

You can d'un some of the files present inside the graph-families repo. Those could be a good test case, use some of the graphs inside processors folder.

I have done some comprehensive testing, and it generates a digital circuit when abc is used, and microcontroller is selected as a target in all cases. No errors found.
@danilovesky The latest version of scenco for OS X is now compiled and a binary is ready. I can update workcraft-dist if you would like or I will be in tomorrow and I can pass you this physically if you wish.

@jrbeaumont, thanks! Better pass me the binary tomorrow - I will push all the binaries as one commit.


If validation is out of scope, say so, and say how it happens

The spec does not appear to validate the VCs or eKYC-IDA JWTs received.  If this is out of scope, please explicitly say so.  And if so, please say when and where things like signature and issuer validation are expected to happen when this spec is used.

Closed via merge of https://github.com/decentralized-identity/presentation-exchange/pull/83


BouncyCastle FIPS for Java documentation links are broken

Documentation links for BouncyCastle FIPS for Java are all returning 404, for example:

https://downloads.bouncycastle.org/fips-java/docs/BC-FJA-SecurityPolicy-2.0.0.pdf
https://downloads.bouncycastle.org/fips-java/docs/BC-FJA 2.0.0 Porting Guide.pdf

Links appears to work now. Thank you!


Update Set-CsTeamsCallingPolicy.md

Updates to options description

Pls update the description of parameters -WhatIf and -Confirm to state that they are not implemented (bug)
ref: #10962 & #10979

@JohanFreelancer9

@tseward Please review. Thanks

@tiburd Please merge this PR. Thanks

@tiburd


Unable to Import XML file if it contains a budget

If I attempt to import a GnuCash XML file that has a budget with in it, the operation fails. The error message flashes to briefly to for me to record it fully but it returns something like "An error occurred while importing GnuCash accounts. Attempts to invoke virtual method void org.gnucash.android.model.Scheduled.action.set.period (org.gnucash.model.Period.type) on a null object reference"
If I import the same XML file without the budget included the operation succeeds

What version are you using? Are you on the latest version, v1.6.4?

1.6.3. Looks like 1.6.4 hasn't been pushed out to f-droid yet. Will update once 1.6.4 is available

Ok. I think v1.6.4 fixed the issue.

On 17.08.2015, at 05:35, Carl Janousek<EMAIL_ADDRESS>wrote:
1.6.3. Looks like 1.6.4 hasn't been pushed out to f-droid yet. Will update once 1.6.4 is available
—
Reply to this email directly or view it on GitHub.


Cargotrack - Missing " Targetare .ro" button

ENVIRONMENT: production
URL: https://scrapers.peviitor.ro
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:

Open the URL in the browser
Search for "Cargotrack  " Company
Click on the "Targetare.ro" button
Open page "Targetare.ro"

EXPECTED RESULTS:
The "Targetare.ro" button is functional and the page is opened.
ACTUAL RESULTS:
Missing "Targetare.ro" button.
ATTACHMENTS:

fixed

Re-tested, The "Targetare.ro" button is functional and the page is opened.


Add go in PATH

I'm already working on this in another branch

Look at https://github.com/scaleway-community/scaleway-golang/pull/3


Integrating with Apollo MockedProvider

💬 Questions and Help
I have an application using Apollo Client to query a GraphQL backend. Is it possible to use Apollos MockedProvider instead og node-mocks-http?
Can you help me how I might integrate next-page-tester with MockedProvider?

Hi @zkwsk 👋 Thanks for bringing this problem up.
Currently we do not provide a way to wrap the component tree with custom components as we are thinking in terms of full pages (like in production) and not components; thus this is not possible.
However, I can see how this could be useful when such mocked providers are needed. To solve this we could use something similar that react-hooks-testing-library already uses, by adding wrapper option to the `getPage.
It might look something like this:
const { render } = await getPage({
  route: '/',
  wrapper: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>
})

Would such API make sense for you and solve your issues?

Hi @zkwsk 👋 Thanks for bringing this problem up.
Currently we do not provide a way to wrap the component tree with custom components as we are thinking in terms of full pages (like in production) and not components; thus this is not possible.
However, I can see how this could be useful when such mocked providers are needed. To solve this we could use something similar that react-hooks-testing-library already uses, by adding wrapper option to the `getPage.
It might look something like this:
const { render } = await getPage({
  route: '/',
  wrapper: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>
})

Would such API make sense for you and solve your issues?

Having the option to specify wrappers on the 3 levels like that would be a very welcome addition. I think you're right that we need to maintain the order of the providers in the hierarchy. Do you want me to try to have a go at a PR or is it something you could implement relatively quickly?

Having the option to specify wrappers on the 3 levels like that would be a very welcome addition. I think you're right that we need to maintain the order of the providers in the hierarchy. Do you want me to try to have a go at a PR or is it something you could implement relatively quickly?

You are more than welcome to provide a PR! Before that, I would just like to agree on the API and get @toomuchdesign's opinion on this.
Thinking some more about it, I actually think we should support wrapper at each level (Component, App and Document) because:

With a single wrapper it is not clear where the wrapping actually happens; is it around Document or something else?
It is more flexible; should support all use-cases where more granular Providers are needed

You are more than welcome to provide a PR! Before that, I would just like to agree on the API and get @toomuchdesign's opinion on this.
Thinking some more about it, I actually think we should support wrapper at each level (Component, App and Document) because:

With a single wrapper it is not clear where the wrapping actually happens; is it around Document or something else?
It is more flexible; should support all use-cases where more granular Providers are needed

Hi! I Actually only have questions to bring in :)
What is MockedProvider supposed to wrap in a Next.js application? I see an ApolloProvider at _app level in Next.js repo.
Do we expect Apollos MockedProvider to be able to work also during server side render?
I'm not sure what are the implications of providing a Document wrapper since Document does not render client side.
I understand Apollos MockedProvider should be defined at test declaration time, therefore it might be necessary to provide a way to wrap the rendered tree. Is there any case where it could be necessary wrapping the page and not _app component?

Hi! I Actually only have questions to bring in :)
What is MockedProvider supposed to wrap in a Next.js application? I see an ApolloProvider at _app level in Next.js repo.
Do we expect Apollos MockedProvider to be able to work also during server side render?
I'm not sure what are the implications of providing a Document wrapper since Document does not render client side.
I understand Apollos MockedProvider should be defined at test declaration time, therefore it might be necessary to provide a way to wrap the rendered tree. Is there any case where it could be necessary wrapping the page and not _app component?

I understand Apollos MockedProvider should be defined at test declaration time, therefore it might be necessary to provide a way to wrap the rendered tree. Is there any case where it could be necessary wrapping the page and not _app component?

If we wrap _app instead of _page and user has a custom _app, MockedProvider will never be used (its higher in the component tree). I think we need to wrap Component to cover this use-case. I would however still go with an object based API for flexibility, to avoid future breaking changes if we want to add support for other levels of wrapping.
wrapper: {
   Component?: React.FC,
}

I understand Apollos MockedProvider should be defined at test declaration time, therefore it might be necessary to provide a way to wrap the rendered tree. Is there any case where it could be necessary wrapping the page and not _app component?

If we wrap _app instead of _page and user has a custom _app, MockedProvider will never be used (its higher in the component tree). I think we need to wrap Component to cover this use-case. I would however still go with an object based API for flexibility, to avoid future breaking changes if we want to add support for other levels of wrapping.
wrapper: {
   Component?: React.FC,
}

Hi @Meemaw, ok for the object API 👍
I still don't get why the wrapper wouldn't be rendered in case of a custom _app... In my mind I pictured it like this:
<OptionalCustomDocument>
  <Wrapper>
    <DefaultAppOrCustomApp>
      <Page>

Hi @Meemaw, ok for the object API 👍
I still don't get why the wrapper wouldn't be rendered in case of a custom _app... In my mind I pictured it like this:
<OptionalCustomDocument>
  <Wrapper>
    <DefaultAppOrCustomApp>
      <Page>

It would be rendered but MockedProvider is essentially a modified ApolloProvider under the hood https://github.com/apollographql/apollo-client/blob/main/src/utilities/testing/mocking/MockedProvider.tsx#L61.
Because ApolloProvider is also defined at the app level (DefaultAppOrCustomApp): https://github.com/vercel/next.js/blob/canary/examples/api-routes-apollo-server-and-client-auth/pages/_app.js#L8 we would have a problem.
useContext(ApolloProvider) will return the ApolloProvider from the custom _app and not he mocked instance from the wrapper as user would want in tests.

It would be rendered but MockedProvider is essentially a modified ApolloProvider under the hood https://github.com/apollographql/apollo-client/blob/main/src/utilities/testing/mocking/MockedProvider.tsx#L61.
Because ApolloProvider is also defined at the app level (DefaultAppOrCustomApp): https://github.com/vercel/next.js/blob/canary/examples/api-routes-apollo-server-and-client-auth/pages/_app.js#L8 we would have a problem.
useContext(ApolloProvider) will return the ApolloProvider from the custom _app and not he mocked instance from the wrapper as user would want in tests.

I see. Therefore the idea is rendering both and shadowing ApolloProvider , right?
In this case if we rendered MockedProvider around the page and Apollo was also consumed by the _app component, wouldn't this solution fall short anyway?
Would it be make sense making the real ApolloProvider renderable optionally (in userland code) and the wrap MockedProvider  from _app component? 😬

I see. Therefore the idea is rendering both and shadowing ApolloProvider , right?
In this case if we rendered MockedProvider around the page and Apollo was also consumed by the _app component, wouldn't this solution fall short anyway?
Would it be make sense making the real ApolloProvider renderable optionally (in userland code) and the wrap MockedProvider  from _app component? 😬

I see. Therefore the idea is rendering both and shadowing ApolloProvider , right?
In this case if we rendered MockedProvider around the page and Apollo was also consumed by the _app component, wouldn't this solution fall short anyway?

I don' think this is actually a case, but if someone did it they would need to wrap the _app with MockedProvider as well.
Essentially, they would need to do something like this:
const { render } = await getPage({
  route: '/',
  wrapper: {
     Component: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>,
     App: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>
   }
})

Would it be make sense making the real ApolloProvider renderable optionally (in userland code) and the wrap MockedProvider  from _app component? 😬

I don't think user code should need to be changed/complicated to make this possible.

I see. Therefore the idea is rendering both and shadowing ApolloProvider , right?
In this case if we rendered MockedProvider around the page and Apollo was also consumed by the _app component, wouldn't this solution fall short anyway?

I don' think this is actually a case, but if someone did it they would need to wrap the _app with MockedProvider as well.
Essentially, they would need to do something like this:
const { render } = await getPage({
  route: '/',
  wrapper: {
     Component: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>,
     App: (children) => <MockedProvider mocks={mocks}>{children}</MockedProvider>
   }
})

Would it be make sense making the real ApolloProvider renderable optionally (in userland code) and the wrap MockedProvider  from _app component? 😬

I don't think user code should need to be changed/complicated to make this possible.

Got it, thank you @Meemaw!
Let's bake it a little bit and setup a PR after 404 cycle. 👍
What if:

Component was Page
and React.FC -> (children: JSX.element) => JSX.element?

(I actually have no idea what React.FC does :) )
@zkwsk we can totally provide support if you wanted to give it a try and find out if this proposal fits your testing needs.

Got it, thank you @Meemaw!
Let's bake it a little bit and setup a PR after 404 cycle. 👍
What if:

Component was Page
and React.FC -> (children: JSX.element) => JSX.element?

(I actually have no idea what React.FC does :) )
@zkwsk we can totally provide support if you wanted to give it a try and find out if this proposal fits your testing needs.

Got it, thank you @Meemaw!
Let's bake it a little bit and setup a PR after 404 cycle. 👍
What if:

Component was Page

👍

and React.FC -> (children: JSX.element) => JSX.element?

(I actually have no idea what React.FC does :) )

React.FC extends  (children: JSX.element) => JSX.element so they would overlap, but I agree that (children: JSX.element) => JSX.element is simpler

@zkwsk we can totally provide support if you wanted to give it a try and find out if this proposal fits your testing needs.

Got it, thank you @Meemaw!
Let's bake it a little bit and setup a PR after 404 cycle. 👍
What if:

Component was Page

👍

and React.FC -> (children: JSX.element) => JSX.element?

(I actually have no idea what React.FC does :) )

React.FC extends  (children: JSX.element) => JSX.element so they would overlap, but I agree that (children: JSX.element) => JSX.element is simpler

@zkwsk we can totally provide support if you wanted to give it a try and find out if this proposal fits your testing needs.

Hi @zkwsk 👋  I've prepared a draft PR that enables/fixes this issue. You can see example usage here: https://github.com/toomuchdesign/next-page-tester/blob/92393faac9ec19635e81c5fc66d30db5e6089fd5/examples/03-apollo-client.md
Let me know if this would work for you.

Hi @zkwsk 👋  I've prepared a draft PR that enables/fixes this issue. You can see example usage here: https://github.com/toomuchdesign/next-page-tester/blob/92393faac9ec19635e81c5fc66d30db5e6089fd5/examples/03-apollo-client.md
Let me know if this would work for you.


PyGranta packages general upkeep

Ensure repositories are up to date with PyAnsys guidelines

[x] Ensure pre-commit is configured

[ ] https://github.com/ansys/openapi-common/issues/547
[ ] https://github.com/ansys/grantami-bomanalytics-openapi/issues/127
[ ] https://github.com/ansys/grantami-serverapi-openapi/issues/173
[ ] https://github.com/ansys/grantami-bomanalytics/issues/484 (headers added, but hook failing to run in CI)
[x] https://github.com/ansys/grantami-recordlists/pull/205

[x] Ensure compliance against Project Structure
[ ] Configure PR labelling & auto-generated release notes

[x] https://github.com/ansys/openapi-common/pull/464
[ ] https://github.com/ansys/grantami-bomanalytics-openapi/issues/129
[ ] https://github.com/ansys/grantami-serverapi-openapi/issues/175
[x] https://github.com/ansys/grantami-bomanalytics/issues/486
[x] https://github.com/ansys/grantami-recordlists/pull/164

[ ] Ensure CI uses ansys/actions wherever possible -

https://github.com/ansys/openapi-common/issues/549
https://github.com/ansys/grantami-bomanalytics-openapi/issues/130
https://github.com/ansys/grantami-serverapi-openapi/issues/176
https://github.com/ansys/grantami-recordlists/issues/224
https://github.com/ansys/grantami-bomanalytics/issues/487

[x] PEP561 compliance
[x] Use changelog action (Not 2024R2)

[ ] https://github.com/ansys/openapi-common/issues/548
[ ] https://github.com/ansys/grantami-bomanalytics-openapi/issues/128
[ ] https://github.com/ansys/grantami-serverapi-openapi/issues/174
[ ] https://github.com/ansys/grantami-bomanalytics/issues/490
[ ] https://github.com/ansys/grantami-recordlists/issues/227

Closing this issue, see the Project for an overview of the outstanding work.


Diff start year

Includes https://github.com/OpenSourcePolicyCenter/webapp-public/pull/84 from @mistakevin


fix: sendAnonymousUsage mechanism with command line

What does this PR do?
Use the previous mechanism of sendAnonymousUsage option.
Motivation
Fixes #4740
More

[x] Added/updated tests
[x] Added/updated documentation

This doesn't fix the actual problem, closing the PR.
Could you come up with a fix asap? Or at least document that the command line option doesn't work?


Make installation with Unity Package Manager possible

It would be nice if order-independent transparency could ultimately be added through the Unity package manager with its git url. This requires the package manifest to include all relevant information. The Unity documentation explains how to set up a custom package.

Done with https://github.com/happy-turtle/oit-unity/commit/b3fe239180b9298c08b68bff57341b8a81898d62


redo(ticdc): set default timeout for accessing external storage to 15 minutes

What problem does this PR solve?

Issue Number: close #8089
What is changed and how it works?
Set the default timeout for accessing external storage to 15 minutes
Check List
Tests

Unit test
Integration test
Manual test

run consistent_replicate_storage_s3 test
stop minio manually
sleep 5 minutes
restart minio
The test passed and the following logs were found:

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`Fix the issue that redo log cannot tolerate network faults for more than 6 seconds`.

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-kafka-integration-test
/run-integration-test
/run-dm-integration-test

/run-all-tests

/run-all-tests

/merge

/merge


mrwebrtc assembly not found in Xamarin.Forms

I'm trying to create mobile based video surveillance app, where host (sender) is in win form (core) application.
Previously I have create client (recover) in win form (core) which is working fine, but same code is giving exception in Xamarin.Forms in both Android and iOS.
Initialize Peer Connection (Working fine)
_peerConnection.InitializeAsync(new PeerConnectionConfiguration()).ContinueWith((t) =>
{
  _peerConnection.LocalSdpReadytoSend += _peerConnection_LocalSdpReadytoSend;
});

On Web Socket Message Received (Giving exception)
_peerConnection.SetRemoteDescriptionAsync(new SdpMessage
{
     Content = obj["offer"],
     Type = SdpMessageType.Offer
}).ContinueWith((t) => {
     if (_peerConnection.CreateAnswer()) {
     }
});

Getting exception in SetRemoteDescriptionAsync method
{System.DllNotFoundException: mrwebrtc assembly: type: member:(null)
at (wrapper managed-to-native) Microsoft.MixedReality.WebRTC.Interop.PeerConnectionInterop.PeerConnection_SetRemoteDescriptionAsync(Microsoft.MixedReality.WebRTC.Interop.PeerConnectionHandle,Microsoft.MixedReality.WebRTC.SdpMessageType,string,Microsoft.MixedReality.WebRTC.Interop.PeerConnectionInterop/PeerConnectionRemoteDescriptionAppliedDelegate,intptr)
at Microsoft.MixedReality.WebRTC.Interop.PeerConnectionInterop.SetRemoteDescriptionAsync (Microsoft.MixedReality.WebRTC.Interop.PeerConnectionHandle peerHandle, Microsoft.MixedReality.WebRTC.SdpMessageType type, System.String sdp) [0x0002a] in <365850aabc5b4712b4c17093dcf80925>:0
at Microsoft.MixedReality.WebRTC.PeerConnection.SetRemoteDescriptionAsync (Microsoft.MixedReality.WebRTC.SdpMessage message) [0x0002a] in <365850aabc5b4712b4c17093dcf80925>:0
at WebRTC.MainPage._webSocket_OnMessage (System.Object sender, WebSocketSharp.MessageEventArgs e) [0x003bf] in D:\Projects\POC\WebRTC\WebRTC\WebRTC\MainPage.xaml.cs:96 }

As the error indicates, mrwebrtc.dll was not deployed correctly. Might be related to #634, since this was fixed but we didn't respin any new NuGet packages with that fix.
Best way to find out is try copying the DLL manually and see if that solves the issue. If it does then it's a deployment issue. If it doesn't then that's a more complex issue where the DLL is possibly missing dependencies so cannot load. Some tools like https://github.com/lucasg/Dependencies might help figuring out which DLL is missing.

@djee-ms, thanks for replying,
If this is missing dll issue then how Peer Connection getting initialize?
_peerConnection.InitializeAsync(new PeerConnectionConfiguration()).ContinueWith((t) =>
{
  _peerConnection.LocalSdpReadytoSend += _peerConnection_LocalSdpReadytoSend;
});

Above code is not giving any exception but while  SetRemoteDescriptionAsync I'm getting DllNotFoundException: mrwebrtc
I have tried manually putting putting dll's, but that also didn't help

Sorry I missed some part:

same code is giving exception in Xamarin.Forms in both Android and iOS.

Android is only supported via Unity, not via the direct C# .NET Core library, and iOS is not supported at all. So this was never tested, and I have no idea how Xamarin works with regard to DllImport, nor what is happening here.
We can continue to discuss about this issue but I am tagging it as Invalid because this is outside of the scope of supported platforms. I also have no knowledge about Xamarin so I doubt I can be of any help.


Iron.io/Functions successor

As the title said, is this iron.io/functions successor?

Correct, this is the IronFunctions successor and much further along than our predecessor after the past year of development.
Thanks for your interest and let us know if we can help with anything.
Find us on slack.fnproject.io!


Fixing docker build script changes

Change-type: patch
Signed-off-by: fisehara<EMAIL_ADDRESS>

@balena-ci I self-certify!


ReactiveUI binding crash Xamarin.Android

Bug
Despite our best efforts, bugs can slip into releases or corner cases forgotten about. We will try our best to remedy the situation
and/or provide workarounds. Note that certain (odd) behaviors are by design and as such are not considered bugs.

Which library version?

Was reported against 4.1.6, still present in 4.3.2

What are the platform(s), environment(s) and related component version(s)?

Xamarin.Android

What is the use case or problem?

In ReacitveUI we use Reflection and Tuples to provide Two Way Binding to UI elements.  It seems that the reflection spits a specific error now when it tries to bind on Xamarin.Android.   The issue was reported after we migrated to Value Tuples.
This is related to https://github.com/reactiveui/ReactiveUI/issues/2170

What is the expected outcome?

That the bindings are found and Android handles the Two Way binding.

What is the actual outcome?

The following error is produced.  The Android App crashes.

What is the stacktrace of the exception(s) if any?

https://gist.github.com/RLittlesII/13c15d8047ae906aee0ad585c097f0f2

Do you have a code snippet or project that reproduces the problem?

reactiveui.2170.zip

Any update on this issue?

I got the same issue here on Xamarin.Android.

Android target SDK: 10.0
VS for Mac : up to date
ReactiveUI: up to date

I tried to debug and I the exception is thrown here:

If I checked this two var:
ParameterInfo[] delargs = invoke.GetParametersInternal ();
ParameterInfo[] args = method.GetParametersInternal ();

delargs has 1 value and args has 2 values.

Then, if we check the condition:
if (target != null)
{
    // delegate closed over target
    if (!method.IsStatic)
        // target is passed as this
        argLengthMatch = (args.Length == delargs.Length);
    else
        // target is passed as the first argument to the static method
        argLengthMatch = (args.Length == delargs.Length + 1);
}
else
{
    if (!method.IsStatic)
    {
        //
        // Net 2.0 feature. The first argument of the delegate is passed
        // as the 'this' argument to the method.
        //
        argLengthMatch = (args.Length + 1 == delargs.Length);

        if (!argLengthMatch)
            // closed over a null reference
            argLengthMatch = (args.Length == delargs.Length);
    }
    else
    {
        argLengthMatch = (args.Length == delargs.Length);

        if (!argLengthMatch)
            // closed over a null reference
            argLengthMatch = args.Length == delargs.Length + 1;
    }
}

=> target is not null
=> the is not static.
So the it goes to the condition:
// target is passed as this
argLengthMatch = (args.Length == delargs.Length);

So argLenghtMatch would be false and exception will be throw.
But I see few lines down this comment:
 //
// Net 2.0 feature. The first argument of the delegate is passed
// as the 'this' argument to the method.
//
argLengthMatch = (args.Length + 1 == delargs.Length);

If the code was executed, argLengthMatch will be true and no exception will be throw.
What about a code that seems like this, is this a possible solution ?
if (target != null)
{
    // delegate closed over target
    if (!method.IsStatic)
        // target is passed as this
        //
        // Net 2.0 feature. The first argument of the delegate is passed
        // as the 'this' argument to the method.
        //
        argLengthMatch = (args.Length + 1 == delargs.Length);

        if (!argLengthMatch)
            // closed over a null reference
            argLengthMatch = (args.Length == delargs.Length);
    else
        // target is passed as the first argument to the static method
        argLengthMatch = (args.Length == delargs.Length + 1);
}
else
{
    if (!method.IsStatic)
    {
        //
        // Net 2.0 feature. The first argument of the delegate is passed
        // as the 'this' argument to the method.
        //
        argLengthMatch = (args.Length + 1 == delargs.Length);

        if (!argLengthMatch)
            // closed over a null reference
            argLengthMatch = (args.Length == delargs.Length);
    }
    else
    {
        argLengthMatch = (args.Length == delargs.Length);

        if (!argLengthMatch)
            // closed over a null reference
            argLengthMatch = args.Length == delargs.Length + 1;
    }
}

No reply from anyone? :(

Do we have someone from Rx.NET or ReactiveUI looking into this? :(

I don't know. For now, to use the latest version of ReactiveUI on iOS and Android, I use it in this way on Android:
For example, for this (that crash):
this.Bind(ViewModel, vm => vm.FirstName, view => view._firstname.EditText.Text)
    .DisposeWith(disposeBag);

I changed it to:
this.WhenAnyValue(a => a.ViewModel.FirstName)
                    .Take(1) //Only the first one
                    .ObserveOn(RxApp.MainThreadScheduler)
                    .Subscribe(text =>
                    {
                        _firstname.EditText.Text = text;
                    })
                    .DisposeWith(disposeBag);

And for the "binding" Editext => ViewModel property, I add this in onCreate function:
_firstname.EditText.TextChanged += EditText_TextChanged;
and this in onDestroy function:
_firstname.EditText.TextChanged -= EditText_TextChanged;
For you information, here the function "EditText_TextChanged':
private void EditText_TextChanged(object sender, Android.Text.TextChangedEventArgs e)
        {
            var text = e.Text.ToString();

            if (sender.Equals(_firstname.EditText))
            {
                ViewModel.FirstName = text;
            }
            else if (sender.Equals(_lastname.EditText))
            {
                ViewModel.Lastname = text;
            }
            else
            {
                //should never be here
            }
        }

If you don't have to use the two way binding (Bind), using the OneWayBind doesn't crash:
this.OneWayBind(ViewModel, vm => vm.FirstName, view => view._firstname.EditText.Text)
    .DisposeWith(disposeBag);

That will be very costly for us to do, as the size of the project is too big now. :(
The only thing we can do is wait..............

@Lapinou42
Is the CreateDelegate method you posted in the Xamarin code?  Can you reference where it is found?
We discussed that there could be something outside of ReactiveUI and/or Reactive Extensions that might have caused this bug.  The upgrade of ReactiveUI also required an upgrade of a lot of dependencies, so isolation was difficult.
@lewisgauss I apologize for the lack of activity on this issue, things have been hectic the last few months for me. While I understand the frustration of having to wait, we have not been able to pinpoint any change in Reactive Extensions or ReactiveUI that would have caused this problem.

@RLittlesII I'll check that and let know ASAP ;)

@glennawatson was able to resolve this issue. via https://github.com/reactiveui/ReactiveUI/pull/2390
Closing this issue.

@glennawatson @RLittlesII great job, tks a lot for this tricky one!

Fantastic, I just updated, and this bug is missing!


can we add only icon instead of boxes in drawflow class ?

i want to add icons instead of boxes so i can drag icon and add into editor ?

Example of shapes:

https://github.com/jerosoler/Drawflow/issues/454


Removed plural noun use

Fixes #313 as well as fixes style use in the documents that were touched.

[X] Change details added to Unreleased section of changelog.md?
[n/a] Added/updated documentation and descriptions in .schema.mof files where appropriate?
[n/a] Examples updated for both the single server and small farm templates in the examples folder?
[X] New/changed code adheres to [Style Guidelines]?(https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md)?
[n/a] Unit and Integration tests created/updated where possible?

This change is

You have updated some DSC references to Dsc, but not all. Is this done on purpose?

Reviewed 7 of 18 files at r1.
Review status: 7 of 18 files reviewed at latest revision, 40 unresolved discussions, some commit checks failed.

Modules/SharePointDsc/SharePointDsc.psd1, line 85 [r1] (raw file):

                    "Test-SPDSCRunningAsFarmAccount",
                    "Set-SPDscObjectPropertyIfValuePresent",
                    "Get-SPDSCUserProfileSubTypeManager",

You changed DSC to Dsc in the previous line, but not in this line and a few lines above. Might be a good idea to implement the same naming for all methods.

Modules/SharePointDsc/DSCResources/MSFT_SPFarmAdministrators/MSFT_SPFarmAdministrators.psm1, line 42 [r1] (raw file):

    Write-Verbose -Message "Getting all Farm Administrators"

    $result = Invoke-SPDSCCommand -Credential $InstallAccount `

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPFarmAdministrators/MSFT_SPFarmAdministrators.psm1, line 340 [r1] (raw file):

    )

    $result = Invoke-SPDSCCommand -Credential $InstallAccount -Arguments $changeUsers -ScriptBlock {

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppBlockedFileTypes/MSFT_SPWebAppBlockedFileTypes.psm1, line 26 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.BlockedFileTypes.psm1" -Resolve)

        $result = Get-SPDSCWebApplicationBlockedFileTypeConfig -WebApplication $wa

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppBlockedFileTypes/MSFT_SPWebAppBlockedFileTypes.psm1, line 59 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.BlockedFileTypes.psm1" -Resolve)
        Set-SPDSCWebApplicationBlockedFileTypeConfig -WebApplication $wa -Settings $params

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppBlockedFileTypes/MSFT_SPWebAppBlockedFileTypes.psm1, line 83 [r1] (raw file):

    Import-Module (Join-Path $PSScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.BlockedFileTypes.psm1" -Resolve)
    return Test-SPDSCWebApplicationBlockedFileTypeConfig -CurrentSettings $CurrentValues -DesiredSettings $PSBoundParameters

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppGeneralSettings/MSFT_SPWebAppGeneralSettings.psm1, line 105 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.GeneralSettings.psm1" -Resolve)

        $result = Get-SPDSCWebApplicationGeneralConfig -WebApplication $wa

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppGeneralSettings/MSFT_SPWebAppGeneralSettings.psm1, line 218 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.GeneralSettings.psm1" -Resolve)
        Set-SPDSCWebApplicationGeneralConfig -WebApplication $wa -Settings $params

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppGeneralSettings/MSFT_SPWebAppGeneralSettings.psm1, line 321 [r1] (raw file):

    Import-Module (Join-Path $PSScriptRoot "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.GeneralSettings.psm1" -Resolve)
    return Test-SPDSCWebApplicationGeneralConfig -CurrentSettings $CurrentValues -DesiredSettings $PSBoundParameters

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 63 [r1] (raw file):

    $paramArgs = @($PSBoundParameters,$PSScriptRoot)
    $result = Invoke-SPDSCCommand -Credential $InstallAccount -Arguments $paramArgs -ScriptBlock {

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 76 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot $relPath -Resolve)

        $result = Get-SPDSCWebApplicationThrottlingConfig -WebApplication $wa

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 145 [r1] (raw file):

    Write-Verbose -Message "Setting web application '$Url' throttling settings"
    $paramArgs = @($PSBoundParameters,$PSScriptRoot)
    $result = Invoke-SPDSCCommand -Credential $InstallAccount -Arguments $paramArgs -ScriptBlock {

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 158 [r1] (raw file):

        $relPath = "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.Throttling.psm1"
        Import-Module (Join-Path $ScriptRoot $relPath -Resolve)
        Set-SPDSCWebApplicationThrottlingConfig -WebApplication $wa -Settings $params

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 166 [r1] (raw file):

            # Happy hour settins use separate update method so use a fresh web app to update these
            $wa2 = Get-SPWebApplication -Identity $params.Url
            Set-SPDSCWebApplicationHappyHourConfig -WebApplication $wa2 -Settings $params.HappyHour

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppThrottlingSettings/MSFT_SPWebAppThrottlingSettings.psm1, line 240 [r1] (raw file):

    $relPath = "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.Throttling.psm1"
    Import-Module (Join-Path $PSScriptRoot $relPath -Resolve)
    return Test-SPDSCWebApplicationThrottlingConfig -CurrentSettings $CurrentValues `

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppWorkflowSettings/MSFT_SPWebAppWorkflowSettings.psm1, line 31 [r1] (raw file):

    $paramArgs = @($PSBoundParameters,$PSScriptRoot)
    $result = Invoke-SPDSCCommand -Credential $InstallAccount -Arguments $paramArgs -ScriptBlock {

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppWorkflowSettings/MSFT_SPWebAppWorkflowSettings.psm1, line 45 [r1] (raw file):

        Import-Module (Join-Path $ScriptRoot $relPath -Resolve)

        $result = Get-SPDSCWebApplicationWorkflowConfig -WebApplication $wa

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppWorkflowSettings/MSFT_SPWebAppWorkflowSettings.psm1, line 83 [r1] (raw file):

    $paramArgs = @($PSBoundParameters,$PSScriptRoot)
    $result = Invoke-SPDSCCommand -Credential $InstallAccount -Arguments $paramArgs -ScriptBlock {

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppWorkflowSettings/MSFT_SPWebAppWorkflowSettings.psm1, line 95 [r1] (raw file):

        $relpath = "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.Workflow.psm1"
        Import-Module (Join-Path $ScriptRoot $relPath -Resolve)
        Set-SPDSCWebApplicationWorkflowConfig -WebApplication $wa -Settings $params

Update DSC to Dsc

Modules/SharePointDsc/DSCResources/MSFT_SPWebAppWorkflowSettings/MSFT_SPWebAppWorkflowSettings.psm1, line 133 [r1] (raw file):

    $relPath = "..\..\Modules\SharePointDsc.WebApplication\SPWebApplication.Workflow.psm1"
        Import-Module (Join-Path $PSScriptRoot $relPath -Resolve)
    return Test-SPDSCWebApplicationWorkflowConfig -CurrentSettings $CurrentValues `

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.Util/SharePointDsc.Util.psm1, line 485 [r1] (raw file):

    else
    {
        if (((Test-SPDSCObjectHasProperty $ParamsValue $ParamKey) -eq $true) `

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.BlockedFileTypes.psm1, line 1 [r1] (raw file):

function Get-SPDSCWebApplicationBlockedFileTypeConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.BlockedFileTypes.psm1, line 18 [r1] (raw file):

}

function Set-SPDSCWebApplicationBlockedFileTypeConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.BlockedFileTypes.psm1, line 72 [r1] (raw file):

}

function Test-SPDSCWebApplicationBlockedFileTypeConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.GeneralSettings.psm1, line 1 [r1] (raw file):

function Get-SPDSCWebApplicationGeneralConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.GeneralSettings.psm1, line 33 [r1] (raw file):

}

function Set-SPDSCWebApplicationGeneralConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.GeneralSettings.psm1, line 94 [r1] (raw file):

}

function Test-SPDSCWebApplicationGeneralConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 1 [r1] (raw file):

function Get-SPDSCWebApplicationThrottlingConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 28 [r1] (raw file):

}

function Set-SPDSCWebApplicationThrottlingConfig {

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 63 [r1] (raw file):

    # Create time span object separately
    if ((Test-SPDSCObjectHasProperty $Settings "ChangeLogExpiryDays") -eq $true)

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 71 [r1] (raw file):

function Set-SPDSCWebApplicationHappyHourConfig {

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 78 [r1] (raw file):

    )

    if ((Test-SPDSCObjectHasProperty $Settings "Hour") -eq $false `

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 79 [r1] (raw file):

    if ((Test-SPDSCObjectHasProperty $Settings "Hour") -eq $false `
      -or (Test-SPDSCObjectHasProperty $Settings "Minute") -eq $false `

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 80 [r1] (raw file):

    if ((Test-SPDSCObjectHasProperty $Settings "Hour") -eq $false `
      -or (Test-SPDSCObjectHasProperty $Settings "Minute") -eq $false `
      -or (Test-SPDSCObjectHasProperty $Settings "Duration") -eq $false)

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 105 [r1] (raw file):

}

function Test-SPDSCWebApplicationThrottlingConfig {

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 131 [r1] (raw file):

    if ($testReturn -eq $true)
    {
        if ((Test-SPDSCObjectHasProperty $DesiredSettings "HappyHour") -eq $true)

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Workflow.psm1, line 1 [r1] (raw file):

function Get-SPDSCWebApplicationWorkflowConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Workflow.psm1, line 19 [r1] (raw file):

}

function Set-SPDSCWebApplicationWorkflowConfig

Update DSC to Dsc

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Workflow.psm1, line 47 [r1] (raw file):

}

function Test-SPDSCWebApplicationWorkflowConfig {

Update DSC to Dsc

Tests/Unit/SharePointDsc.TestHarness.psm1, line 62 [r1] (raw file):

}

function Write-SPDSCStubFile() {

Update DSC to Dsc

Comments from Reviewable

Yep - I'm changing the case when I change the case on the functions themselves. This will get picked up when I do the style run for #331 but I wanted to get the methods I was touching as we went through. So I'm going to ignore the items in this review and pass it through if you're OK with everything else?

Reviewed 11 of 18 files at r1.
Review status: all files reviewed at latest revision, 40 unresolved discussions, some commit checks failed.

Comments from Reviewable

Reviewed 6 of 18 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 40 unresolved discussions.

Comments from Reviewable


Add eval cli

Remove cli functionality from inside the module, and add to click group
Usage:
nlp-cli evaluate prediction --pred_filepath tests/data/prediction_1.json --gold_filepath tests/data/goldstandard_1.json

@yy6linda Is this PR ready for review (it's marked as a Draft)

I will give it a review as well tomorrow.

I think this is a good idea, but just by looking at this, I think this challenge has a custom Evaluation object.  If you think about other challenges, the object could probably have:

goldstandard_path
prediction_path
metrics (as an array)

The Evaluation object could probably be part of a Queue object, as this is how we could link a Submission to its Evaluation.

My take is that we can go ahead with the design implemented in this PR so that we can do early testing of the infra, then refactor the code once we have identified a more efficient design.


Refactor for testability and add unit test

I've just done this for the uptime test to check it's OK, but I'll expand it to the other tests if it is.
This adds a resources/tests/fakeproc directory, and configures the tests to use that directory (but non-test code should still default to /proc). This means that:

tests can be run on non-Linux systems
the /proc directory is completely controlled, so you can make more detailed assertions
if a particular file in /proc triggers a bug, it's possible to just use a copy of that file in the fakeproc directory to test it

I'm a little worried about using this method of testing - while normally I'm all for mocking as much as possible, I've found /proc can vary across different systems. In this case, a file in proc triggering a bug (in the library) is a feature, not a bug (in the tests). There's also probably very little benefit to being able to test on non-Linux systems, this library will only work on Linux anyway.
However, there's probably some significant benefit to using some of the code for this to run additional tests against a wider set of examples and checking it still works. I'd prefer it just to use a specific path and not control execution via an environment variable if we were to use it for that though - I'd like to avoid both the overhead and having any code that changes the behavior of the library. I like the idea behind this but I don't think this is the right implementation.

Yeah - on reflection this wasn't quite as good as it could be. (I didn't like the environment variable thing either, but I'm fairly new to Rust and couldn't see a good way to have a global variable that had different values in different contexts - possibly lazy_static would have been the right thing.)
In any case I've taken a different approach now - I've split off a separate uptime_internal function from uptime, which takes the contents of /proc/uptime as an argument and is therefore a pure, easily-unit-testable function, and unit-tested it. I think this gets the benefit of the 'additional checking against a wider set of examples' you mentioned - as /proc/ files with different contents crop up, it should be possible to cat them and add a unit test.
(re: being able to test on non-Linux systems, I generally develop for Linux systems but my work and personal PCs are Windows 10 and macOS, so being able to get unit tests running on those systems before deploying can be helpful.)

I like this approach a lot more - thanks for the contribution and edits!


Update generator and fix typos

Generator now emits public imports.
Handle enum, bitfield, typedarray type imports.
Fixes typos that breaks the build.
Moved generator from bin to package root so the generated bindings fetched by existing imports.  (ugh, maybe just revert and add bin/classes to imports?)

There shouldn't be any harm from that, it will just clutter IDE auto-completion list, though with what IDE's available in D it's not much.
We can remove anything later if the problems arises. For now let's just see how it goes.

Ok then


[Bug] Captchas are not shown

Current Behavior
When starting a download, it shows:
Wait for captcha slot: 9s.
Once it is down to 0s, it just restarts the counter.
Neither rapidgator, ddownload nor turbobit are working anymore. Probably since a month or two, when it stopped working. I had hoped the new release would fix it, but the issue still persists.
Expected Behavior
A captcha is shown, so I can solve it and the download can start.
Steps To Reproduce
Add links to jdownloader from i.e. ddownload and start the download.
Environment

OS: Win 10
OS version: 22H2
CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz   2.59 GHz
Docker version: Docker desktop 4.30.0
Device model: Lenovo Legion
Browser/OS: Firefox 127

Container creation
docker run -d     --name=jdownloader-2
-p 5800:5800 -p 3129:3129     -v "C:\Users\Bluejanis\Documents\Eigene Dokumente\Docker\jdownloader-2\:/config:rw"
-v "F:\JDownloads:/output:rw"     -e DARK_MODE=1
-e SECURE_CONNECTION=1 `
jlesage/jdownloader-2
Container log
╭――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╮
    │                                                                      │
    │ Application:           JDownloader 2                                 │
    │ Application Version:   n/a                                           │
    │ Docker Image Version:  24.07.1                                       │
    │ Docker Image Platform: linux/amd64                                   │
    │                                                                      │
    ╰――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╯
[cont-init   ] 89-info.sh: terminated successfully.
[cont-init   ] all container initialization scripts executed.
[init        ] giving control to process supervisor.
[supervisor  ] loading services...
[supervisor  ] loading service 'default'...
[supervisor  ] loading service 'logmonitor'...
[supervisor  ] service 'logmonitor' is disabled.
[supervisor  ] loading service 'logrotate'...
[supervisor  ] loading service 'app'...
[supervisor  ] loading service 'gui'...
[supervisor  ] loading service 'openbox'...
[supervisor  ] loading service 'xvnc'...
[supervisor  ] loading service 'pulseaudio'...
[supervisor  ] service 'pulseaudio' is disabled.
[supervisor  ] loading service 'xcompmgr'...
[supervisor  ] loading service 'certsmonitor'...
[supervisor  ] loading service 'nginx'...
[supervisor  ] loading service 'webauth'...
[supervisor  ] service 'webauth' is disabled.
[supervisor  ] loading service 'audiorecorder'...
[supervisor  ] service 'audiorecorder' is disabled.
[supervisor  ] all services loaded.
[supervisor  ] starting services...
[supervisor  ] starting service 'xvnc'...
[xvnc        ] Xvnc TigerVNC 1.13.1 - built Jun 29 2024 04:32:51
[xvnc        ] Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)
[xvnc        ] See https://www.tigervnc.org for information on TigerVNC.
[xvnc        ] Underlying X server release 12014000
[xvnc        ] Thu Jul  4 10:54:00 2024
[xvnc        ]  vncext:      VNC extension running!
[xvnc        ]  vncext:      Listening for VNC connections on /tmp/vnc.sock (mode 0660)
[xvnc        ]  vncext:      created VNC server for screen 0
[supervisor  ] starting service 'openbox'...
[supervisor  ] starting service 'xcompmgr'...
[supervisor  ] starting service 'nginx'...
[nginx       ] Listening for HTTPs connections on port 5800.
[supervisor  ] starting service 'app'...
[supervisor  ] all services started.
[xvnc        ] Thu Jul  4 10:54:35 2024
[xvnc        ]  Connections: accepted: /tmp/vnc.sock
[xvnc        ]  SConnection: Client needs protocol version 3.8
[xvnc        ]  SConnection: Client requests security type None(1)
[xvnc        ]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
[xvnc        ]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
[xvnc        ]  ComparingUpdateTracker: 0 pixels in / 0 pixels out
[xvnc        ]  ComparingUpdateTracker: (1:-nan ratio)

Container inspect
[
    {
        "Id": "432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8",
        "Created": "2024-07-04T09:39:46.346284396Z",
        "Path": "/init",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 397,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2024-07-04T10:53:55.769085761Z",
            "FinishedAt": "2024-07-04T10:51:24.337808318Z"
        },
        "Image": "sha256:316600b1b5ed4c17f5892c2935c58736867701edb7926fd85a5bb853a696bc52",
        "ResolvConfPath": "/var/lib/docker/containers/432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8/hostname",
        "HostsPath": "/var/lib/docker/containers/432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8/hosts",
        "LogPath": "/var/lib/docker/containers/432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8/432a96aa9d5e5fde7c746abbaaa249ed77f7ec77a7c79f9633e87a40470ac0b8-json.log",
        "Name": "/jdownloader-2",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "C:\\Users\\Bluej\\Documents\\Eigene Dokumente\\Docker\\jdownloader-2\\:/config:rw",
                "F:\\JDownloads\\:/output:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "bridge",
            "PortBindings": {
                "3129/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "3129"
                    }
                ],
                "5800/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "5800"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                31,
                89
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": [],
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware",
                "/sys/devices/virtual/powercap"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/ea292857a03472b288fa92dd189b50ef39364a15cd3f59e91da90d6b986c861a-init/diff:/var/lib/docker/overlay2/5d5c6a83c7443e13b1779bd7fd4300c29ba95a3cf511d6ac204e6e3a73264f19/diff:/var/lib/docker/overlay2/b07822a4f9b80c4bb4a8b08994a6be6a1f17a73e63d848ca3a17bb9ae1c4bade/diff:/var/lib/docker/overlay2/963c09f6a08a15a52d0ab9be621d3efd7607273b3181ffed82390370ea1b8c1c/diff:/var/lib/docker/overlay2/3a0bd666e362a4bea790bc87321e92a5bd843dfa64f90e6b92bd7ae9404e6824/diff:/var/lib/docker/overlay2/903f854de8fd4a99a23db8ca76f1a3f7a413c525f2be180d82d9c11c99ac8709/diff:/var/lib/docker/overlay2/fce459f159d9465cf700fc44f815c8ab16b6d47cb2c7391a6edbba3599ebd3f2/diff:/var/lib/docker/overlay2/8764d8ada3d15c9336beaebf9a9aa2a0bf1c807adb7d8bfdd7f7a088a7f74fa7/diff:/var/lib/docker/overlay2/ed88728c39e46cff7c956119077f55111f5bad0bdf60099d3df3dffcf1b481e3/diff:/var/lib/docker/overlay2/3d816e0414a175140fe5b6401e4845d4cba64185889224d910ae0de8f8503334/diff:/var/lib/docker/overlay2/9161b06f44e8b27c86aa516face58cb01b0130c3102dfc956b19bdafe35c3d69/diff:/var/lib/docker/overlay2/dd8d3a930fe87fcf18fb6e25b989db764f92e07c1615337e791a695ce8f9b99e/diff:/var/lib/docker/overlay2/c6ae0584e9dfff22816be0e5f76522fd60880c2846ddde5fb45ecc8645243572/diff:/var/lib/docker/overlay2/c55c42cbf9fa26cd0327cdb2bfb2888a25dd695d3e6d667ec0b641e0e0af20ed/diff:/var/lib/docker/overlay2/bb56dbb1db3f55a03325ec80a742da42d728f1ba8dad551e4af64192ca324803/diff:/var/lib/docker/overlay2/5cce420ffc0486f8a406b7c617fb5beb163736e7033d5114fa2af799da8659c4/diff:/var/lib/docker/overlay2/04dabf9e467edb62486ea3a8cdfb769f27236b0a4c42cc7badd86b8e5779367e/diff:/var/lib/docker/overlay2/250cabcb61bd8a8c1d99c36318eaae0381d3c9bfc8f76a26900b750095c35fe8/diff:/var/lib/docker/overlay2/2a21e7ba2e63e043c380b792de12509f28cc96ab6a4db4f0197df7190a6ea4dd/diff:/var/lib/docker/overlay2/e07bbc451bdb58671f9778e2e017190e32a3140d2f7c2b1b90e8c22c216f93c5/diff:/var/lib/docker/overlay2/c93086a8293e1fd93bcf3ab602371ab7c9ca1c1d468f31a85be5b5ac22aec332/diff:/var/lib/docker/overlay2/a1de35d65e62954fa7c0a899b70cf5c18533f9a29edbcc77116d2acbfcf978fc/diff:/var/lib/docker/overlay2/9aa8b35a50fc6c4c65f908da69258cf47667f009dddf5c1d1c88ef0327dd0958/diff:/var/lib/docker/overlay2/4c05fef9230867fa6615538715f7ed051c2570dd7276b8b24212cec2ef7c173a/diff:/var/lib/docker/overlay2/671262e724de70ec8b4d8549cb1f036cfb984cb7c8348f888c115692369918a5/diff:/var/lib/docker/overlay2/a3068a0594eeba8b21d93f09d19a457507be4128c1b8e4e965d150f1762e036a/diff:/var/lib/docker/overlay2/d239ecdcadb1ce7040506aafdb5c9998b257f0bffcaad38ee05e8e8312790633/diff:/var/lib/docker/overlay2/8c57283cc2a19f41db0c11e6ea1be01f8e3d03539869321f241297391ea8151d/diff:/var/lib/docker/overlay2/199ac161ff5c1b23dca454be1264340223bfbfe0f3a3ae5371e57c83076a2490/diff:/var/lib/docker/overlay2/97c4bf050ad7af0a851b3d39835201256a37738b4d4628c74ec5aa8fad79ce01/diff:/var/lib/docker/overlay2/55dadca580e84738db52c6975e5cb57f25bff138eaa71de3e5803eb36c3111cb/diff:/var/lib/docker/overlay2/01d3b226f525ef5a72642862614849cf7926eed5f596b800810d080bb8c4ee2d/diff:/var/lib/docker/overlay2/934c6affdd69ad9eb3386b428e69b5afa0faa9d46c98d567fb5f2457d82251df/diff:/var/lib/docker/overlay2/e65af12fb1e0da61aa5f1a1b37b87cd306e544c6666715c041903b9716ff08f4/diff:/var/lib/docker/overlay2/56f8b893d03e063a88000d8d6dcc52b1e109f5d27a7f86a223a2491ef77835f6/diff:/var/lib/docker/overlay2/8230e5b4b69b9ad274b2d0443d1f6f802cc16ce2a1fd90e4ef368889c58eafb7/diff:/var/lib/docker/overlay2/278e4a34261a39bbf7d7103da40ec23d7cf1058c7f90acf4cad0d76785bef074/diff:/var/lib/docker/overlay2/f857621cfcc4cae1dbb682380e3742fa6b443364c3676a9f40223c8489b66625/diff:/var/lib/docker/overlay2/8b05023317bb5e08a448a87fc778d467a05048a44df734819a46b91397627a1c/diff:/var/lib/docker/overlay2/270d0b7edf763709a1e0d36c3ec8444343b68f4b522609cd170d839a8bbe22aa/diff:/var/lib/docker/overlay2/0e28f864bedacddbabf54a746b54b8e96453f7ed4ac68ff22835a95c68c55ab1/diff:/var/lib/docker/overlay2/7fdbe81334f71779932adb195eeef9070c24a18dff1b3f8d7a9b42d751fe8fdf/diff",
                "MergedDir": "/var/lib/docker/overlay2/ea292857a03472b288fa92dd189b50ef39364a15cd3f59e91da90d6b986c861a/merged",
                "UpperDir": "/var/lib/docker/overlay2/ea292857a03472b288fa92dd189b50ef39364a15cd3f59e91da90d6b986c861a/diff",
                "WorkDir": "/var/lib/docker/overlay2/ea292857a03472b288fa92dd189b50ef39364a15cd3f59e91da90d6b986c861a/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "F:\\JDownloads\\",
                "Destination": "/output",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "C:\\Users\\Bluej\\Documents\\Eigene Dokumente\\Docker\\jdownloader-2\\",
                "Destination": "/config",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "432a96aa9d5e",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3129/tcp": {},
                "5800/tcp": {},
                "5900/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "DARK_MODE=1",
                "SECURE_CONNECTION=1",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/base/sbin:/opt/base/bin",
                "ENV=/root/.docker_rc",
                "USER_ID=1000",
                "GROUP_ID=1000",
                "SUP_GROUP_IDS=",
                "UMASK=0022",
                "LANG=en_US.UTF-8",
                "TZ=Etc/UTC",
                "KEEP_APP_RUNNING=0",
                "APP_NICENESS=0",
                "INSTALL_PACKAGES=",
                "PACKAGES_MIRROR=",
                "CONTAINER_DEBUG=0",
                "DISPLAY_WIDTH=1920",
                "DISPLAY_HEIGHT=1080",
                "SECURE_CONNECTION_VNC_METHOD=SSL",
                "SECURE_CONNECTION_CERTS_CHECK_INTERVAL=60",
                "WEB_LISTENING_PORT=5800",
                "VNC_LISTENING_PORT=5900",
                "VNC_PASSWORD=",
                "ENABLE_CJK_FONT=0",
                "WEB_AUDIO=0",
                "WEB_AUTHENTICATION=0",
                "WEB_AUTHENTICATION_DEFAULT_USERNAME=",
                "WEB_AUTHENTICATION_DEFAULT_PASSWORD=",
                "MYJDOWNLOADER_EMAIL=",
                "MYJDOWNLOADER_PASSWORD=",
                "MYJDOWNLOADER_DEVICE_NAME=",
                "JDOWNLOADER_HEADLESS=0",
                "JDOWNLOADER_MAX_MEM="
            ],
            "Cmd": [
                "/init"
            ],
            "Image": "jlesage/jdownloader-2",
            "Volumes": {
                "/config": {},
                "/output": {}
            },
            "WorkingDir": "/tmp",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.description": "Docker container for JDownloader 2",
                "org.label-schema.name": "jdownloader-2",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vcs-url": "https://github.com/jlesage/docker-jdownloader-2",
                "org.label-schema.version": "24.07.1"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "d5aa976e3624b30d5bf42abf0f01e2b1e9191dcf7ae2f04b0c8706e5ec9d60e6",
            "SandboxKey": "/var/run/docker/netns/d5aa976e3624",
            "Ports": {
                "3129/tcp": [
                    {
                        "HostIp": "<IP_ADDRESS>",
                        "HostPort": "3129"
                    }
                ],
                "5800/tcp": [
                    {
                        "HostIp": "<IP_ADDRESS>",
                        "HostPort": "5800"
                    }
                ],
                "5900/tcp": null
            },
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "ce180a7f59edbe520091c64a6ce4a2243fee16ed7140d2f93e9253a019c5f2b5",
            "Gateway": "<IP_ADDRESS>",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "<IP_ADDRESS>",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "MacAddress": "02:42:ac:11:00:02",
                    "NetworkID": "813cea0d068316ab49b2d1d4bddacf40f767809102b380ba930353ed9137f7b5",
                    "EndpointID": "ce180a7f59edbe520091c64a6ce4a2243fee16ed7140d2f93e9253a019c5f2b5",
                    "Gateway": "<IP_ADDRESS>",
                    "IPAddress": "<IP_ADDRESS>",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "DriverOpts": null,
                    "DNSNames": null
                }
            }
        }
    }
]

Anything else?
No response

Before the issue, it would show a captcha window within the jdownloader view on port 5800. I would type the required letters and the download started. This stopped working 1-2 month ago.
I had also tried MyJdownloader. It did not show any captchas there either.
I am also going to try this again with the new docker-jdownloader-2 version, just in case.

It's possible that the download services you are using changed the way they use captchas.
Also, JDownloader has a self-update mechanism. Make sure it is up-to-date (Help -> Check Updates).

It is possible, that they changed their captchas and use recaptcha now as well.
JDownlader is up-to-date.
I tried My.JDownloader just now. Now it gets stuck at the captcha recognition status. In My.JDownloader in the bottom, the icon says 2 captchas are waiting, but they do not show up in any way. Clicking on it does nothing either.
Which settings should be used in jdownloader for the captchas? Right now, I only left My.Jdownloader enabled.

I got it working with my.jdownloader now. Apparently, MyJdownloader is not enough. It also requires the browser add-on to work with captchas.
It would be nice to get some info when a captcha does not work within docker-jdownloader. I also do not understand why it can't load the recaptchas, when other captchas worked before. It is running in the browser, so there should be a way?
Alternative an info message, what we have to configure for these captchas, would have been nice.

I also do not understand why it can't load the recaptchas, when other captchas worked before.

Something changed either with JDownloader itself, or with the download services. You might want to ask on the JDownloader forum to get more details about the possible causes.

It is running in the browser, so there should be a way?

Don't forget that JDownloader is a Linux application that normally runs on a desktop environment, where an external browser is available. In this scenario, JDownloader would open the browser where you have to resolve the captchas. This container allow you access the JDownloader application through a web browser, but the application itself is not running in a browser. It's like doing a remote desktop.


Support logging properties into user defined columns

Added support user to supply additional columns. This is based off property name -> column name matching for simplicity.

Thanks, this looks great!
Are you able to add a brief note to README.md explaining how this is used?
Best regards,
Nick

You'll have to let me know if there should be more info. I feel this should give the gist of how to use the feature


New Activity doesnt contain track data

track_data of a new activity is null (better would be an empty array)

Why? Why should I change this? Unnecessary work.

its the API. if there are not track data  the array has to be empty. Otherwise detailed view will throw exceptions


Adding \data function to attach data attributes to HTML elements

New function for \data{attr1=value1, attr2=value2}{1+2} that puts data attributes on the elements on all children. This is used for enabling interactivity with KaTeX rendered content. We use this so that we can pass in data model specific IDs through KaTeX which we can then use to enable interactivity with the generated DOM, using data attributes as our method of tying generated DOM elements back to our model of the mathematics.
Not sure if this type of function is desired in KaTeX but it seemed fairly generic so might be useful to others. No harm if this isn't something the maintainers want to merge into KaTeX master.
I added a couple simple snapshot tests and tried to do the correct Flow annotations, but I'm not super familiar with Flow so I may have done something in a less than optimal way somewhere in here.

[clabot:check]

Looks like the CI failed due to a Flow error:
Error ------------------------------------- src/domTree.js:190:19

`VirtualNode` [1] is incompatible with `ChildType` [1].

   190| export class Span<ChildType: VirtualNode> implements HtmlDomNode {

I looked at this for a while but I can't figure out what the issue is, probably because I'm just new to Flow. If anyone can provide guidance I'll happily go fix it up.

I've updated the PR with latest master and switched to the new "raw" arg type implemented in #1711. I still have no idea how to fix the failing Flow issue because, frankly, it's not a very helpful message. I'd love to get this merged but I do need help deciphering the Flow failure.
Also looks like the CI test failed due to the repository group being Katex instead of Khan, which looks like it'll get fixed with #1781.

I still have no idea how to fix the failing Flow issue because, frankly, it's not a very helpful message. I'd love to get this merged but I do need help deciphering the Flow failure.

I'm not sure either.  I'll have to check out your branch and have closer look.

Closing in preference of #2082.


Custom serializer discarded when WrapSerializer is used

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
The use of Annotated combined with a WrapSerializer prevents a custom serializer from being used.
The following example code should be self-explanatory:
Example Code
from typing import Annotated

import pydantic
import pydantic_core.core_schema

class MyCustomType:
    def __init__(self, val: int):
        self.val: int = val

    def __repr__(self):
        return 'my_custom_type_repr'

    @classmethod
    def __get_pydantic_core_schema__(cls, _source, _handler):
        return pydantic_core.core_schema.no_info_plain_validator_function(
            cls,
            serialization=pydantic_core.core_schema.plain_serializer_function_ser_schema(
                lambda _v: 'custom_serialization'
            ),
        )

class MyModel(pydantic.BaseModel):
    x: MyCustomType

class MyModelUsingAnnotated(pydantic.BaseModel):
    x: Annotated[MyCustomType, pydantic.WrapSerializer(lambda v, h: f'wrapped:{h(v)}')]

if __name__ == '__main__':
    my_model = MyModel(x=1)
    print(my_model.model_dump())
    # result: {'x': 'custom_serialization'}
    # expected: {'x': 'custom_serialization'}

    my_model_using_annotated = MyModelUsingAnnotated(x=1)
    print(my_model_using_annotated.model_dump())
    # result: {'x': "wrapped:my_custom_type_repr"}
    # expected: {'x': 'wrapped:custom_serialization'}

Python, Pydantic & OS Version
pydantic version: 2.7.1
        pydantic-core version: 2.18.2
          pydantic-core build: profile=release pgo=true
                 install path: -
               python version: 3.11.2 (tags/v3.11.2:878ead1, Feb  7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)]
                     platform: Windows-10-10.0.19045-SP0
             related packages: mypy-1.2.0+dev.456dcbdd6a2f9b36249e0e7d31e521f5678a8235 typing_extensions-4.11.0
                       commit: unknown

@ornariece,
Hmm, thanks for reporting this. I don't think this is necessarily a bug, but perhaps a change request. Looks like the current behavior is such that the custom get schema function overrides any changes applied via annotations.
@adriangb, is this intentional? Is this something we want to change?

At first glance I don't think it's a bug per se but maybe more like a limitation of what you can achieve with these annotations.

Looks like the current behavior is such that the custom get schema function overrides any changes applied via annotations.
you got that backwards: the annotation is overriding the custom serializer of the type.

From an implementation point-of-view, I get why you'd think this is more a limitation than a bug, since the workaround for a user is pretty straightforward. However, I'd definitely argue that this is conceptually a bug. Also, it can be very disorientating for a user using a custom type from a 3rd-party library: here the user would likely not be aware beforehand that the custom type is using a custom serializer method, and would annotate it all the same in their code, at which point they would be confused as to why their WrapSerializer doesn't actually wrap the expected serialization.

you got that backwards: the annotation is overriding the custom serializer of the type.

Ah yes, you're right. This seems like a bug!


Task: Add distributed async support to metadata update

What is the task about?
This task is to support distributed async support for the user using the CLI.
This task must be implemented on top of

#222
#290
#294

rstuf admin metadata update needs to support

Use a single private key to start the process
The user can inform all the public keys required for signing
The signature will happen distributed and asynchronous using the rstuf admin metadata sign implemented by #294

Parent feature

https://github.com/repository-service-tuf/repository-service-tuf/issues/327

References

#294 the bootstrap process (rstuf admin ceremony)

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Here it's important how the authorization part should happen.
Currently, when we do metadata update with full signing, we expect at least threshold number of keys from current root to be loaded.
Now, we cannot do that as curent root can be signed from people around the world.
What I suggest is that we change what GET /api/v1/metadata/sign returns to include information for the actual keys that are expected to sign the metadata.
They will be presented by their keyid (we don't need to send full key information and given that for aws keys it's likely we are going to change the public key value of the key to securesystemslib pub key value we don't want to show that).
Finally, when a user calls POST /api/v1/metadata/sign and gives signature of the metadata and keyid we would make sure that this keyid is from the list of keyids we allow for signing.
The reason why this will help is that when a user asks for GET /api/v1/metadata/sign we would return only those keyids from current root that are not loaded + the additional keys required to verify the new root.json.
What do you think of that idea @lukpueh, @KAUTH and @kairoaraujo?

We do support DAS with our new CLI.


[zero-copy] Fix self-referential recursive

This isn't really original code, just copying over the way it works on master. My benchmarks no longer get OOM-killed with this change.

Thanks very much!


178 rhessys model instance phase1

This first phase of the RHESSys model instance includes the ability to unzip a zip file on resource creation(#485), which is a major pre-requisite for support RHESSys models, which can have dozens if not hundreds of files.  This phase also adds a rest API end point /hsapi/resource//file_list/ which returns a list of resource files associated with a resource (#601).
The optional unzipping works as follows.  When creating a resource using hs_core.hydroshare.resource.create_resource, if unpack_files is True, and files contains only one file, and that file is a zip file, then the file is not immediately added to the resource, but instead a Celery task is created (to be run 30 seconds in the future) that will unzip the file adding each file in the zip file to the resource, maintaining the directory hierarchy present in the zip file.  This seemed like the best approach in that is relatively simple, and does not break how create_resource currently works.  We can debate the proper approach as part of this PR.
To keep track of the progress of the file unpacking, I have added two fields to AbstractResource: file_unpack_status, and file_unpack_message.  These can be used to provide feedback to the user about the progress, or if an error occurs (if an error occurs, an admin should probably be notified as there may be a problem like a container running out of disk space).
@mauriel133 The unzipping functionality will require some UI work on the resource landing page for the following reasons:

The file unzipping is done asynchronously via a Celery task (as the unzip can take a long time).  There will need to be some UI work to show the user the state the unzipping is in (i.e. pending, running, done, error).
When there are a large number of files, page load times are unacceptably slow as all of the files in a resource are listed on the landing page; instead, a hierarchical viewer should be used.  The source file list REST API end-point could be used to populate this list.

We will also have to do some REST API work to expose the unzipping and unzipping status checking functionality.
@pkdash Would you be able to review this?
This PR also includes an update to Celery, so @mjstealey will need to review to identify any deployment issues.

Can one of the admins verify this patch?

@pkdash please let me know when the previous feedback has been addressed before I read over the pull request again.

@selimnairb Looks like this PR needs to be updated. Also let @ironfroggy know when this is ready for another round of review.

@pkdash @ironfroggy I have addressed the initial comments in the PR.  Please let me know if there are further issues.  Once this is merged, I will be working with @mauriel133 to add support for un-zipping file contents on upload to the front end (including support for seeing the status of un-zipping).

@selimnairb Looks like this need to be updated with develop once again.

@ironfroggy Looks like @selimnairb has made some changes to address your concerns. Once this PR gets updated with develop, can you do another round of review?

@ironfroggy @pkdash The latest merge is complete.

@ironfroggy @pkdash I realize that you were waiting on my last week to review this.  However I believe it is now ready after addressing prior concerns.  Please review this as soon as you can so that it may be merged into develop without incurring further undue merge conflict resolution overhead.

@selimnairb Since @ironfroggy only has reviewed this PR with comments so far and it seems you have addressed all his concerns since, I would like @ironfroggy to do a final round of review for a +1.

:+1:


feat(keymaps): Get rename command from inc_rename configuration

Gets the rename command from the inc_rename module (when installed), rather than assuming the default IncRename, allowing the user to modify the inc_rename options without having to create a new keymap.

Thanks!


[perf] consider to yield when creating workbench contributions

We have many workbench contributions for the phase Restored and that's visible in telemetry. The median times are quite bad - half our users "wait" for longer than 80ms.

IMO we should consider to yield while this is happening, e.g instantiate contributions for some time (15 or 30ms) and then schedule a task for more creation work

@jrieken open for suggestions, the slight risk is that a contribution will no longer be guaranteed to be instantiated when layout is restored, but later.
For the LifeCyclePhase.Eventually we already have a concept of pushing the instantiation out to idle:
https://github.com/microsoft/vscode/blob/229c95c8ac119df9059491034436bd02be303e67/src/vs/workbench/browser/workbench.ts#L432-L436
Would you suggest doing the same for LifecyclePhase.Restored?

 And yes there is a risk of the behavioural change because some extension can become instantiated slightly later but I believe that's manageable

@jrieken one thing I just realise is that we seem to be logging code/didStartWorkbench only after setting lifecycleService.phase = LifecyclePhase.Restored:
https://github.com/microsoft/vscode/blob/70c45ba0297f1ce516eafbc56d679a4a2c5a17e7/src/vs/workbench/browser/workbench.ts#L429-L451
As such, we seem to actually be waiting for each workbench contribution that is registered on LifecyclePhase.Restored to be instantiated before marking the time. Maybe this could explain a bit of the variance we see with the perf bot, shouldn't we immediately mark code/didStartWorkbench and only then set the phase to Restored?

Oh interesting, looks like we are lucky given this then usage:
https://github.com/microsoft/vscode/blob/70c45ba0297f1ce516eafbc56d679a4a2c5a17e7/src/vs/workbench/common/contributions.ts#L91
Even though calling lifecycleService.phase = LifecyclePhase.Restored; will emit the event that the phase is reached, given we await a Promise the contributions are instantiated only after.
Anyway, I would maybe still make this more explicit and move the code that marks code/didStartWorkbench earlier?


Sample docker-compose.yml

Hi Chris,
For those of us who prefer a docker-compose.yml, the following replicates your command:
version: '3.4'

services:
  lxp-bridge:
    container_name: lxp-bridge:latest
    image: celsworth/lxp-bridge
    restart: unless-stopped
    init: true
    volumes:
    - type: bind
      source: ${PWD}/config.yaml
      target: /etc/config.yaml

👍 thanks, added and referenced in the README in https://github.com/celsworth/lxp-bridge/commit/f540eb8bc94c1a60848694e7218f40f94ee54600 :)

Hi @IMgoRt!
I'm not sure I understand - the example docker-compose is still in the repo, and the content of this part of the the README has moved to https://github.com/celsworth/lxp-bridge/wiki/Getting-Started
Can you elaborate exactly whats missing? Its very possible I did miss something when writing the wiki!

Hi @IMgoRt!
I'm not sure I understand - the example docker-compose is still in the repo, and the content of this part of the the README has moved to https://github.com/celsworth/lxp-bridge/wiki/Getting-Started
Can you elaborate exactly whats missing? Its very possible I did miss something when writing the wiki!

Sorry Chris
I was looking for the items now contained in https://github.com/celsworth/lxp-bridge/wiki/MQTT

👍 so long as you found what you were looking for :)