Disappeared CreateButton after catalog customization - useRouteRef(createComponentRouteRef) returns undefined after checking in DefaultCatalogPage.tsx code into app instance

📜 Description
I'm trying to customize catalog look. Inspired by documentation I copied the code from backstage/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx and checked that into my app, but after that CreateButton disappears.

Logic in DefaultCatalogPage looks like this:
<CreateButton
  title={t('indexPage.createButtonTitle')}
  to={createComponentLink && createComponentLink()}
/>

and inside CreateButton if createComponentLink is falsy then it's not getting generated.
createComponentLink is defined few lines before, like that:
const createComponentLink = useRouteRef(createComponentRouteRef);

For some reason when you import CatalogIndexPage from @backstage/plugin-catalog it shows the button, but not when imported from local.
Exact reproduction steps are:

Create new app
Copy src/components/CatalogPage/DefaultCatalogPage.tsx, src/translation.ts, src/routes.ts from plugins/catalog into your codespace
Update imports in DefaultCatalogPage.tsx - point local translation.ts and routes.ts files, the rest could be imported from @backstage/plugin-catalog package.
Update App.tsx to use custom <DefaultCatalogPage /> on the /catalog route

<Route path="/catalog" element={<CatalogIndexPage />}>
  <DefaultCatalogPage />
</Route>

I know I can hardcode const createComponentLink = () => '/create' as a workaround and then CreateButton appears, but would like to understand why not initially.
👍 Expected behavior
CreateButton should stil be shown
👎 Actual Behavior with Screenshots
described above
👟 Reproduction steps
described above
📃 Provide the context for the Bug.
No response
🖥 Your Environment
backstage 1.29.2
👀 Have you spent some time to check if this bug has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

You probably didn't want to copy the routes and translations. My initial suspicion here is that by copying the routes you ended up with duplicate "twins" of the route refs. Your copy of the page didn't find a populated version of its shadow twin (which makes the button disappear), while the original route ref is the one that actually was populated.

You probably didn't want to copy the routes and translations. My initial suspicion here is that by copying the routes you ended up with duplicate "twins" of the route refs. Your copy of the page didn't find a populated version of its shadow twin (which makes the button disappear), while the original route ref is the one that actually was populated.

But, what would be the suggested way of handling this case?

When copying createComponentRouteRef you create a new instance of the ref, that new instance also needs to be bound to it's target route, which is often the scaffolder.createComponent route. You do that either via config or code. We did add a feature a little while back that makes this easier though, you can now specify a defaultTarget for external route refs, meaning you don't need to manually bind it in the app anymore. If you update your definition to the following, I'd expect things to work:
export const createComponentRouteRef = createExternalRouteRef({
  id: 'create-component',
  optional: true,
  defaultTarget: 'scaffolder.createComponent',
});

@Rugvip thanks for the hint! I've played a bit, but still have same effect, and it feels that I'm missing some points.
So, just to double check, shall I specify in 'defaultTarget: 'scaffolder.createComponent'' the ref to my own scaffolding template or?
Thanks a lot.

@dtabolich when copying the page you also copied the definition of createComponentRouteRef right? You'll want to replace that definition with the one I posted

@dtabolich when copying the page you also copied the definition of createComponentRouteRef right? You'll want to replace that definition with the one I posted
@Rugvip, actually I took the page template from documentation (not Default one), so it doesn't have CreateButton.
https://backstage.io/docs/features/software-catalog/catalog-customization/#advanced-customization

But, as for the button, you're right, I've borrowed it here:
https://github.com/backstage/backstage/blob/83e7780ca40b5a4c9b5439ef91370e3a91b6e8ce/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx#L67
And by some reason even with your code snippet it doesn't work for me...
BTW, maybe, it's a good idea to take 'DefaultCatalogPage' as a reference, but it has too many 'local' dependences, so didn't wanted to copy them into my code....
Anyway, if there are some thoughts/hint how to get it fixed, I'd still appreciate.
Thanks.

@Rugvip , I'd appreciate any thoughts on this, so we can get it sorted out?
In short, I've already copied the definition from routes (createComponentRouteRef), but it doesn't solve the issue...
And in my case, I'd like to navigate to my custom action.
Something, like%
const addProductLink = () => '/create/templates/default/add-product';
So, is there any way to pass it through the default target?
defaultTarget: 'scaffolder.createComponent'
Thanks.


Discord link brroken

Just wanted to give you a heads up that the discord link in the readme is not working ✌
I would love to join!

You can try this link.


Pyspark practice branch

This branch use for practice with pyspark, spark sql, and spark dataframe. More detail: Readme

no longer needed


Documentation for Tone.Event needs to be updated to Tone.ToneEvent

The Events examples here:

https://tonejs.github.io/examples/events.html

link to

https://tonejs.github.io/docs/13.8.25/Event.html

whereas, using 14.7.x, I couldn't compile with Webpack, and then found that it had been renamed:

https://tonejs.github.io/docs/14.7.39/ToneEvent

I'm not sure the best way to update the tonejs.github.io examples, and what wording should be used on the wiki

https://github.com/Tonejs/Tone.js/wiki/Events

All very helpful examples, but it tripped me up until i found the new class name

PRs welcome if you've got time to make the fix yourself. The file in question is here.
Otherwise i'll get to it when i have a spare moment

closed by #763


Link to example points to wrong address

Above link fails: https://github.com/Azure-Samples/azure-maps-samples/blob/master/src/interactiveSearch.html

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

ID: e3d455c9-d5c7-3a9e-5de5-b16072f3c77e
Version Independent ID: d0f120b2-5ef9-9112-d17f-e8b2275ed5b4
Content: Interactive Map Search with Azure Maps
Content Source: articles/azure-maps/quick-demo-map-app.md
Service: azure-maps
GitHub Login: @kgremban
Microsoft Alias: kgremban

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

For reference, the Download the application section contains a broken link.

Hi @cezary-draus and @Mike-Ubezzi-MSFT this link has been fixed and is now working in the article. Thank you for pointing this out.

@cezary-draus We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Apply new colors and components to the exisiting designs

Acceptance criteria

[ ] colour system of the Pangea apps are using the Tonomy Design System

The task has been finished. You can see the changes here: https://www.figma.com/design/cvV48t0f7O2znT6QBxK0Zj/Tonomy-ID?node-id=772-5523&t=GVfcEpNHcjWwsWFm-1


Prevent error from empty string identifier

When the identifier passed to spdx-correct is an empty string, the following error is raised:
TypeError: Cannot read property 'toUpperCase' of undefined
This is because when attempting to upcase the first letter of the string, ''[0] returns undefined. Instead using ''.charAt(0) returns '', preventing the type change.

Closed by 0d7fb067493197a17e1a2f8f8e6263b28d71c210


How to pass arguments to wasm component exported functions?

Closing this issue as the only supported Worlds in runwasi shims are wasi:cli and wasi:http


classnames inversion issue

Hi,
I'm having the following issue trying to specify the classnames of my series in a bar chart. It seems these classnames are assigned to the wrong series. Any advice on why this happens to me?
Here is the code by which I create the two series specifying 'last' and 'forecast' as classnames:

Here are the elements I obtain on my page:

It seems the series classnames have been inverted.

Hi @JCL2 👋
Is the issue still relevant for you?

Hi @Arantiryo ,
Thank you for enquiring!
The issue is not important for me as I switched approach for this particular case. Yet, I think there's a small issue there and if it's fixed one day I'd be happy to know about it.

thanks, great!


Build error in native_pdf_renderer plugin on Swift 4.2

Package name
native_pdf_renderer v1.3.0+1
Describe the bug
=== BUILD TARGET native_pdf_renderer OF PROJECT Pods WITH CONFIGURATION Release ===
/Users/escolarmanager/work/flutter_plugins_pdf/packages/native_pdf_renderer/ios/Classes/document/Page.swift:59:30: error: 'pngData()' has been renamed to
'UIImagePNGRepresentation(_:)'
data = image.pngData() as Data?
^~~~~~~
UIImagePNGRepresentation
UIKit.UIImage:58:17: note: 'pngData()' was introduced in Swift 4.2
public func pngData() -> Data?
To Reproduce
Steps to reproduce the behavior:

Create a new flutter project;
Adds native_pdf_renderer v1.3.0+1 plugin to pubspec.yaml
Run flutter build ios command
See error

Expected behavior
Successful build
Smartphone (please complete the following information):

MAC OS Mojave 10.14.5
XCODE Version 10.1 (10B61)
Swift 4.2

Additional context
I was replaced the 59 line of Page.swift file and the build works!!!
original
data = image.pngData() as Data?
suggestion
data = UIImagePNGRepresentation(image)
Could you please publish the correction in pub.dev?
Thanks in advance

@stenionobresem see #3


allow wrapper cookbooks to use the provider

When trying to use the 1.1.0 version of tas50/chef-smokeping I get:
==
Recipe: sbo_smokeping::default
* smokeping_target[Production] action create
- Converging by Production
       Error executing action `create` on resource 'template[/etc/smokeping/config.d/Production.targets]'
   ================================================================================

       Chef::Exceptions::FileNotFound
   ------------------------------
       Cookbook 'sbo_smokeping' (0.1.0) does not contain a file at any of these locations:
         templates/ubuntu-14.04/group_targets.erb

     templates/default/group_targets.erb
         templates/group_targets.erb

       Resource Declaration:
   ---------------------
       # In /tmp/kitchen/cookbooks/smokeping/providers/target.rb

        25:     template file do
        26:       source 'group_targets.erb'
        27:       mode '0644'
        28:       variables(
    29:         :data => new_resource.data
        30:       )
        31:     end
    32:     Chef::Log.info "#{file} created"

==
This PR resolves that problem by specifying the template in the provider

merged and new release pushed to the community site


improve layout of GO in OLS

Browsing GO at OLS shows a huge flat list under biological_process: https://www.ebi.ac.uk/ols/ontologies/go
It seems like they are automatically injecting subclassOf relations for named terms in logical definitions (i.e. genus), similar to how Protégé does in the asserted view.
@matentzn says there are some options we can request, so that they use the ELK-inferred hierarchy.
This ticket is a reminder to get in touch with them about this.

Submitted a ticket to OLS: https://github.com/EBISPOT/OLS/issues/450

OLS updated the view and things look better now.


[CSL-1869] Improve block(header) server performance

Block deserialization is skipped when sending.
Loading headers performance improved (slightly).
It's a real pain, but I've managed to verify the improvements locally.
Block generator in cardano-sl-1.0 generated a chain of poor quality!
I couldn't figure out how to get the system start time right so that
the test nodes wouldn't immediately jump into recovery mode.
Anyway, since the test node was always in recovery mode, I
noticed that the recovery mode block headers server also suffers
from the block deserialization inefficiency: it will load headers
"up" using GS.loadHeadersUpWhile, which in fact loads more than
just the header, it deserializes the block with undo. We can fix that
later, as our relays are probably not going to be in recovery mode (I
hope not!) so it won't affect us.

It's quite difficult to get a good isolated profile of the improvements.
I'm going off of the log timestamps (I did a profiling run but oops, I used -fprof-auto so the files are full of noise). With this change, the get blocks request is handled and all blocks sent (2200 empty blocks, 1.4mb total) within a second. Prior to the change it took 4. This is over loopback. The get headers response still takes 4-5 seconds, because of what I explained in the pull request summary: when in recovery mode, the headers are retrieved by way of the blocks, whereas the headers retrieval within the get blocks listener goes by way of headers. That extra block decoding in the former is what kills the performance.

I should mention as well that I noticed the client took a lot of time to verify the (empty) blocks, perhaps because there was something wrong with them (generator gave me a bad chain). We should think about getting some performance profiles for verification.
I just skimmed the code for this but it looks like verification could also do a lot of block deserialization: DB.loadBlundsFromTipWhile.

it will load headers "up" using GS.loadHeadersUpWhile, which in fact loads more than just the header

It's partially (only one handler is optimized, maybe we can do more) solved here: https://github.com/input-output-hk/cardano-sl/pull/2090

Also please add issue id to your commit message.

Updated the commit messages, and set time-warp-nt revision to use cardano-sl-1.0 branch.
I know, pkgs/default.nix must be updated, but whenever I run generate locally it hangs. So my strategy is to wait for travis to fail, and apply the patch it produces for me :)

LGTM

@dcoutts this means nothing without an official GitHub Approval ™

Initial sanity checks on a new public relay that was intentionally kept out of the RR DNS pool are promising. Michael and Neil were able to send transactions back and forth, Michael starting with no local blockchain and Neil syncing from a relatively recent block.
We have just added that relay to the RR DNS to acquire more subscribers. After the connection count evens out with existing public relay averages we can start comparing metrics. Historically this has taken ~12h, but that was before the topology grew so much; it's only a rough estimate.


AutoFixture's AutoDataAttribute and xUnit's PropertyDataAttribute don't play nice together

As described in this StackOverflow answer, the two attributes can't be combined in the usual ways.
I have shared my solution here - if you're interested in implementing this in AutoFixture.xUnit.net, I could get it into shape for a PR

Thank you for writing, and for sharing your solution. As far as I can tell, that solution is explicitly about combining [PropertyData] with [AutoData] - is that correct?
It's not clear to me if CompositeDataAttribute behaves appropriately. From that Stack Overflow answer, I get the impression that it doesn't, so perhaps it'd be better to address the root cause of the problem...

I think you're right. The body of CompositeAttribute.GetData looks like it could be adapted to lazily evaluate its children.
I noticed that the method body favours loops over LINQ - shall I stick to this the style or would you accept a more functional-looking solution?

My proposed solution involves:

The aforementioned changes to CompositeDataAttribute to permit infinite sequences being provided
A RepeatDataAttribute that decorates a DataAttribute, repeating its data infinitely
A variation on AutoDataAttribute which allows a Func<IFixture> to be provided in the constructor. This means that the fixture can be reinitialized on every GetData invocation.

Does the above sound sensible?

Thank you for reporting this! It might be a bug – though, as @ploeh wrote, it'd be nice if we do a root cause analysis first.
Here's the algorithm of CompositeDataAttribute, as described here:

Delegate the GetData method call to the first attribute.
Loop through the results from the first DataAttribute and check if the length of each object array matches the number of arguments required by the method.

If so, yield the object array.
If not, invoke GetData on the next DataAttribute.

Throw away the first objects from the result in order to continue from where it ran out of objects from the first result set and concatenate the rest to the previous array.

Recursively repeat this process until all object arrays have the required length.

Does the algorithm solves the problem described in this question? I think, it does not:

Throw away the first objects from the result in order to continue from where it ran out of objects from the first result set and concatenate the rest to the previous array.

So, as far as I can tell, the easiest fix, is by not throwing away the first objects from subsequent attributes.
This basically corresponds to 1. of the solution you propose above. – Please, let's discuss 2. and 3. separately.

I noticed that the method body favours loops over LINQ - shall I stick to this the style or would you accept a more functional-looking solution?

How about making the minimum required changes for now? It can be easier to review a (hypothetical) Pull Request this way. – Once we get this right, we could possibly make that code less imperative. :grimacing:
--
As a side note: sometimes imperative can be easier to understand than its equivalent declarative.

That description of the algorithm doesn't sound to me like how this feature was originally envisioned...
The algorithm I originally had in mind would go something like this:

Start enumeration of the first row, by asking all DataAttributes to produce values for that row, then combine the results together until there are enough values to fill all requested arguments, and return that row.
Repeat the above step until the one of the DataAttributes stops enumerating.

In other words (if this helps), I'd expect the implementation to go something like this: Each DataAttribute returns IEnumerable<object[]>, so the first step is to Zip all the composed DataAttributes. E.g. for three composed DataAttributes, the result of that could be IEnumerable<Tuple<object[], object[], object[]>>.
Next step is to take all the objects from the first element in the tuple and use them for the returned value. If there aren't enough in the first element, then pick from the next tuple element, but skip the first n elements (where n is the number of values contained in the first tuple element). Repeat for the third, fourth, fifth data source if necessary.
Once the first row is fully populated, you can yield that row, and move to the next row, where that entire process can be repeated.
Pseudo-code:
For all dataAttributes: GetEnumerator()
For all enumerators: MoveNext()
If all MoveNext returned true:
   For all enumerators, get Current
   Get objects to match parameters from first Current. Assume that it returns *n* values.
       If you need more than *n* values, skip *n* values from the next Current. Assume that it returns *m* values.
           If you need more than *n + m* values, skip *n + m* values from the third Current and take from that, etc.
       Once the row is fully populated, yield that row and MoveNext on all enumerators, repeating this process.

Nikos, I'd be wary of supplying the same objects for different testcases. In an immutable world that's fine but there could be unintended consequences of reusing a mock, for example.
This actually extends to the IFixture instance itself - if you freeze an object in the fixture, the same instance will be resupplied to every test case, again exposing the user to unintended side-effects. This is why I suggested a separate DataAttribute that takes a factory function, so it can instantiate the fixture for each test case.
Mark, I did think that a zip is the most sensible way to do this. My only concern is that the user might accidentally restrict the number of test cases to one, by using a regular AutoDataAttribute. As we've seen, in the current implementation this throws an InvalidOperationException, thereby warning the user that something is wrong. With a zip there is no error, but only the first testcase is executed. Do you think that is acceptable? Perhaps the docs could warn the user?

As part of the route cause analysis, I think it'd be beneficial to see how plain xUnit.net data theories work, and compare that with AutoFixture.Xunit's CompositeDataAttribute behaviour.
xUnit.net
Below is how xUnit.net behaves in a parameterized test using the Xunit.Extensions.PropertyDataAttribute:
public class MyClass
{
    public static IEnumerable<object[]> Letters
    {
        get
        {
            yield return new[] { "a" };
            yield return new[] { "b" };
        }
    }

    [Theory]
    [Xunit.Extensions.PropertyData("Letters")]
    public void Test(string s1, string s2)
    {
        Assert.NotNull(s1);
        Assert.NotNull(s2);
    }
}

The above vanilla-xUnit.net parameterized test fails (with xUnit.net < 2.0) with the following exception:
Test 'Xyz.MyClass.Test("a")' failed: System.InvalidOperationException
  : Expected 2 parameters, got 1 parameters
    at Xunit.Extensions.TheoryCommand.Execute(Object testClass)
    at Xunit.Sdk.FixtureCommand.Execute(Object testClass)
    at Xunit.Sdk.BeforeAfterCommand.Execute(Object testClass)
    at Xunit.Sdk.LifetimeCommand.Execute(Object testClass)
    at Xunit.Sdk.ExceptionAndOutputCaptureCommand.Execute(Object testClass)

Test 'Xyz.MyClass.Test("b")' failed: System.InvalidOperationException
  : Expected 2 parameters, got 1 parameters
    at Xunit.Extensions.TheoryCommand.Execute(Object testClass)
    at Xunit.Sdk.FixtureCommand.Execute(Object testClass)
    at Xunit.Sdk.BeforeAfterCommand.Execute(Object testClass)
    at Xunit.Sdk.LifetimeCommand.Execute(Object testClass)
    at Xunit.Sdk.ExceptionAndOutputCaptureCommand.Execute(Object testClass)

0 passed, 2 failed, 0 skipped, took 0.50 seconds (xUnit.net 1.8.0 build 1549).

This means that xUnit.net executes tests decorated with [PropertyData("Letters")] twice, supplying:

"a" on the first run
"b" on the second run

In other words, xUnit.net sees the Letters property as:
public static IEnumerable<object[]> Letters
{
    get
    {
        yield return new[] { "a" }; // 1st run
        yield return new[] { "b" }; // 2nd run
    }
}

AutoFixture.Xunit
The CompositeDataAttribute  also works that way, in the sense that it respects the way xUnit.net works with data theories.
Hypothesis: A test with 3 parameters, decorated with one attribute, which is composed of 2 attributes:
public class PropertyAutoDataAttribute : CompositeDataAttribute
{
    public PropertyAutoDataAttribute(string propertyName)
        : base(
            new DataAttribute[]
                {
                    new PropertyDataAttribute(propertyName),
                    new AutoDataAttribute()
                })
    {
    }
}

public class MyClass
{
    public static IEnumerable<object[]> Letters
    {
        get
        {
            yield return new[] { "a" };
            yield return new[] { "b" };
        }
    }

    [Theory]
    [PropertyAutoData("Letters")]
    public void Test(string s1, string s2, string s3)
    {
        Assert.NotNull(s1);
        Assert.NotNull(s2);
        Assert.NotNull(s3);
    }
}

The above xUnit.net parameterized test fails (with xUnit.net < 2.0) with the following exception:
Test 'Xyz.MyClass.Test' failed: System.InvalidOperationException: An exception
was thrown while getting data for theory Xyz.MyClass.Test:

System.InvalidOperationException: Expected 3 parameters, got 1 parameters
   at Ploeh.AutoFixture.Xunit.CompositeDataAttribute.<GetData>d__0.MoveNext()
    in ...\CompositeDataAttribute.cs:line 148
   at Xunit.Extensions.TheoryAttribute.<GetData>d__7.MoveNext()
   at Xunit.Extensions.TheoryAttribute.EnumerateTestCommands(IMethodInfo method)
    at Xunit.Extensions.TheoryAttribute.<>c__DisplayClass5
      .<EnumerateTestCommands>b__1()
    at Xunit.Extensions.TheoryAttribute.LambdaTestCommand
      .Execute(Object testClass)

This is expected, given the way xUnit.net works with data theories. The exception message is misleading, and that's something we could improve on our end.
Conclusion
Given all the above, it looks to me as the solution described in this Stack Overflow answer is still valid.
We could try to modify CompositeDataAttribute so that it thinks that there's no data theory iterations concept, but that would be different from the way xUnit.net works with data theories:
diff --git a/../CompositeDataAttribute.cs b/../CompositeDataAttribute.cs
index 6044a41..377c302 100644
--- a/../CompositeDataAttribute.cs
+++ b/../CompositeDataAttribute.cs
@@ -110,7 +110,7 @@ namespace Ploeh.AutoFixture.Xunit
                         }
                     }

-                    var theory = attributeData[iteration];
+                    var theory = attributeData.SelectMany(x => x).ToArray();

                     int remaining =  numberOfParameters - foundData[iteration].Count;
                     if (remaining == numberOfParameters)
@@ -143,17 +143,8 @@ namespace Ploeh.AutoFixture.Xunit
                 {
                     yield return foundData[iteration].ToArray();
                 }
-                else
-                {
-                    throw new InvalidOperationException(
-                          string.Format(
-                              CultureInfo.CurrentCulture,
-                              "Expected {0} parameters, got {1} parameters",
-                              numberOfParameters, foundData[iteration].Count
-                              )
-                          );
-                }
-            } while (++iteration < numberOfIterations);
+
+            } while (foundData[iteration].Count < numberOfParameters);
         }
     }
 }

Then, the following test would pass:
public class PropertyAutoDataAttribute : CompositeDataAttribute
{
    public PropertyAutoDataAttribute(string propertyName)
        : base(
            new DataAttribute[]
            {
                new PropertyDataAttribute(propertyName),
                new AutoDataAttribute()
            })
    {
    }
}

public class MyClass
{
    public static IEnumerable<object[]> Letters
    {
        get
        {
            yield return new[] { "a" };
            yield return new[] { "b" };
        }
    }

    [Theory]
    [PropertyAutoData("Letters")]
    public void Test(string s1, string s2, string s3)
    {
        Assert.NotNull(s1);
        Assert.NotNull(s2);
        Assert.NotNull(s3);
    }
}

However, it would be a lot easier if we leave CompositeDataAttribute as-is, makes things more explicit, and define another Composite for xUnit.net data attributes, which behaves that way.

Nikos, I think we may be talking at cross-purposes. I am not proposing to change the behaviour of CompositeDataAttribute - as you rightly point out, the diff you listed above would subvert expectations of PropertyDataAttribute. The 6th, 7th and 8th tests in CompositeDataAttributeSufficientDataTest verify this.
What I do suggest is that CompositeDataAttribute should permit lazy evaluation of its children rows, which would allow a child to provide AutoData repeatedly for as long as it is needed. This is the functionality of zip.
Perhaps this is best explained in code - I will submit a PR and we can go from there.

This is turning out to be so involved that I think it's warranted to take a step back and consider whether all this additional complexity is warranted.
As far as I can tell, we agree that CompositeDataAttribute doesn't work how it was intended to work. However, there are at least to ways to respond to this:

Fix it (this is what you're currently attempting to do)
Deprecate it

CompositeDataAttribute works fine as a base class for AutoInlineDataAttribute, but apart from that particular combination, I don't think we've ever seen it used successfully with other combinations.
Are those combinations warranted? Why would anyone need to combine e.g. AutoDataAttribute and PropertyDataAttribute?
As soon as you're using PropertyDataAttribute or ClassDataAttribute, you can write any code you'd like, including calling AutoFixture to fill in remaining data.
Example:
public static IEnumerable<object[]> TestCases
{
    get
    {
        var fixture = new Fixture().Customize(/* whatever */);
        yield return new object[] {1, fixture.Create<string>(), fixture.Create<MyObj>() };
        yield return new object[] {2, "Foo", fixture.Create<MyObj>() };
        // etc.
    }
}

Isn't that much easier?

Sure, I can see why you want to confirm that it's worth the change :)
Personally, the only times I have wanted to use PropertyDataAttribute (as opposed to InlineAutoData) are when I've wanted to parameterize a test case with a complex object. In that scenario, I want a property to provide one or two objects per iteration, and AutoFixture to provide the rest.
I'll take this example adapted from a real project (pseudocode-y but you get the idea):
public static IEnumerable<Func<Client,ClientDto,bool>> GetPropertyChecks
{
	get
	{
		yield return (client, dto) => dto.Title == client.Person.Title;
		yield return (client, dto) => dto.FirstName == client.Person.FirstName;
		yield return (client, dto) => dto.LastName == client.Person.LastName;
		yield return (client, dto) => dto.Email == client.Person.EmailPersonal;
		yield return (client, dto) => dto.MobileNumber == client.Person.TelephoneMobile;
		etc..
	}
}

[Theory, ParameterizedAutoData("GetPropertyChecks")]
public void CheckProperty(
	Func<Client,ClientDto,bool> check,
	[Frozen] IRepository repo,
	GetClientQueryHandler sut,
	GetClientQuery qry,
	Client client)
{
	// arrange
	repo.Query<Client>().ReturnsQueryable(client);
	qry.Id = client.Id;

	// act
	var result = sut.Handle(qry);

	// assert
	check(client, result).Should().BeTrue();
}

Perhaps this is a little unusual in that I'm supplying an equality assertion as a parameter - but I think it demonstrates why the change is useful

My enumerable property only has to worry about supplying one parameter - SRP
If, every time I want to add a new parameter, I have to copy + paste the fixture code above it - well, I'd rather keep things DRY
Similarly if I want to change the parameter order or introduce a new AutoData parameter, I have to make that change in n+1 places
For me, one of the most powerful attractions of using AutoFixture with xUnit is that I don't need to call fixture.Create<>() everywhere - it's all taken care of by AutoDataAttribute which cleans up my tests, focusing on the second two A's (action and assertion) rather than the arrangement

Given that the change is relatively minor behaviourally, and preserves the existing InlineAutoData use case, I think it's worth doing. Nikos has checked over the PR I sent - #356 - and seems to think it's a good idea. If you've any more feedback, I can incorporate it before revising and resubmitting!

My only concern regarding #356 is that it currently mutates existing tests. – AFAICT clients that might be using this approach (or similar) can end up dealing with breaking changes.
Probably those tests that are currently mutated by #356 shouldn't actually be there in the first place, as they now seem to be making the test suite less trustworthy...
--
As a side note: In the example above, wouldn't it be more idiomatic and easier by semantically comparing the two objects? AFAICT you can do that with SemanticComparison and Likeness.

The only tests that change in #356 are:

These, asserting that an exception would be thrown when the first attribute provides X datasets and the other attributes provide < X

Users who are employing the solution in your SO answer will be safe from this - they aren't relying on an InvalidArgumentException!

This, asserting that if sub-attributes provide too much data per testcase, then it will be trimmed.

We agreed on the PR thread that (2) above actually should not trim the results, nor throw an exception. The sensible thing for it to do is to just return whatever results it had, removing the trimming behaviour. I think the important thing about this is that if users are relying on the trimming behaviour, their attributes are probably configured wrong.

Side note... my mini example may be doable with SemanticComparison, but the real code has more involved checks
yield return (client, dto) => dto.NumberOfProjects == client.Projects.Count();

Anyway! This is a distraction from the issue ;)

Indeed, I just made a test. – All the related questions that I know on Stack Overflow (this, this, and this) have the same behaviour between master and #356.
@ploeh, given these options:

Fix it (this is what you're currently attempting to do)
Deprecate it

It looks like it's worth fixing it, as #356 is almost there and it looks like it leaves the campground cleaner.

Now that #356 is merged, should we close this?

Yup!


Fix broken link

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

Confirmed correction. Thanks.

Verified the link works https://github.com/Azure/Azure-DataFactory/tree/master/SamplesV1/ReferenceDataRefreshForASAJobs
#sign-off

@JasonWHowell: I'm sorry - only the author of this article, @jseb225, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


[Feature Request] Include total memory used by all container in a swarm cluster

In order to known in advance if a swarm cluster can manage a new stack deploy it will be great to have a total memory of all containers running into the swarm cluster.
I mean in a pane:

include another row with the summarize information of the memory used by all container running at the swarm cluster, for example:

Total memory used by all containers 20.51 Gb

obviously this information must be computed asking all agents for running container and for each container running gets memory used like in the container statistics pane:

This information will be great for DC operators.
Best regards, Marcelo.

Also wanna add  summarize information of the CPU usage


Send ERC20 token using ropsten network

Hi,
Is there any way to send ERC20 token usoing ropsten network?

Currently I don't work on Signing TX in PHP.
You ma take a look into https://github.com/sc0Vu/web3.php which provides this approach too.


Fix npm package name in readme

in order to not accidentally install etnbrd/grunt-codeclimate
Please also consider renaming the repo to grunt-codeclimate-reporter
Thanks :)

thx :)


Make the vcs_repo tests fail when encountering an error

Calling t.Error is not enough when encountering an error. While this
marks the test as failed, it won't actually prevent the test from
continuing to run with invalid state. I've replaced these instances with
t.Fatal.
There looks to be plenty of opportunity to refactor these tests, but
that's better done in a follow up PR. I've made the smallest change
possible to make these tests not panic in case of errors.
See #200.

Yep, good call. Thanks @jstemmer!


Add counters construct to efficiently store total follower counts

Not much more we need to add, incorrectly referenced issue in commit:  86468b05e2bb3c817cc15fa03e8844c7dc57c444

https://github.com/cliftonc/seguir/commit/00682f63e2c4707b0400e145556057cfc8d11902

Looks sane (ish) to me.  Let's go through tomorrow.

Closing - this is done and published.


Syncing with upstream bch-wallet-web3-android

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


Add note that proposal is not being pursued

@yoavweiss Would you review? I don't know anyone else with access. I want to make it clear that instrinsicsize is not being pursued anymore.

Was there a public discussion about this somewhere?
Is Chrome planning to support Mozilla’s width/height-reusing proposal, instead? (#16)

The main reason to add this note is to point to #16 (specifically this comment), to make it clear that's where efforts are focused now, rather than the intrinsicsize proposal. Chrome is planning to support that proposal (also see this comment for the Chromium bug to track the work).
Chrome folks started the intrinsicsize proposal, and we aren't aware of any other folks working on it, so it seems appropriate to set expectations.
Do you think it would be helpful to add more explanatory text? My thinking was that #16 would provide enough context.

Yeah, adding a note to the top of the README would be helpful (ala https://github.com/WICG/user-gesture-nav or https://github.com/WICG/aspect-ratio).
And I suppose after the open threads from #16 (and other issues?) have been captured in issues on HTML (and CSS-Sizing?), archive this repo.


M5CoreInk::shutdown(const RTC_TimeTypeDef &) not work

when sleep with shutdown(RTC_TimeTypeDef), it not wake up at the time.
I tried
int RTC::SetAlarmIRQ(const RTC_TimeTypeDef &RTC_TimeStruct)
{
    uint8_t irq_enable = false;
    uint8_t out_buf[4] = {0x80, 0x80, 0x80, 0x80};

[snip]

    //out_buf[2] = 0x00; //remove
    //out_buf[3] = 0x00; //remove

    uint8_t reg_value = ReadReg(0x01);

it worked.
out_buf[2], outbuf[3] should be invalid number as a date/dayofweek, I think.

Fixed.https://github.com/m5stack/M5Core-Ink/commit/8276d8b95ac75a115f0b542f3a47621d494d61b7
Thank you for your help!


Test of Labbrick PLL lock. Fix for #25

Added test for PLL lock status
Tested under Windows 64-bit.

Hmmm... doesn't seem to work on Windows 8.1 due to some DLL dependencies missing.

Tracked it down to a MSVC redistributable version issue.  The working computer had a MSVS2012 version and the non-working had up to MSVC2010.  Installing 2013 version fixed the issue.


Feature request: SARIF format support

Hello dear community,
It seems that at the moment the format of the output for the github action is hard-coded and it is txt. It will be more valuable to support SARIF option as well as this is the main format for GitHub Security Center support.
As far as I can see both infer and infer# support this as an option however it is no exposed as part of this action. It could be for sure added to this script that is used under the hood of the action.
I would propose this feature to be added to the GitHub action as it will bring a lot of value to the consumers.
Thanks.

Yes! Will update this. Thank you!

v1.2.1 now supports SARIF. Thank you for the feedback!

Hello @xinshiMSFT ,
I've checked it on one of the projects and it works.
Thank you.


Any mention of a mod's bmp should be edited so it refers to its new png path instead

I love how you're righting all of these issues even though your the only person who's going to fix them.

Haha, yeah I'm fully aware of that. It serves as a diary of some sort so I can look back on how productive my few weeks of vacation have been at a later date. It's also just because I have had so many things that needed to be done (this is issue 42 after all) that I simply forget what I wanted to do when I wake up otherwise. :)

Done: 9b67ad51b4ccb2a

Done: 9b67ad51b4ccb2a


Enviro Grow Connected to wifi, but no IP address

Hi!
I have a new Enviro Grow that I am trying to set up. On first try, I got a red flashing light and no connection to wifi. In the logs I was seeing a problem with synching the time.
So I updated the UF2 file to pimoroni-enviro-v1.22.2-micropython-enviro-v0.2.0.uf2
Did the setup again, and now I am seeing a different error :
2000-01-01 01:14:09 [info     / 145kB] > performing startup
2000-01-01 01:14:09 [debug    / 142kB]   - running Enviro 0.0.10, MicroPython v1.22.2, enviro v1.22.2 on 2024-03-06
2000-01-01 01:14:09 [info     / 136kB]   - wake reason: usb_powered
2000-01-01 01:14:09 [debug    / 134kB]   - turn on activity led
2000-01-01 01:14:09 [info     / 132kB] > clock not set, synchronise from ntp server
2000-01-01 01:14:09 [info     / 130kB] > connecting to wifi network 'SilenceOfTheLAN'
2000-01-01 01:14:09 [info     / 126kB] > MAC: 28:cd:c1:0e:0e:a5
2000-01-01 01:14:09 [info     / 124kB] > active: 0, status: 0 (Link is down)
2000-01-01 01:14:09 [info     / 122kB] > Ready for connection!
2000-01-01 01:14:09 [info     / 120kB] > Connecting to SSID SilenceOfTheLAN (password: PASSWORD)...
2000-01-01 01:14:10 [info     / 116kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:14:11 [info     / 112kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:14:11 [info     / 140kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:14:12 [info     / 121kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:14:12 [info     / 118kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:14:13 [info     / 113kB] > active: 1, status: 2 (Connected to wifi, but no IP address)

If I reset the board with the button, it goes back to the same error.
I have double and triple checked my wifi password. My config.py is as follows :
# enviro config file

# you may edit this file by hand but if you enter provisioning mode
# then the file will be automatically overwritten with new details

provisioned = True

# enter a nickname for this board
nickname = 'ivor'

# network access details
wifi_ssid = 'SilenceOfTheLAN'
wifi_password = 'PASSWORD'
wifi_country = 'GB'

# how often to wake up and take a reading (in minutes)
reading_frequency = 15

# how often to trigger a resync of the onboard RTC (in hours)
resync_frequency = 168

# where to upload to ("http", "mqtt", "adafruit_io", "influxdb")
destination = 'adafruit_io'

# how often to upload data (number of cached readings)
upload_frequency = 1

# web hook settings
custom_http_url = ''
custom_http_username = ''
custom_http_password = ''

# mqtt broker settings
mqtt_broker_address = ''
mqtt_broker_username = ''
mqtt_broker_password = ''
# mqtt broker if using local SSL
mqtt_broker_ca_file = None

# adafruit ui settings
adafruit_io_username = 'MYUSER'
adafruit_io_key = 'KEY'

# influxdb settings
influxdb_org = ''
influxdb_url = ''
influxdb_token = ''
influxdb_bucket = ''

# grow specific settings
auto_water = False
moisture_target_a = 50
moisture_target_b = 0
moisture_target_c = 0

# compensate for usb power
usb_power_temperature_offset = 4.5

Just noticed the logs updated with the same clock issue :
2000-01-01 01:51:50 [info     / 116kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:51:51 [info     / 112kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:51:51 [info     / 140kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:51:52 [info     / 136kB] > active: 1, status: 1 (Connected to wifi)
2000-01-01 01:51:52 [info     / 132kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:53 [info     / 128kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:53 [info     / 124kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:54 [info     / 120kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:54 [info     / 116kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:55 [info     / 112kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:56 [info     / 108kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:56 [info     / 104kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:57 [info     /  99kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:57 [info     / 140kB] > active: 1, status: 2 (Connected to wifi, but no IP address)
2000-01-01 01:51:58 [info     / 136kB] > active: 1, status: 3 (Connect to wifi with an IP address)
2000-01-01 01:51:58 [info     / 134kB] > Connected successfully!
2000-01-01 01:51:58 [info     / 131kB] > IP: <IP_ADDRESS>, Subnet: <IP_ADDRESS>, Gateway: <IP_ADDRESS>, DNS: <IP_ADDRESS>
2000-01-01 01:51:58 [info     / 129kB] > Elapsed: 9013ms
2000-01-01 01:51:58 [warning  / 127kB]   - took 9.013 seconds to connect to wifi
2000-01-01 01:52:08 [error    / 137kB]   - failed to fetch time from ntp server
2000-01-01 01:52:08 [error    / 136kB] ! failed to synchronise clock


Cucumber Additions

It seems the cucumber additions are showing up in /doc/*.html, but when I run yard server it doesn't seem to show the cucumber changes on the doc server.
The javascripts don't function for the Features buttons, and when I manually go to the features pages, the cucumber.css isn't included.
.yardopts
**/*.feature
**/*.rb
-e yard-cucumber

Makes me wonder if it has to do with yard server. I also attempted yard server -e yard-cucumber
At localhost:8808, I am seeing:
<link charset="utf-8" media="screen" type="text/css" href="/css/custom.css" rel="stylesheet">

But there is no mention of cucumber.css, also it's interesting to note that I DO see:
<script src="/js/cucumber.js" charset="utf-8" type="text/javascript">

Update:
We've discovered that yard server is the problem. I have no idea why. But if I run in the command line:
firefox doc/index.html
It looks and runs perfectly...
Thoughts on this matter?

@ardavis yard server definitely does not work at the moment. There are different hooks that I need to re-implement to get it to work again. Similar users have reported the same issue #24.
I will try and make time to get to it in the next few days

I think that I have addressed this with version 2.1.6. I ensured that I included the stylesheets that I had renamed without failing to update yard-server to include them.


Proposal: simplify access to static members

When accessing static member of class you must write class name followed with dot before member name. But this is redundant when using that member inside the class itself.
Let's see an example (it's a little bit far-fetched but shows the case):
class SampleClassWithLongName {
    static SCALE = 5;
    private num:number;

    // ...

    getScaled():number {
        return SampleClassWithLongName.scaleNumber(this.num);
    }

    static scaleNumber(n:number):number {
        return n * SampleClassWithLongName.SCALE;
    }
}

My suggestion is to extend the functionality of static keyword (just to not introduce a new one) so it will help eliminate the need to continuously repeat class name.
With this feature our example became shorter and more readable:
class SampleClassWithLongName {
    static SCALE = 5;
    private num:number;

    // ...

    getScaled():number {
        return static.scaleNumber(this.num);
    }

    static scaleNumber(n:number):number {
        return n * static.SCALE;
    }
}

+1
or
this::staticValue

this.constructor.scaleNumber will work on methods but not on static functions.

+1

+1

The class name does not seem like that bad of an option, and does not justify the complexity of adding a new syntax to the language.

mhegazy, accessing static property via class is not the same as accesing via 'this'.
If you access
class Parent {
  static x: 0;
  public method(): number {
    return Parent.x;
  }
}

all child classes (Child extends Parent) will use x = 0 even if they redefined it.
So accessing by 'this' is very useful, please give a chance to 'this.x' syntax.

How hard would it  be to user super as a reference to the super class?


AttributeError: module 'torch.backends' has no attribute 'mps'

Hello,
First I would like to thank you for the awesome background removing tool!
Recently I upgraded from version  0.1.9 to the latest. After the upgrade was done, I attempted to remove a background from an image and got the following error:
AttributeError: module 'torch.backends' has no attribute 'mps'
Fortunately I was able to reinstall/downgrade  back to version 0.1.9 again and everything worked after that. I would like though to keep up to date with the background remover upgrades.
If the above error can be corrected, that would be great. Thank you!

Hi @nadermx,
This is the error I'm now getting when attempting to use version 0.2.6:
Traceback (most recent call last):
  File "bgRemover1/bin/backgroundremover", line 5, in <module>
    from backgroundremover.cmd.cli import main
  File "/home/user/pythonProjects/bgRemover1/lib/python3.6/site-packages/backgroundremover/cmd/cli.py", line 4, in <module>
    from .. import utilities
  File "/home/user/pythonProjects/bgRemover1/lib/python3.6/site-packages/backgroundremover/utilities.py", line 9, in <module>
    from .bg import DEVICE, Net, iter_frames, remove_many
  File "/home/user/pythonProjects/bgRemover1/lib/python3.6/site-packages/backgroundremover/bg.py", line 21, in <module>
    elif torch.backends.mps.is_available():
AttributeError: module 'torch.backends' has no attribute 'mps'


DMP-1369 Retention link

DMP-1369
Updated retention link on case file screen

[X] commit messages are meaningful and follow good commit message guidelines
[X] README and other documentation has been updated / added (if needed)
[X] tests have been updated / new tests has been added (if needed)
[ ] Does this PR introduce a breaking change

LGTM - Would be nice to add a new ADMIN user to stub login as part of this

Will do - going to smerge so I can merge this code into related ticket but will come back and add Admin after


Feature Request: Non-EM client

Have you considered creating a a client that does not depend on EventMachine?

Another vote for this. I'm not very familiar with EventMachine (and I don't want to be!) — but it seems very invasive when you have an existing app infrastructure which is completely synchronous, which most of the Ruby world is, including our own codebases.
So far, I've figured out that you can run EM in a separate thread, and that you can call NATS methods via EM.next_tick. But this poses a problem for synchronous code that wants, for example, to do RPC calls. As far as I can see, you have to resort to IPC. This is the best I've come up with so far:
def rpc(message, &block)
  v = Concurrent::MVar.new  # from concurrent-ruby
  EM.next_tick do
    NATS.request(message) do |response|
      v.put(response)
    end
  end
  return v.take
end

Of course, this is too simplistic to capture NATS connection errors, since they happen in the EM loop — all you can do it deal with timeouts.

If you're looking for a portable Java NIO-like multiplexing library which works "equally" (for the most part) well on CRuby and JRuby, check out nio4r:
https://github.com/celluloid/nio4r
It provides a fairly low-level API but wraps up the mechanics of using syscalls like epoll and kqueue portably, and has a native Java backend to utilize Java NIO.

+1 for no EventMachine.  I'd be happy if that non EM client would only be synchronous too - which should make things a lot easier

Having trouble using this library in a logstash output plugin that uses JRuby. Anyone have any luck with this lib in JRuby?

Apparently there is a java-specific eventmachine.
https://github.com/eventmachine/eventmachine/issues/724

There is a pure-ruby eventmachine http://eventmachine.rubyforge.org/docs/PURE_RUBY.html which in basic tests works for me - if I activate it in a working app it keeps working
Would you consider adding this to the test matrix so we can see how it goes? You can activate it by just setting EVENTMACHINE_LIBRARY="pure_ruby" environment

@ripienaar Good idea, I will give it a try and add it to the test matrix, thanks for sharing.

For what it's worth, my latest Ruby socket library is nearing a useful state:
https://github.com/socketry/socketry
It implements asynchronous I/O using Ruby standard library functionality alone, providing thread-safe timeouts. It's tested on modern versions of MRI (2.2+) and JRuby (9.1+)

Hi @tarcieri have an in the works pure ruby based implementation of the nats client which aims to be thread safe and looks like this might be useful, thanks for sharing! :)

Hi all, I have released a version of the client which does not depend on Eventmachine, available on rubygems as gem install nats-pure.
https://github.com/nats-io/pure-ruby-nats
Any feedback is very appreciated, thanks!

@wallyqs awesome, I'll be giving this a play soon, thanks!


Use __sync intrinsic for hh_add instead of __atomic

Summary:
We can't convince gcc to emit lock cmpxchg16b for the __atomic intrinsic, but
it still does for __sync. We had some issues with an arm64 target during
D26950006 (https://github.com/facebook/flow/commit/7f66dc40797ec6055dd66b038f3da011f45356a3), but we should be able to fix this, since armv8-a has ldaxp/stlxp
at least.
Differential Revision: D29990640

Fixed in eb7ae8c04cfaba723e84f6a39d05893b7b1f24ea by avoiding need for DWCAS


numpy>=1.17,<=1.18

Some tests are failing recently:

@mtreinish suggested that it could be numpy 0.19, released on June 20th. While investigating the issue, pinning the version.

I opened an issue for tracking this here: https://github.com/Qiskit/qiskit-terra/issues/4606 we'll need to get this sorted before the next release.


[Bug]: Running jupyter-lab configured in a devShell throws pip error

Current Behavior
jupyter-lab approaches it's build on first-time start and aborts with permission errors.
The files concerned (see log below) seem to have correct permissions and regular owner.
Expected Behavior
jupyter-lab just starting with no intermediate build.
Alternatively nix could build the necessary parts to circumvent pip.
Steps To Reproduce
1 Use i. e. https://github.com/t184256/nix-on-droid (aarch64-linux)
2 Set up jupyenv in a flake (for snippet example see "Additional context" below)
3 Run nix develop .#devShells.jupyenv followed by jupyter-lab
4 See "Relevant log output" below
OS
this path will be fetched (0.00 MiB download, 0.00 MiB unpacked):
  /nix/store/xzm7hcznddqd8zpg98ip5jkdqmyi2vsw-nix-info
copying path '/nix/store/xzm7hcznddqd8zpg98ip5jkdqmyi2vsw-nix-info' from 'https://cache.nixos.org'...
 - system: `"aarch64-linux"`
 - host os: `Linux 4.4.111-21427293`
 - multi-user?: `no`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.13.3`
 - nixpkgs: `/nix/store/m13y8w5rcz9zd01pfkj4k4dv17lahhdi-source`

Version
https://github.com/573/jupyenv/commit/f32860e860547a29002ea968853251538dcd52d6
Additional Context
devShell sample snippet:
+      devShells = forEachSystem (system:
+      listToAttrs [
+          (
+            let
+              inherit (inputs.jupyenv.lib.${system}) mkJupyterlabNew;
+              jupyterlab = mkJupyterlabNew ({ ... }: {
+                nixpkgs = inputs.nixpkgs;
+                imports = [
+                  ({ pkgs, ... }: {
+                    kernel.python.science = {
+                      enable = true;
+                    };
+                  })
+                ];
+              });
+pkgs = import nixpkgs{inherit system;};
+in { name = "jupyenv";
+value = pkgs.mkShell {
+          buildInputs = [jupyterlab];
+            };
+	    }
+          )

Relevant log output
[LabBuildApp] shutil.Error: [('/nix/store/f34w55c8rygx9k3m216anqs4y9r2ld6j-python3-3.10.9-env/lib/python3.10/site-packages/jupyterlab/staging/templates/partial.html', '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/partial.html', "[Errno 13] Permission denied: '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/partial.html'"), ('/nix/store/f34w55c8rygx9k3m216anqs4y9r2ld6j-python3-3.10.9-env/lib/python3.10/site-packages/jupyterlab/staging/templates/403.html', '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/403.html', "[Errno 13] Permission denied: '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/403.html'"), ('/nix/store/f34w55c8rygx9k3m216anqs4y9r2ld6j-python3-3.10.9-env/lib/python3.10/site-packages/jupyterlab/staging/templates/template.html', '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/template.html', "[Errno 13] Permission denied: '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/template.html'"), ('/nix/store/f34w55c8rygx9k3m216anqs4y9r2ld6j-python3-3.10.9-env/lib/python3.10/site-packages/jupyterlab/staging/templates/error.html', '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/error.html', "[Errno 13] Permission denied: '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates/error.html'"), ('/nix/store/f34w55c8rygx9k3m216anqs4y9r2ld6j-python3-3.10.9-env/lib/python3.10/site-packages/jupyterlab/staging/templates', '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates', "[Errno 13] Permission denied: '/data/data/com.termux.nix/files/home/.nix-config/.jupyter/lab/share/jupyter/lab/staging/templates'")]

[LabBuildApp] Exiting application: JupyterLab

On systems where an unprivileged user is the only option such as unrooted Android TM phones, jupyenv cannot be used as there is no possibility to change the permissions (uid / gid bits) of the concerning folders to allow the users group write access (nix-shell as utilized in jupyenv does not use the regular user on these systems).


broken pane

if i specify 1 or more panes to do work in (e.g. echo 1 2 3), xpanes will have a blank pane that doesn't show anything and does not respond to input. not sure if it is a misconfiguration on my side, or a tmux issue.
see screen capture below for an example of this happening
https://user-images.githubusercontent.com/639565/221677162-56a3dff5-33d2-4a11-8004-ef32664c47ba.mov

Could you run the following command and see if it mitigate the issue?
wget https://raw.githubusercontent.com/greymd/tmux-xpanes/v4.1.3/bin/xpanes
sed -i.bak '669s/$/\n    sleep 0.5/' xpanes
chmod +x xpanes
./xpanes --debug -s {1..5}

The above operations inserts sleep command into https://github.com/greymd/tmux-xpanes/blob/v4.1.3/bin/xpanes#L669-L670 , and execute updated ./xpanes.
There is a known issue that particular environments gets problem when processing named pipes in parallel. And the error you reported also seems to be related to named pipes.
The issue said that adding sleep may mitigate the issue.
I would like to know if this is the case in your environment.
After that, could you please share the output of the following command execution?
## For macOS
sysctl kern.version
## For Linux
uname -a
/usr/bin/env bash -c 'type mkfifo'
/usr/bin/env bash --version
xpanes --version
xpanes --debug -s {1..5}

Thanks,

yep, that seems to work. below is the requested info.
anes
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:Window: { Height: 57, Width: 214 }
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:Cell: { Height: 18, Width: 106 }
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:# Of Panes: 5
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:         | Row[0] --...--> Row[MAX]
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:    -----+------------------------...
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:    Col[]| 2 2 1
xpanes:Debug: [2023-03-01_22:02:07]:xpns_check_cell_size:    -----+------------------------...
xpanes:Debug: [2023-03-01_22:02:07]:xpns_execution:Options: '--debug' '-s' '-c' 'echo {} '
xpanes:Debug: [2023-03-01_22:02:08]:xpns_execution:Arguments: '1' '2' '3' '4' '5'
xpanes:Debug: [2023-03-01_22:02:08]:xpns_wait_func:mkfifo /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-0-6305
xpanes:Debug: [2023-03-01_22:02:09]:xpns_wait_func:grep -q 1 '/Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-0-6305'
xpanes:Debug: [2023-03-01_22:02:09]:xpns_prepare_window:_col=1
xpanes:Debug: [2023-03-01_22:02:09]:xpns_wait_func:mkfifo /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-4-6305
xpanes:Debug: [2023-03-01_22:02:09]:xpns_wait_func:grep -q 1 '/Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-4-6305'
xpanes:Debug: [2023-03-01_22:02:09]:xpns_prepare_window:_top_pane_height=38 _rest_row=2
xpanes:Debug: [2023-03-01_22:02:09]:xpns_prepare_window:_col=2
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:mkfifo /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-2-6305
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:grep -q 1 '/Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-2-6305'
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:mkfifo /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-3-6305
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:grep -q 1 '/Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-3-6305'
xpanes:Debug: [2023-03-01_22:02:10]:xpns_prepare_window:_top_pane_height=19 _rest_row=1
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:mkfifo /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-1-6305
xpanes:Debug: [2023-03-01_22:02:10]:xpns_wait_func:grep -q 1 '/Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-1-6305'
xpanes:Debug: [2023-03-01_22:02:11]:xpns_execution:xpns_is_window_alive:1: After window separation
xpanes:Debug: [2023-03-01_22:02:11]:xpns_execution:xpns_is_window_alive:2: After logging
xpanes:Debug: [2023-03-01_22:02:11]:xpns_notify:Notify to /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-0-6305
xpanes:Debug: [2023-03-01_22:02:11]:xpns_notify:Notify to /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-1-6305
xpanes:Debug: [2023-03-01_22:02:12]:xpns_notify:Notify to /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-2-6305
xpanes:Debug: [2023-03-01_22:02:12]:xpns_notify:Notify to /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-3-6305
xpanes:Debug: [2023-03-01_22:02:13]:xpns_notify:Notify to /Users/waf/.cache/xpanes/__xpns_sync_312d363330350a-4-6305
xpanes:Debug: [2023-03-01_22:02:13]:xpns_execution:xpns_is_window_alive:3: After setting title
xpanes:Debug: [2023-03-01_22:02:13]:xpns_execution:xpns_is_window_alive:4: After sending commands
xpanes:Debug: [2023-03-01_22:02:14]:xpns_clean_session:file = /Users/waf/.cache/xpanes/socket.*
xpanes:Debug: [2023-03-01_22:02:14]:xpns_clean_session:socket(/Users/waf/.cache/xpanes/socket.*) is not running. Remove it
waf@C02G10TSMD6T in dir /tmp
% sysctl kern.version
kern.version: Darwin Kernel Version 21.6.0: Mon Dec 19 20:44:01 PST 2022; root:xnu-8020.240.18~2/RELEASE_X86_64
waf@C02G1

@fawaf
The latest version, v4.1.4, the feature --interval option is implemented.
This may be used as a work-around for this problem.
For example, the following alias can be specified to sleep for 0.2 second for each pane creation or execution of each command.
alias xpanes='xpanes --interval 0.2'

Please make use of this.

D6T:/tmp% bash ouixcouiioubzcbzcx
finish:1
finish:2
finish:3
finish:4
finish:5
finish:6
finish:7
finish:9
finish:10
finish:11
finish:13
finish:8
finish:16
finish:15
finish:14
finish:20
finish:19
finish:21
finish:12
finish:17
finish:18
finish:22
finish:24
finish:29
finish:25
finish:23
finish:26
finish:27
finish:31
finish:32
finish:28
finish:37
finish:30
finish:35
finish:34
finish:36
finish:33
finish:45
finish:41
finish:38
finish:43
finish:40
finish:39
finish:48
finish:42
finish:49
finish:47
finish:46
finish:44
finish:50
Mon Mar 13 1 %

submitted https://github.com/Homebrew/homebrew-core/pull/125557 as well

output as requested. looks fine to me i think?

Yes, it looks it works normally.
We need to investigate the issue from a different point of view.

submitted https://github.com/Homebrew/homebrew-core/pull/125557 as well

Thank you so much 😃
Can you try to reproduce the issue when you get to use v4.1.4?
I removed an unnecessary background processing and it would change the situation.. I hope.

just tested out the new version and the issue still exists with v4.1.4 (without --interval). oddly though, the issue does not happen when running with the --debug flag.

hmm.... the issue disappears after running xpanes a few times. odd...

Oh, that's weird.
Ok,  if the issue reproduced next time, can you collect logs by following way?
I need to dive into more detailed log given by set -x.

Save this file as xpanes.patch

diff --git a/xpanes b/xpanes
index d503b90..e2ecb08 100755
--- a/xpanes
+++ b/xpanes
@@ -47,7 +47,7 @@ readonly XP_ENOCMD=127
 # XP_THIS_FILE_NAME is supposed to be "xpanes".
 readonly XP_THIS_FILE_NAME="${0##*/}"
 readonly XP_THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
-readonly XP_ABS_THIS_FILE_NAME="${XP_THIS_DIR}/${XP_THIS_FILE_NAME}"
+readonly XP_ABS_THIS_FILE_NAME="bash -x ${XP_THIS_DIR}/${XP_THIS_FILE_NAME}"

 # Prevent cache directory being created under root / directory in any case.
 # This is quite rare case (but it can be happened).
@@ -1516,7 +1516,7 @@ xpns_pre_execution() {
   ${TMUX_XPANES_EXEC} -S "${XP_SOCKET_PATH}" new-session \
     -s "${XP_SESSION_NAME}" \
     -n "${XP_TMP_WIN_NAME}" \
-    -d "${XP_ABS_THIS_FILE_NAME} ${_opts4args} ${_args4args}"
+    -d "${XP_ABS_THIS_FILE_NAME} ${_opts4args} ${_args4args} &> debug.log"

   # Avoid attaching (for unit testing).
   if [[ ${XP_OPT_ATTACH} -eq 1 ]]; then

And run following and reproduce the issue.

$ wget https://raw.githubusercontent.com/greymd/tmux-xpanes/v4.1.4/bin/xpanes
$ patch < xpanes.patch
### Reproduce the issue
$ bash -x ./xpanes -s {1..5} 2> start-debug.log

You'll get start-debug.log and debug.log files on current dir. Plz provide both of them.

cool, happened just now. attached log file as requested. oddly, i don't see the debug.log file though
start-debug.log

btw, i think i totally forgot to mention that i'm running xpanes in an existing tmux session.


0.5.1 server_description timeout

Looks the same as original issue in #159, save that I'm seeing this every 30 seconds while running the app.
11:45:15.379 [error] GenServer #PID<0.856.0> terminating
** (stop) exited in: GenServer.call(#PID<0.854.0>, {:server_description,
  %{address: "x", arbiters: ["x"], election_id: #BSON.ObjectId<7fffffff0000000000000009>, error: nil, hosts: ["x", "x"], last_update_time: -576460657032,
    last_write_date: ~U[2019-07-31 18:44:39.000Z], max_wire_version: 6, me: "x", min_wire_version: 0, op_time: %{"t" => 9, "ts" => #BSON.Timestamp<1564598679:1>},
    passives: [], primary: "x", round_trip_time: 186, set_name: "x", set_version: 21, tag_set: %{}, type: :rs_primary
}}, 30000)
    ** (EXIT) time out
Last message: []

So debugging this, the timeout was due to waiting for a connection to a pool, which was misconfigured. Somewhere along the version-bumping train, there was a breaking change on using pool: DBConnection.Poolboy
This comment found the same fix for someone else.
Might be good to note this breaking change in configuration though!


Update eloquent-entity-translation.stub

The scaffold for the migrations uses 'singular__singular_translations', whereas this was generating a 'singular__plural_translations' table name in the entity.
(see https://github.com/AsgardCms/Workshop/blob/develop/Scaffold/Module/stubs/create-translation-table-migration.stub#L15)

Thank you! :+1:


Build step microROS_agent fails every time

For weeks now, I have been struggling to get the Jetson Nano Developer Kit (4GB, B01 with 2 MIPI-ports) to work properly. I'm trying to get a docker container with ROS2 running. Ideally that would be Humble, but I guess I will have to get by with Foxy, as Galactic is EOL.
This has been tried on multiple Jetson Nano Developer Kits, as I have two of them. Here are the steps outlined of what has been done:
REGULAR DOCKER IMAGE WORKFLOW
Flash the device with the latest sdkmanager to JetPack 4.6.3. (I have also tried flashing it to 32.7.1, but the steps below still fail. If I opt for DeepStream or not also does not change the outcome.)
After the device is finished, log in and run apt-get update && upgrade (In some trials, this step was omitted and yet the following procedure still failed.)
Clone the GitHub repository (git clone https://github.com/dusty-nv/jetson-containers.git)
Ensure "default-runtime": "nvidia" is entered in the /etc/docker/daemon.json, properly formatted and comma added after the prior entry!
Then run one of the following scripts:
scripts/docker_run.sh -c dustynv/ros:foxy-ros-base-l4t-r32.7.1
scripts/docker_run.sh -c dustynv/ros:foxy-pytorch-l4t-r32.7.1

This fails because I'm already on 32.7.3.
Modified the l4t_version.sh to fake the output to show R32.7.1 (Even if this step is not needed due to being on Jetpack 4.6.1 and R32.7.1, as mentioned above, the process fails)
Then attempt to run the docker command from step 5 again, and it actually works, loading the docker.
Following the tutorial for microROS for Teensy
(https://micro.ros.org/docs/tutorials/core/teensy_with_arduino/),
the process fails at the following step:
Build step
ros2 run micro_ros_setup build_agent.sh
Also, the very first source command to source the environment is wrong. It is:
Source the ROS 2 installation
source /opt/ros/foxy/setup.bash
But it should be:
source /opt/ros/foxy/install/setup.bash
However, despite this small oversight, the agent build still fails.
I know this is not related to the Jetpack version, as mentioned it fails with 4.6.1 as well. At some point, I was able to get it working, but I'm unsure what I have done differently and why it suddenly wouldn't work anymore. Output logs are to follow below.
BUILD DOCKER IMAGE WORKFLOW
Then I decided to build the docker container from source, as I thought maybe there is something intrinsically different in my system, and building from source will sort all dependencies properly. This has been tried under the following circumstances:
With the device flashed to JetPack 4.6.1 (R32.7.1) - Directly after flashing (no apt-get update && upgrade)
With the device flashed to JetPack 4.6.1 (R32.7.1) - With apt-get update && upgrade
With the device flashed to JetPack 4.6.3 (R32.7.2) and the modified l4t_version.sh to fake the output to show R32.7.1 - Directly after flashing (no apt-get update && upgrade)
With the device flashed to JetPack 4.6.3 (R32.7.2) and the modified l4t_version.sh to fake the output to show R32.7.1 - With apt-get update && upgrade

No matter what I attempt to do, the build process also fails.
So to summarize, my situation is as follows:
Unable to get the microROS agent to build (ros2 run micro_ros_setup build_agent.sh)
Unable to build the docker image from source
Output logs are to follow below.
Before attempting it to the 12th time, I have tried to make sure the dependencies for fmt are met by:
apt-get update
apt-get install -y build-essential
apt-get install libfmt-dev

Here the entire output from an attempt on a freshly flashed Jetson Nano with Jetpack 4.6.1 (R32.7.1). entire trace below:
Because I have done this process so many times and am getting tired of typing / copying and pasting all commands, I have thrown them into a shell script. But if I do it manually of with the script, the outcome is the same. Here the script:
#! /bin/bash
VARIABLES:
----------
DIRECTORY="microros_ws"
ENV_SETUP="setup.bash"
1. check if directory exists:
if [ ! -d "$DIRECTORY" ]; then
echo "$DIRECTORY does not exist. Creating"
mkdir $DIRECTORY
else
echo "$DIRECTORY does exist."
fi
2. enter the directory
cd $DIRECTORY
pwd
Source the ROS 2 installation
if [ -e /opt/ros/$ROS_DISTRO/setup.bash ]; then
echo "setup.bash found at path 1"
source /opt/ros/$ROS_DISTRO/setup.bash
elif [ -e /opt/ros/$ROS_DISTRO/install/setup.bash ]; then
echo "setup.bash found at path 2"
source /opt/ros/$ROS_DISTRO/install/setup.bash
fi
clone microROS repository
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
Update dependencies using rosdep
sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y
Install pip
sudo apt-get install python3-pip
Build micro-ROS tools and source them
colcon build
source install/local_setup.bash
Download micro-ROS agent packages
ros2 run micro_ros_setup create_agent_ws.sh
Build step
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash
And here the terminal trace from executing the script:
root@jetson2:/# nano microROS_agent.sh
root@jetson2:/# clear

root@jetson2:/# chmod 755 microROS_agent.sh
root@jetson2:/# ./microROS_agent.sh
microros_ws does not exist. Creating
/microros_ws
setup.bash found at path 2
Cloning into 'src/micro_ros_setup'...
remote: Enumerating objects: 3385, done.
remote: Counting objects: 100% (1180/1180), done.
remote: Compressing objects: 100% (507/507), done.
remote: Total 3385 (delta 843), reused 957 (delta 666), pack-reused 2205
Receiving objects: 100% (3385/3385), 794.48 KiB | 2.47 MiB/s, done.
Resolving deltas: 100% (2341/2341), done.
Hit:1 http://packages.ros.org/ros2/ubuntu bionic InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease
Hit:4 https://apt.kitware.com/ubuntu bionic InRelease
Hit:5 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease
Hit:6 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
183 packages can be upgraded. Run 'apt list --upgradable' to see them.
reading in sources list data from /etc/ros/rosdep/sources.list.d
Warning: running 'rosdep update' as root is not recommended.
  You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
 Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  clang-tidy-6.0 libllvm6.0
The following NEW packages will be installed:
  clang-tidy clang-tidy-6.0 libllvm6.0
0 upgraded, 3 newly installed, 0 to remove and 183 not upgraded.
Need to get 18.5 MB of archives.
After this operation, 78.2 MB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libllvm6.0 arm64 1:6.0-1ubuntu2 [12.5 MB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/universe arm64 clang-tidy-6.0 arm64 1:6.0-1ubuntu2 [5,916 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 clang-tidy arm64 1:6.0-41~exp5~ubuntu1 [2,984 B]
Fetched 18.5 MB in 15s (1,210 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libllvm6.0:arm64.
(Reading database ... 81206 files and directories currently installed.)
Preparing to unpack .../libllvm6.0_1%3a6.0-1ubuntu2_arm64.deb ...
Unpacking libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
Selecting previously unselected package clang-tidy-6.0.
Preparing to unpack .../clang-tidy-6.0_1%3a6.0-1ubuntu2_arm64.deb ...
Unpacking clang-tidy-6.0 (1:6.0-1ubuntu2) ...
Selecting previously unselected package clang-tidy.
Preparing to unpack .../clang-tidy_1%3a6.0-41~exp5~ubuntu1_arm64.deb ...
Unpacking clang-tidy (1:6.0-41~exp5~ubuntu1) ...
Setting up libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
Setting up clang-tidy-6.0 (1:6.0-1ubuntu2) ...
Setting up clang-tidy (1:6.0-41~exp5~ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvcuvidvideocodec.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvpva.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvisp_utils.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcuvidv4l2.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.418.00 is empty, not checked.
executing command [apt-get install -y flex]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libfl-dev libfl2
Suggested packages:
  bison flex-doc
The following NEW packages will be installed:
  flex libfl-dev libfl2
0 upgraded, 3 newly installed, 0 to remove and 183 not upgraded.
Need to get 320 kB of archives.
After this operation, 1,129 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 flex arm64 2.6.4-6 [302 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libfl2 arm64 2.6.4-6 [11.3 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libfl-dev arm64 2.6.4-6 [6,232 B]
Fetched 320 kB in 2s (137 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package flex.
(Reading database ... 81237 files and directories currently installed.)
Preparing to unpack .../flex_2.6.4-6_arm64.deb ...
Unpacking flex (2.6.4-6) ...
Selecting previously unselected package libfl2:arm64.
Preparing to unpack .../libfl2_2.6.4-6_arm64.deb ...
Unpacking libfl2:arm64 (2.6.4-6) ...
Selecting previously unselected package libfl-dev:arm64.
Preparing to unpack .../libfl-dev_2.6.4-6_arm64.deb ...
Unpacking libfl-dev:arm64 (2.6.4-6) ...
Setting up flex (2.6.4-6) ...
Setting up libfl2:arm64 (2.6.4-6) ...
Setting up libfl-dev:arm64 (2.6.4-6) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvcuvidvideocodec.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvpva.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvisp_utils.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcuvidv4l2.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.418.00 is empty, not checked.
executing command [apt-get install -y bison]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libbison-dev
Suggested packages:
  bison-doc
The following NEW packages will be installed:
  bison libbison-dev
0 upgraded, 2 newly installed, 0 to remove and 183 not upgraded.
Need to get 568 kB of archives.
After this operation, 1,741 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libbison-dev arm64 2:3.0.4.dfsg-1build1 [339 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 bison arm64 2:3.0.4.dfsg-1build1 [230 kB]
Fetched 568 kB in 3s (227 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libbison-dev:arm64.
(Reading database ... 81327 files and directories currently installed.)
Preparing to unpack .../libbison-dev_2%3a3.0.4.dfsg-1build1_arm64.deb ...
Unpacking libbison-dev:arm64 (2:3.0.4.dfsg-1build1) ...
Selecting previously unselected package bison.
Preparing to unpack .../bison_2%3a3.0.4.dfsg-1build1_arm64.deb ...
Unpacking bison (2:3.0.4.dfsg-1build1) ...
Setting up libbison-dev:arm64 (2:3.0.4.dfsg-1build1) ...
Setting up bison (2:3.0.4.dfsg-1build1) ...
update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/yacc.1.gz because associated file /usr/share/man/man1/bison.yacc.1.gz (of link group yacc) doesn't exist
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
executing command [apt-get install -y libncurses5-dev]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libtinfo-dev
Suggested packages:
  ncurses-doc
The following NEW packages will be installed:
  libncurses5-dev libtinfo-dev
0 upgraded, 2 newly installed, 0 to remove and 183 not upgraded.
Need to get 237 kB of archives.
After this operation, 1,322 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 libtinfo-dev arm64 6.1-1ubuntu1.18.04 [74.2 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 libncurses5-dev arm64 6.1-1ubuntu1.18.04 [163 kB]
Fetched 237 kB in 2s (109 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libtinfo-dev:arm64.
(Reading database ... 81379 files and directories currently installed.)
Preparing to unpack .../libtinfo-dev_6.1-1ubuntu1.18.04_arm64.deb ...
Unpacking libtinfo-dev:arm64 (6.1-1ubuntu1.18.04) ...
Selecting previously unselected package libncurses5-dev:arm64.
Preparing to unpack .../libncurses5-dev_6.1-1ubuntu1.18.04_arm64.deb ...
Unpacking libncurses5-dev:arm64 (6.1-1ubuntu1.18.04) ...
Setting up libtinfo-dev:arm64 (6.1-1ubuntu1.18.04) ...
Setting up libncurses5-dev:arm64 (6.1-1ubuntu1.18.04) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
executing command [apt-get install -y usbutils]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  usbutils
0 upgraded, 1 newly installed, 0 to remove and 183 not upgraded.
Need to get 202 kB of archives.
After this operation, 717 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 usbutils arm64 1:007-4build1 [202 kB]
Fetched 202 kB in 2s (109 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package usbutils.
(Reading database ... 81428 files and directories currently installed.)
Preparing to unpack .../usbutils_1%3a007-4build1_arm64.deb ...
Unpacking usbutils (1:007-4build1) ...
Setting up usbutils (1:007-4build1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
#All required rosdeps installed successfully
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-pip is already the newest version (9.0.1-2.3~ubuntu<IP_ADDRESS>).
0 upgraded, 0 newly installed, 0 to remove and 183 not upgraded.
Starting >>> micro_ros_setup
Finished <<< micro_ros_setup [6.20s]

Summary: 1 package finished [7.72s]
...
=== ./uros/drive_base (git) ===
Cloning into '.'...
=== ./uros/micro-ROS-Agent (git) ===
Cloning into '.'...
=== ./uros/micro_ros_msgs (git) ===
Cloning into '.'...
#All required rosdeps installed successfully
Building micro-ROS Agent
Starting >>> micro_ros_msgs
[Processing: micro_ros_msgs]
Finished <<< micro_ros_msgs [46.3s]
Starting >>> micro_ros_agent
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
[Processing: micro_ros_agent]
--- stderr: micro_ros_agent
Cloning into 'xrceagent'...
Switched to a new branch 'ros2'
HEAD is now at 3eb56b5 Release v2.3.0
Cloning into 'spdlog'...
HEAD is now at eb322062 Bump version to 1.9.2
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (tinyxml2)
  does not match the name of the calling package (TinyXML2).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args)
  /opt/ros/foxy/install/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package)
  CMakeLists.txt:153 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::signs'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `vtable for fmt::v6::format_error'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::snprintf_float<double>(double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::error_handler::on_error(char const*)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `char fmt::v6::internal::decimal_point_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::zero_or_powers_of_10_32'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `char fmt::v6::internal::thousands_sep_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `std::locale fmt::v6::internal::locale_ref::get<std::locale>() const'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `typeinfo for fmt::v6::format_error'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > fmt::v6::internal::grouping_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::format_float<long double>(long double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `spdlog::details::log_msg::log_msg(spdlog::source_loc, fmt::v6::basic_string_view<char>, spdlog::level::level_enum, fmt::v6::basic_string_view<char>)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::snprintf_float<long double>(long double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::format_error::~format_error()'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::hex_digits'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::digits'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::format_float<double>(double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::zero_or_powers_of_10_64'
collect2: error: ld returned 1 exit status
make[5]: *** [micro_ros_agent] Error 1
make[4]: *** [CMakeFiles/micro_ros_agent.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [micro_ros_agent-prefix/src/micro_ros_agent-stamp/micro_ros_agent-build] Error 2
make[1]: *** [CMakeFiles/micro_ros_agent.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< micro_ros_agent [10min 14s, exited with code 2]

Summary: 1 package finished [11min 1s]
  1 package failed: micro_ros_agent
  1 package had stderr output: micro_ros_agent
root@jetson2:/#

Would you kindly advice?

Moved this to the proper repository,
Also closing as the solution has been provided. Please reopen if needed.


Cleanup & CI

Description

code cleanup
setup CI
removed lock files and added to gitignore
removed unused dependencies
fixed license

@lenaorobei , it is better to keep package-lock files, especially as we don’t provide tests, otherwise clients will have different dependency versions installed, making it harder to debug and ensure that everything functions correctly


Refactor: Enhance backend logging

This PR refactors backend logging.
Changes include:

Removing successful API logs to reduce log clutter
Fixing censor_sensitive_data_processor for accurate data handling
Removing unnecessary audit_logging
Formatting Python code

LGTM 👍

Thanks, Daniel, for your previous feedback on backend logging.


How to achieve paging similar to Google Docs?

Please ask the author how to realize the paging effect similar to Word. Youmu may support this function？


All samples should support arbitrary paths

Browsers usually request favicons, and if the sample doesn't support it correctly, it may lead to confusing errors (even crashes). To avoid it, it's better to respond with 404 error (it doesn't relate to benchmarking directly, but make debugging easier).

So far, all the used samples have been fixed.


[Addition]: impossibly long witnesses - 11HNT a day!

Hotspot b58 Addresses
11hsyViz32idrBHSrX4V5rdwwQJaZB4YnyV5vCkXVcfRTS8uYhj
Discord Handle
GregUK#7430
Reason(s)
Only joined the blockchain 4 days ago, already earning 11HNT a day with witnesses consistently over 1000 miles.

Closing as already actioned

So why is it still active?

So why is it still active?

they dont want ban may be they own this miner


"Cancel Subscription" - CSP

Hi,
Its not really clear who has the permissions to cancel a CSP subscription and what happens when you click the cancel subscription button for a CSP subscription.
Thank you.

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

ID: e76ce485-5a06-add0-76a3-b823fb6c3c7a
Version Independent ID: af78deae-d409-6261-a817-b504965d1988
Content: Cancel your Azure subscription
Content Source: articles/cost-management-billing/manage/cancel-azure-subscription.md
Service: cost-management-billing
Sub-service: billing
GitHub Login: @bandersmsft
Microsoft Alias: banders

@devan10 The instructions in the doc - "Cancel your Azure subscription" doesn't apply to CSP.
Partners can suspend or cancel a subscription if requested by the customer, or in cases of nonpayment or fraud. For more details see this link - https://docs.microsoft.com/en-us/partner-center/create-a-new-subscription#suspend-or-cancel-a-subscription
Let me know if you have any further queries in this matter or are we good to close this issue.

Great, thank you.  You can likely close the issue but it might be good to indicate that the article is not relevant to CSP.

From: SadiqhAhmed-MSFT<EMAIL_ADDRESS>Sent: November 25, 2020 11:26 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: devan10<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] "Cancel Subscription" - CSP (#66702)
@devan10https://github.com/devan10 The instructions in the doc - "Cancel your Azure subscriptionhttps://docs.microsoft.com/en-us/azure/cost-management-billing/manage/cancel-azure-subscription" doesn't apply to CSP.
Partners can suspend or cancel a subscription if requested by the customer, or in cases of nonpayment or fraud. For more details see this link - https://docs.microsoft.com/en-us/partner-center/create-a-new-subscription#suspend-or-cancel-a-subscription
Let me know if you have any further queries in this matter or are we good to close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/66702#issuecomment-733877258, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJC74DNM7C2SA3EPL7IV5ELSRVD4DANCNFSM4UCWV2DQ.

@devan10 Thanks for the feedback. I have raised a pull request - https://github.com/MicrosoftDocs/azure-docs-pr/pull/139205 to add that note in the article. It is currently in review by the content owner post that the changes would go live.

@devan10 We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Support http2.

Hi
This PR adds http2 support to add http2 tests on express.
This PR depend on https://github.com/visionmedia/superagent/pull/1399.

Any updates on this? I'm looking to upgrade some existing tests that use supertest so they use http2.

/cc @rimiti friendly ping, what is blocker to support this? We need this for express and webpack-dev-server

any update on this?

This PR looks promising but would need maybe @sogaani to resolve the conflicts or rebase.

This PR looks promising but would need @sogaani to resolve the conflicts or rebase.

This PR looks promising but would need @sogaani to resolve the conflicts or rebase.

@rimiti, I have taken the liberty to create a new PR #793 which is based on @sogaani's work.


How do I connect the dll?

I'm getting an error:
Error CS0433: Type 'Application2' exists in both 'Interop.Microsoft.Office.Interop.OneNote, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' and 'Microsoft.Office.Interop.OneNote, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.
I took the library from Visual Studio.

I placed the library as shown in the picture.

Code How_to_connect_dll_01.cs
//css_reference ../Folder_dll/Interop.Microsoft.Office.Interop.OneNote.dll

using System;
using Microsoft.Office.Interop.OneNote;

namespace Folder_NS_02
{
	class  Test
	{
		static void GetNamesAllBooksInClipboard2()
		{
			var onenoteApp = new Application2();
		}
	}
}

The error indicates that you are referencing two dll's:
'Interop.Microsoft.Office.Interop.OneNote, Version=<IP_ADDRESS>' and
'Microsoft.Office.Interop.OneNote, Version=<IP_ADDRESS>'.
It might be because VS created for a collable wrapper and cs-script picks them both wrapper and the assembly when it tries to resolve nemespace Microsoft.Office.Interop.OneNote into assembly.
The easiest way to check it is to try this:
//css_reference ../Folder_dll/Interop.Microsoft.Office.Interop.OneNote.dll

using System;

namespace Folder_NS_02
{
	class  Test
	{
		static void GetNamesAllBooksInClipboard2()
		{
			var onenoteApp = new Microsoft.Office.Interop.OneNote.Application2();
		}
	}
}

This may solve your problem but I would recommend you to go with dynamic instantiation instead even if the trick shared:
dynamic outlook = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application"));

dynamic email = oApp.CreateItem(0);
email.To =<EMAIL_ADDRESS>email.Subject = "test subject";
email.Body = "test body";

email.Send();

Then you do not need to reference any assemblies at all.
works.

I just did it this way.
using System;
using Microsoft.Office.Interop.OneNote;

namespace Folder_NS_02
{
    class Test
    {
		static public void Main(string[] args)
    	{
			var onenoteApp = new Application2();
			string currentNotebookId = onenoteApp.Windows.CurrentWindow.CurrentNotebookId;
			Console.WriteLine(currentNotebookId);
		}
    }
}

It works

great


Allow bpftrace to be statically linked

Adds a flag to the top-level Makefile that enables static linking of bpftrace against libclang, libbpf and other dependencies that are not part of the NDK.
$ make BUILD_TYPE=Release STATIC_LINKING=true NDK_ARCH=armv7 bpftools
$ llvm-readelf -d out/android/armv7/bin/bpftrace |grep NEEDED
  0x00000001 (NEEDED)          Shared library: [libdl.so]
  0x00000001 (NEEDED)          Shared library: [libm.so]
  0x00000001 (NEEDED)          Shared library: [libz.so]
  0x00000001 (NEEDED)          Shared library: [libc.so]

Also bumps BPFTRACE_COMMIT to a recent revision that supports static linking with the NDK toolchain and has full armv7 support.

Thanks !


Inference data preparation

Hi! You've mentioned that images have to be aligned before model inference, using mtcnn, for instance. As mtcnn provides several options, how images are aligned, could you possibly provide a code example, how do you align them?

Hello @IvanBarabanau,
Thank you for your interest in our work!
To align the images, you could use img2pose, as it is the current face aligner/detector we've been using: https://github.com/vitoralbiero/img2pose
After installing it, just run the run_face_alignment.py script.
Hope this helps.