enhancements to Fusion/Fracture Specification Language (FSL)

Recording the requests for enhancements to FSL that came up during the review:
From Arup:
Is there a way to fuse one or more classes of instruction with other instructions? For example, is there a way to define a logical immediate class of instructions for andi, ori, xori and define a sequence in terms of that class, instead of individual instructions?

Add support in the syntax/parser for composition in expressing sequences. Add syntax for expressing the composition and for combining them from other sequences. Add the syntax description, add support in the parser and back end.

From Arup:
If we do not anticipate having more than one sequence, constraint and conversion clause per transform, wondering if we need to specify the arguments iop1, seq1, cons1 in the agument lists for every transform. Instead, is it okay to make them implicit?

Relax the requirement for argument lists in clauses in transforms using the encapsulated style. Change the syntax description, show examples, support in the parser and backend

Here is what I propose to address #1 instruction 'classes' or composition, and #2 reduction in some boiler plate, argument lists etc.
// ----------------------------------------------------------------
//  Using the sequence composition syntax
// ----------------------------------------------------------------
prolog plg
{
  isa   rv64gc
  uarch oly
  ioput iop
}

transform composition
{
  prolog plg  //new: prolog can be external and shared
  gpr g1..9   //new: variable naming expansion syntax

  //new: setof is a collection type
  //new: hasAttr will scan the contents of the isa specification named rv64gc
  //for objects with the rtype and logical attributes, 'rtype' and 'logical'
  //must be known to the isa object.
  setof r_bools = plg.rv64gc.hasAttr(rtype).hasAttr(logical)

  //If the constraints or conversion clauses access g1..g9 then
  //it would be written this way:
  sequence comp_seq_a {
    r_bools g1, g2, g3
    r_bools g4, g5, g6
    r_bools g7, g8, g9
  }

  //Since the constraints do not care about which values g1..9
  //hold, only the ports used, this can be written as simply
  sequence comp_seq_b {
    r_bools
    r_bools
    r_bools
  }

  constraints {
    comp_seq_b.writePorts() <= plg.oly.writePorts()
    comp_seq_b.readPorts()  <= plg.oly.readPorts()
  }

  //new: fsl is the standard library equivalent
  //morph() combines the sequence as specified by the
  //user defined function object registered with the Fusion API
  //by default this just calls the mavis equivalent
  conversion {
    //declare an instruction object, initialize using the fsl.morph()
    //operation performed on the sequence
    instr i_comp(fsl.morph(comp_seq_b))

    //by default the mnemonic is the same as the instr object name.
    //this can be overridden
    i_comp.mnemonic("r_bool")

    //this is using the replace idiom, the sequence objects in .input
    //are removed and replaced with the instruction created by morphing.
    plg.iop.input.replace(comp_seq_b,i_comp)
  }

Closing this. See the FSL submodule documentation.

Closing this. See the FSL submodule documentation.


Grayed Out Vegetations

The vegetations on the world is always gray, no matter what, leaves, grass block, grass, and any other thing, is there a fix for that? because i don't wanna set them manually, also we still "IN NEED OF" the addon called Mineways to set the textures into closest, which is if there was a special addon for MiEx to have control ALL OVER OUR WORLD then it would be way better.

There is no way of automatically adding colours to vegetation because Blender does not support MaterialX; this is not a problem in any other software.

There is no way of automatically adding colours to vegetation because Blender does not support MaterialX; this is not a problem in any other software.

Still there should be any possible way.

This is an issue with Blender not fully supporting USD. MiEx by default uses MaterialX materials so that it can do biome colours, animated textures, and set the texture filter. Blender, unfortunately, does not support importing in MaterialX materials. It only supports UsdPreviewSurface materials. Therefore, MiEx provides a resource pack to specifically export out UsdPreviewSurface materials, but that doesn't support biome colours, animated textures, and setting the texture filter. This means that when importing into Blender, you still need to fix the materials after import.
If Blender's USD importer would allow us to specify Blender's native shading nodes in USD, then we could create material templates that use these nodes and the materials in Blender would then be set up correctly and just work. Unfortunately, that's not the case.
This could be fixed using an addon. The addon could potentially hook into the USD importer and fix materials immediately in there. Or, the addon could fix materials after the fact. This is something that I will be looking into, but I don't use Blender myself and I don't know much about how it works, so I can't say anything about when that will be done. Maybe somebody else, who knows a lot more about Blender addons, could make it and send it in as a pull request so that everyone can use it.

This is an issue with Blender not fully supporting USD. MiEx by default uses MaterialX materials so that it can do biome colours, animated textures, and set the texture filter. Blender, unfortunately, does not support importing in MaterialX materials. It only supports UsdPreviewSurface materials. Therefore, MiEx provides a resource pack to specifically export out UsdPreviewSurface materials, but that doesn't support biome colours, animated textures, and setting the texture filter. This means that when importing into Blender, you still need to fix the materials after import.
If Blender's USD importer would allow us to specify Blender's native shading nodes in USD, then we could create material templates that use these nodes and the materials in Blender would then be set up correctly and just work. Unfortunately, that's not the case.
This could be fixed using an addon. The addon could potentially hook into the USD importer and fix materials immediately in there. Or, the addon could fix materials after the fact. This is something that I will be looking into, but I don't use Blender myself and I don't know much about how it works, so I can't say anything about when that will be done. Maybe somebody else, who knows a lot more about Blender addons, could make it and send it in as a pull request so that everyone can use it.

Wont this work? someone typed that 4 years ago.

This is an issue with Blender not fully supporting USD. MiEx by default uses MaterialX materials so that it can do biome colours, animated textures, and set the texture filter. Blender, unfortunately, does not support importing in MaterialX materials. It only supports UsdPreviewSurface materials. Therefore, MiEx provides a resource pack to specifically export out UsdPreviewSurface materials, but that doesn't support biome colours, animated textures, and setting the texture filter. This means that when importing into Blender, you still need to fix the materials after import.
If Blender's USD importer would allow us to specify Blender's native shading nodes in USD, then we could create material templates that use these nodes and the materials in Blender would then be set up correctly and just work. Unfortunately, that's not the case.
This could be fixed using an addon. The addon could potentially hook into the USD importer and fix materials immediately in there. Or, the addon could fix materials after the fact. This is something that I will be looking into, but I don't use Blender myself and I don't know much about how it works, so I can't say anything about when that will be done. Maybe somebody else, who knows a lot more about Blender addons, could make it and send it in as a pull request so that everyone can use it.

 Wont this work? someone typed that 4 years ago.

This appears to talk about importing and exporting mtlx files, which is where each material is written out into it's own file with an .mtlx extension. MiEx exports out materials as USD data and not mltx data. Both allow you to specify MaterialX materials, just in different file types. MiEx uses USD data because USD data can also store other kinds of materials.
As far as I know, there currently just isn't a way to import USD files with perfect materials. This can be fixed using an addon that can encode and decode Blender's shading nodes as USD data, but I don't think that addon exists yet. However, I do believe that at some point somebody will make it, or that a new version of Blender will natively support it.


Update archive-bell-network-data.md

In real time

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks


Remove iOS input shadow

Possible solutions http://stackoverflow.com/questions/23211656/remove-ios-input-shadow

I agree. So do you think that box-shadow: none !important;  is better solution?

This is outside the scope of normalize.css,  but you may want to raise the issue on sanitize.css. Also, a less destructive solution may be background-clip: padding-box;.


CB-8933: Harden SSH Configurations

Eliminating SSH sshIdealTime configuration due to e2e test failure for further investigation.

I have run the changes through Image building job and e2e test suites and it passed through. Below are the jobs and respective results for reference. The PR should be fine for merging into master branch.
http://build.eng.hortonworks.com:8080/job/cloudbreak-image-burn-salt-v3/12878/
http://build.eng.hortonworks.com:8080/job/cloudbreak-multi-packer-image-builder-salt-v3/2322/
http://build.eng.hortonworks.com:8080/job/imagecatalog-v3-append/1622/
http://ci-cloudbreak.eng.hortonworks.com/view/e2e-test/job/api-e2e-imagevalidator-aws/992/

I have run the changes through Image building job and e2e test suites and it passed through. Below are the jobs and respective results for reference. The PR should be fine for merging into master branch.
http://build.eng.hortonworks.com:8080/job/cloudbreak-image-burn-salt-v3/12878/
http://build.eng.hortonworks.com:8080/job/cloudbreak-multi-packer-image-builder-salt-v3/2322/
http://build.eng.hortonworks.com:8080/job/imagecatalog-v3-append/1622/
http://ci-cloudbreak.eng.hortonworks.com/view/e2e-test/job/api-e2e-imagevalidator-aws/992/


optimize repo size, it has reached 94M

Describe your question
optimizing the repository size? 087a35bb has introduced the build folder and it has been removed in bca7e9cc.

sure

sure

but this is impossible unless rewrite the git history, which result in a very very big impaction...

We will not modify the git history because there are many downstream consumers of our repo.


Live stream doesn't work properly

When I use program with live stream it open video for less then minute and close it.
How it actually should work with percentage preferences?

I just checked it's working. Script understand it's a live stream when it finds x watching now instead of x views in youtube.
So watch duration percentage have no impact on this. Every 60 secs script checks if x watching now is present. If it's there it won't close the driver. If it can't find that for 5 times it will close the driver assuming live stream has ended.

I think I understood. The problem is that I have another language for browser and I don't have words like "watching now" or "views" at all :)

let me know if this works
youtube_viewer.zip

It looks like now it makes english page and it works. But I am afraid it can be a bad signal for youtube when promoting non english video with non english proxies but with english user agent.
And different popups didn't close too with another from english languages

It has nothing to do with user agent or proxies..all it's doing just setting the browser language to English.
atm, script only bypass cookie agreement popup. Other popup bypass will be added in the next release.

I mean it's easy to detect for Youtube through this:
window.navigator.language ||
window.navigator.systemLanguage ||
window.navigator.userLanguage

window.navigator.systemLanguage and window.navigator.userLanguage both returning undefined in chrome and firefox.  window.navigator.language || window.navigator.systemLanguage || window.navigator.userLanguage this line ensures to find browser language because language, systemLanguage or userLanguage can fail like last two is returning undefined for me.


Placeholder for testing and filling the new ACC server with experiments

The fastest way is probably to export fixtures and load them into the new acc server, so we don't have to set up all playlists and experiments by hand.
This would mean we'd have to upload the audio data via scp, so ssh access to the servers is a prerequisite for this solution.


run the tests on different machines

Hi,
your tests are biased because they run on the same machine. you should at least use one machine as server and another machine doing the tests, as else, the server and test runner are competing about resources and your results may be flawed.
make sure to use real hardware, not virtualised servers.

@domdorn The purpose of the benchmarks is to gauge the raw throughput and latency under max throughput in order to find out the overhead of each framework. I agree with you that the client(wrk) and the server(framework) should be located on two different physical boxes; however, the network will be the bottleneck for some of high performance servers. With the client on the same box, it uses some CPU resources but the CPU usage is linear. It is a little unfair for these servers that can serve around 1 million requests but we are not looking at the absolute numbers but relative numbers against Java EE based servers far down below in the chart. Ideally I should run the test on cloud VMs but the computing power of these environment are fluctuating from time to time. I am running the test from one of my desktops with an aging i5 4core/4thead to simulate a large t-shirt VM which is our target production environment. Given we have the source code, a lot of people have run the benchmarks on their own hardware with similar result. I am planning to dockerize these but never got enough time to do so. Thanks for your recommendations.


Update zwave-lock-schlage.groovy

Changed some terminology and default options to align to Schlage documentation. Some of the command sets were missing the complete parameters (e.g. 0x2 vs 0x02) here which were added.

made later changes


Add Promise reject and resolve to handle errors and result when a Pro…

…mise is used

I think you need to refactor this too: https://github.com/busyorg/sc2-sdk/blob/4b6c6fc4e844899a48c44f98b6e0ead11d059b20/src/sc2.js#L55-L61
The parameter errors is not relevant anymore as we are using error.
Also just noticed that the method revokeToken (https://github.com/busyorg/sc2-sdk/blob/4b6c6fc4e844899a48c44f98b6e0ead11d059b20/src/sc2.js#L145-L166) could use sc2.send() method, instead of having a similar code twice on the lib.


[glib] update to <2.80.3>

Fixes #39531
Update glib to the latest version 2.80.3
All features are tested successfully in the x64-linux triplet.

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

The latest version is 2.82.1 https://gitlab.gnome.org/GNOME/glib/-/releases


Investigate the monotonic router in fastroute

The FastRoute 2.0 and later papers all mention monotonic routing.   FastRouteCore::routeMonotonicAll is never called anywhere in the code so it seems to be unused in practice.  Someone should investigate:

Does it work as the papers describe?
Does it help if inserted into FastRouteCore::run before maze routing?

Paper link https://ieeexplore.ieee.org/document/4196040


error while performing the scan

while i try to integrate the appscan cli with aws code build i am getting the below error and the scan is not initiated
ERROR:An error occurred submitting the scan to the service. The value for key: [FormatParams] was null.  Object required.

Hi @ausmanki ,
Thank you for bringing the issue to our attention. Could you kindly share the steps to reproduce the problem or provide the specific CLI command that is triggering this error? Additionally, for security purposes, please ensure to mask any key or secret information.


            For example, to support arbitrary iterators, you could
            implement default like this::

                def default(self, o):
                    try:
                        iterable = iter(o)
                    except TypeError:
                        pass
                    else:
                        return list(iterable)
                    # Let the base class default method raise the TypeError
                    return JSONEncoder.default(self, o)

            """
        raise TypeError("Object of type '%s' is not JSON serializable" %
>                       o.__class__.__name__)
E       TypeError: Object of type 'FileStorage' is not JSON serializable

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py:180: TypeError
======================================================================== 2 failed, 96 passed in 2.65 seconds =========================================================================

For the first failing test, the issue is in how json and ujson serialize werkzeug.datastructures.ImmutableMultiDict

The line that performs this specifically is apistar/http.py:239
        else:
            content = json.dumps(data).encode('utf-8')

Yup. An undocumented inconsistency using ujson there. Probably a good reason to always use the standard lib in our test suite. (And in this case make sure to properly serialize the output)

Might be a good place to contribute: drop ujson from requirements.txt and clean up any test inconsistencies that result.

I know one of your goals was speed, is the idea to drop ujson all together? Id be interested to see the impact of dropping ujson on the benchmarks

is the idea to drop ujson all together?

Not really, no. It's fine as a drop in replacement, and it's not terribly surprising that it has some slightly different behaviour to the standard lib version when passed non-primitives.
I do think that it's sensible to treat it as an optional tho, rather than the standard. We might even decide to force the user to be explicit if they want it rather than just depending on if it's installed or not.


I got a bug, when i set the TAGS array which contain some Chinese.

when TAGS array like below, the layout can not arrange cell very well. You can try it.
let TAGS = ["Tech", "Design", "Humor","你们打lol朋友一定要记得，带我飞","Travel", "Music", "Writing", "Social Media", "Life", "Education", "Edtech", "Education Reform", "Photography", "Startup", "Poetry", "Women In Tech", "Female Founders", "Business", "Fiction", "Love", "Food", "Sports"]

Wow I did not work with Chinese strings before, will try at free time 🗡


Auth api update

Issue #, if available:
#1020
Description of changes:
As detailed in #1020, the client.authentication.k8s.io/v1alpha1 API has been removed and we need to start using client.authentication.k8s.io/v1beta1. As of aws-iam-authenticator 0.5.9, the beta API version is supported. On earlier versions, nodes will fail to join the cluster due to a mismatch in our config and expectations from the authenticator. To handle that we did a few things:

Released binaries with kubernetes_build_date of 2022-10-31 that include authenticator version 0.5.10.
Added a check, in this PR, to fail the AMI build if the authenticator version does not support the beta API version.
Update the Makefile to use the latest binary versions, which also include kubelet version upgrades for Kubernetes versions 1.22+.

NOTE: We have not yet released AMIs with these binaries and run our full suite of tests on these AMIs, though we have run a portion of them, so I recommend that customers wait for an official AMI release with all of these changes before building your own AMIs with them and running production traffic. We intend to release AMIs soon, and those AMIs will go through our usual validation.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Testing Done
Built 1.20-1.24 AMIs and verified that 1.20, 1.23 and 1.24 AMIs successfully joined clusters.

See this guide for recommended testing for PRs. Some tests may not apply. Completing tests and providing additional validation steps are not required, but it is recommended and may reduce review time and time to merge.

Thanks for this, I will close my PR https://github.com/awslabs/amazon-eks-ami/pull/1048 in favor of this one then.


Sequencer pause/resume gets screwed when start() is called in between

Fix it or deactivate pause/resume

there is no pause/resume anymore (just start, stop and reset score). So this should be obsolete.


Fixes request example spelling error

The key "source" was misspelled as "sources", making the request invalid. The correct key is "source" as presented in previous example in the same page.

#sign-off

Adding @wsugarman to review


JustSayingFluentlyExtensions.WithMessageHandlers() Doesn't Support Single Parameter

If I invoke the JustSayingFluentlyExtensions.WithMessageHandlers<AlphaMessage>() method passing in an array of IHandlerAsyn<AlphaMessage> handlers that contains more than 1 handler instance, everything seems to work as expected. But if I call that method and pass in an array of just 1 handler, I get the following exception message:
The handler for 'AlphaMessage' messages on this queue has already been registered.
This occurs when there are no handlers registered that could possibly cause any conflicts. I assume this is a bug?
Performing the same operation for the same handler via the IFluentSubscription.WithMessageHandler<AlphaMessage>() method instead works just fine.

Hm, that's odd.
The code for WithMessageHandlers actually does the samething:
        if (handlers.Length == 1)
        {
            sub.WithMessageHandler(handlers[0]);
        }

So perhaps we need a test for this scenario


Az Module not installed in Azure Powershell Action?

@jennirethi can you share yml of task?

name: Run Azure PowerShell script
uses: azure/powershell@v1
with:
inlineScript: |
Get-AzVM -ResourceGroupName "ResourceGroup11"
azPSVersion: '3.1.0'

@jennirethi are you using github runner or self hosted runner?
if github runner which os?

ubuntu-latest

ubuntu-latest might be pointing to ubuntu 20.04 which doesn't have az 3.1.0 version available.
You can verify ubuntu version in logs

Az 3.1.0 is available in ubuntu-18.04
Instead of ubuntu-latest use ubuntu-18.04

@jennirethi let me know if this resolves your problem

Interesting - it is using version: '2.277.1'

Ubuntu - 20.04.2

Changing to 18.04 resolved the issue.


Howto insert with document validation of type "long".

How do I insert data in a collection when the collection has a validation on it with for a particular column of the type "long". This is used for 64 bit integers. When I try to a large integer the response that I get is that the document validation failed. With other special columns you create first object and insert that object as the column value (Decimal128). Using the Int64 class is not possible, because the construct method is private. Has anybody have an idea/example how to fix my problem.
I am using: PHP 7.1 and version 1.4.2 of this project and MongoDB 3.6.

Can you share:

the code, as short as possible, and something I could run without modification
the validation schema, perhaps also explaining how you've configured this
the exact error message

Decimal128 should generally only be used for very specific use cases.
Int64 is a class that is only used when reading data that is stored in MongoDB as a IntLong/64-bit integer on a 32-bit platform. Without an Int64 class wrapping the value, the data would end up being corrupt in that case. On 64-bit platforms, Int64 should never be generated for you when reading data.

$collection = (new MongoDB\Client)->test->test;
$insertOneResult = $collection->insertOne([
'big_integer' =><PHONE_NUMBER>54775807,
]);
The validation level is strict.
The collection test has the following validation:
{
"$and" : [
{
"big_integer" : {
"$type" : "long"
}
},
{
"big_integer" : {
"$exists" : true
}
}
]
}
The error message that I get is: "MongoDB\Driver\Exception\BulkWriteException: Document failed validation"
Hopefully this is enough. And thank you in advance for your help.

Yes, I am using query expression validation. I should have mentioned that.
Changing the validation from $type => "long" to $type => ["int", "long"] fixed my problem.
Thank you jmikola for your suggestion.
Integer values in the column are now stored as "Int32" for small integer values and as "Int64" for large integer values.
It was probably my OCD side that wanted to store all integer values in that column as "Int64".
I would like to thank both derickr and jmikola for their fast responce to my problem and their very expert help/suggestions.
I will now close this issue. If someone still would like to add something, please do.


Title: Improve Project Structure and Architectural Pattern for Maintainability

Folder Structure Enhancement:

Create a structured folder hierarchy, separating input/output data & source code
Organize input/output data files in a dedicated data/ directory, with subdirectories for input and output files.
Move source code files into a src/ directory, with further categorization into modules for future maintainability
Add tests folder for the unit testing the code.

Architectural Pattern Adoption:

Define modules representing the Model (data/business logic), View (presentation layer), and Controller (intermediary logic) components.
Ensure clear communication and interaction between different components to facilitate maintainability and scalability.

Agreed. You can also come up with a plan and then create multiple issues that can be used to track the progress.
For example, come up with a standard project structure and someone can take it as reference ( including you ).
Also, for the Architectural pattern, a monolith structure with MVC pattern seems reasonable.

Modularization
I think it's time to modularize the code, separating the script into individual scripts for functions. Its tedious navigate through >300 lines of codes and debug.

I would recommend node/express. this can serve as a backend for many moest applications. Please let me know if the author is okay with this.


Collection of smaller changes (Support ESP-IDF 5.3, update docs, update CI pipeline)

Frustratingly, some step in transferring the output of the coverage report into the input of the PR comment generation step seems to strip out all newlines.
I'll need to take a deeper look into this tomorrow.


Fix snapshots missing iterations

Until now the snapshots only  contained the first iteration of diagnostics.
This PR adds the diagnostics from the other iterations.
The duplicates between the iterations are removed.

Hmm, this may have the potential to confuse, since the diagnostics that are generated after the first iteration will contain locations that don't map to the input file (assuming the input file is changed via autofix).
Is there an example rule or set of rules for which we missed something before, but have improved diagnostic coverage after this change?

Yes, I separated in two commits #3564, where there is the before and after snapshot where the former had three fixes compared to the latter that had only two.
The format of the snapshots, could be changed to contain an array of the iterations.

Here is the diff of #3564 between the two commits.

  ---
  source: crates/ruff/src/rules/pydocstyle/mod.rs
  expression: diagnostics
  ---
  - - kind:
        name: NewLineAfterLastParagraph
        body: Multi-line docstring closing quotes should be on a separate line
        suggestion: Move closing quotes to new line
        fixable: true
      location:
        row: 2
        column: 4
      end_location:
        row: 3
        column: 72
      fix:
        content: "\n    "
        location:
          row: 3
          column: 69
        end_location:
          row: 3
          column: 69
      parent: ~
    - kind:
        name: EndsInPeriod
        body: First line should end with a period
        suggestion: Add period
        fixable: true
      location:
        row: 2
        column: 4
      end_location:
        row: 3
        column: 72
      fix:
        content: "."
        location:
          row: 3
          column: 69
        end_location:
          row: 3
          column: 69
      parent: ~
- - - kind:
-       name: NewLineAfterLastParagraph
-       body: Multi-line docstring closing quotes should be on a separate line
-       suggestion: Move closing quotes to new line
-       fixable: true
-     location:
-       row: 2
-       column: 4
-     end_location:
-       row: 4
-       column: 8
-     fix:
-       content: "\n    "
-       location:
-         row: 4
-         column: 5
-       end_location:
-         row: 4
-         column: 5
-     parent: ~

I do not know why the CI is failing, the tests are passing locally.

The failing tests are gated behind the logical_lines feature [source].
You can run them locally with
cargo insta test --all --all-features --delete-unreferenced-snapshots

@charliermarsh I wonder if we should remove the feature and instead rely on cfg(debug_assertions) or disable the feature for release builds stack overflow to avoid this confusion in the future.

@charliermarsh, do you want to merge this PR or should we close it?

@JonathanPlasse - I do see the value, but thinking on it... I'd prefer to close, I'm just worried about making the snapshots more difficult to follow since they now represent a sequence of iterative changes. I'm sorry for not saying so sooner.

I understand, no problem. I could understand better how the tests work.


Rubocop: Disable ImplicitSubject

Enabling this cop causes a lot of noise in our project, because ruboop
would want us to reformat most of the tests.
Explanation of the cop:
https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject

I have a high amount of open modulesync PRs and this change has a huge effect on them. I will hold of with the modulsync PRs until we decided to disable/enable this Cop.

I think we could set EnforcedStyle: single_statement_only as well.
let's take a look at:
it { is_expected.to contain_file('/etc/all-knowing-dns.conf').with_content(%r{listen #{params_set[:listen][0]}}) }

if the cop is disabled or set to one of the enforced styles, it stays the same. I think we use this style in 90% of the tests.
let's take a look at this:
  it {
    is_expected.to contain_service('all-knowing-dns').with(
      ensure: 'running',
      enable: true,
      hasstatus: true,
      hasrestart: true,
      require: 'Package[all-knowing-dns]'
    )
  }

with the style set to disabled or to single_statement_only, it stays the same. If we set it to single_line_only it will be converted to:
  it {
    expect(subject).to contain_service('all-knowing-dns').with(
      ensure: 'running',
      enable: true,
      hasstatus: true,
      hasrestart: true,
      require: 'Package[all-knowing-dns]'
    )
  }

That's why I think EnforcedStyle: single_statement_only would be fine as well.


Update Composer dependencies (2020-10-09-00-11)

Visual regression test passed!
View the visual regression test report


refactor: uniformly not use apostrophes for ports

server is not using apostrophes around the ports, while clickhouse is.
Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

refactor

New functionality

...

Test plan
How are these changes tested?
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?

@cachho was this broken for you (it was not for me) or is this strictly a readability improvement?

@cachho we are going to be removing clickhouse later today - so I will close this PR for now. thanks!

@cachho was this broken for you (it was not for me) or is this strictly a readability improvement?

strictly readability. Thought I'd make a PR.

@cachho I do appreciate it!! Please feel free to contribute again in the future

@cachho I do appreciate it!! Please feel free to contribute again in the future

I'm very actively working on the downstream (embedchain). Thanks for what you're doing here!


feat: add emulator detection property to static context

Description
This PR adds emulator detection to the static context and updates the tests to verify this functionality.

Implemented isEmulator method to detect if the app is running on an emulator.
Integrated emulator detection into the static context cache.
Added assertions to verify emulator detection in the static context.
Ensured static context includes the new \$is_emulator property.

Motivation and Context

A crucial property for future use as a filter.

#113
How Has This Been Tested?
The tests have been updated to include checks for the new \$is_emulator property in the static context.
I tested it manually on both an emulator and a physical device.
Checklist

[x] I have reviewed the submitted code.
[x] I have added tests to verify the changes.
[ ] I have updated the documentation if necessary.
[x] No breaking changes or changes to the changelog entry.

@thisames please add a changelog entry =)

@thisames would you be willing to add to our taxonomy on the backend/frontend as well? See example https://github.com/PostHog/posthog/blob/46e6624cd9b314c67cd1f076f41eda901cd9b1f6/frontend/src/lib/taxonomy.tsx#L844-L848
Its as simple as the linked lines

@thisames please add a changelog entry =)

lets waiting #153 be merged? to avoid future conflicts

@thisames would you be willing to add to our taxonomy on the backend/frontend as well? See example https://github.com/PostHog/posthog/blob/46e6624cd9b314c67cd1f076f41eda901cd9b1f6/frontend/src/lib/taxonomy.tsx#L844-L848
Its as simple as the linked lines

sure!

@thisames please add a changelog entry =)

lets waiting #153 be merged? to avoid future conflicts

done


Add base converters

This commit adds base conversion functionality to binary and hexadecimal representations.
Usage
bigInt(10).binary();
bigInt(10).hex();

Coverage decreased (-0.9%) to 93.38% when pulling 0d4f35938d2cd01f40f75bc326ac5c8060abcc31 on IkechukwuAKalu:add-base-converters into 67a715c917bd0eb0c106c45935b889269a24dcef on peterolson:master.

This functionality already exists using the toString(base) functionality, and it is not limited to only binary and hex.


As a user I can use 'duplicate' in the command line

... so that I can use an existing surveyee as a template for a new surveyee to save time

Fixed with #92


add annotation to the service object

this PR aims to add annotations to the service. By adding it, we can add features to the service.
For example, to integrate IAP to the service, we can add this annotations below:
beta.cloud.google.com/backend-config: '{"default": "backend-config-name"}

Duplicate of #54

@fikri-marzaq, it looks like #54 supersedes this PR. (just one word difference really). Are you okay if we close this one out in favor of that PR?
CC: @hashhar


fix: standardise logging format to use json

What kind of change does this PR introduce?

standardise logging format to use JSON
new logging format for auth events will follow:

{"auth_event":{"action":"user_signedup","actor_id":"c93b6eb0-4af8-4247-84a9-00c88c041b75","actor_username":"foo@example.com","log_type":"team"},"component":"api","duration":386683041,"level":"info","method":"GET","msg":"request completed","path":"/callback","referer":"","remote_addr":"<IP_ADDRESS>:54356","status":302,"timestamp":"2022-07-23T08:33:22Z"}

@chasers lmk if this is easier for you to parse - we can also change the logging key from auth_event to something else to make it more explicit if you want

@burmecia FYI

i've also removed the timestamp field from auth.audit_log_entries->>'payload' because there's already a column called created_at which is basically the same thing


Rewrite for .NET 6

My thoughts are that we use github actions to deploy a 2.x.x-alpha to NuGet which we can use for testing etc. with the wider community.
In regards to the main branch, we keep that going and alive for the time being with the outlook to have a 1.x.x branch where the old code sits for any bug fixes and such. However i think people should moving on from old .net versions!

what are the thoughts on

new repo for the .net 6 rewrite
GitHub action to deploy new 2.x.x to nuget.org
maintaining the 1.x.x code or leave it as is to focus on the .net 6 rewrite

What are the current permissions on this repository, who currently owns and manages likes of PRs?

So

I think having a new branch is more or less the same as having a new repo, might be less confusing to people & they will be able to see our progress and any updates for the old stuff in one place rather than mutiple
So yeh, we can use i do believe GitHub actions to hopefully publish a 2.x.x-alpha release to nuget.org with clear warnings that is in alpha until we are ready

added bonus of using github actions is we can do automated dependency updates where necessary and static code analysis

I think the 1.x.x code has been around that long with minimal maintance that i think we should continue to have a 1.x.x branch where we can support it for a while but give everyone enough notice to move up to higher .NET 6 maybe??
Current permissions are

@shiftkey is an admin
Scientist.NET Maintainers (Admin privileges)

@rogertinsley
@shawnwildermuth
@paulbreen
@M-Zuber
@JoshHiles

At the moment the master branch (at somepoint we should change to main) is protected

2 people must review the code
It will dismiss stale pull request approvals when new commits are pushed
It requires status checks to pass before merging
Branch be up to date before merging
Require conversation resolution before merging
Require signed commits
Require linear history
Only the Scientist.NET Maintainers can push to master branch
All these setting include the admins

I've on the tail end of a long burn out, but I do hope to get back into things.
My two cents is the best way to rejuvenate the project would be a new branch in the existing repo and not a new repo as it would hamper discovery

Great summary. I'd very much like to be apart of this rewrite.
Creating a new branch would be alot less confusing since we already have the 1.x and 2.x branches here.

@marblekirby Awesome stuff!
Ahh i see we have 2.x tag & a 2.x release hidden away!
3.x it is then!

Great shall we create the new branch and get some issues created for the 2.x.x release?

3.x (pretend theres a winky face because i couldnt find it)
Shall we go with feature/core-rewrite for the time being and at somepoint down the line merge that into a 3.x branch or?

Shall we get an issue created for the 3.x 😉 and discuss there.
I think that the feature/core-rewrite is fine, or some reference to .net 6 might be helpful as Microsoft have dropped "core" for the .net 5/6 releases.

Closing to move over to https://github.com/scientistproject/Scientist.net/issues/136


Performance improvements part II

This is the second part, with a newer version. Prevents a break with existing installations. Unfortunately, this contains the commit of the other fork.

@raphaa do your tests work on your end?

I was just checking out this PR, as we're starting to hit the performance issues during peak daily traffic.
One suggestion: what if instead of deleting all the tokens the logic for authenticate_credentials(self, token) became:
def authenticate_credentials(self, token):
        # first check tokens with matching token_key
        for auth_token in AuthToken.objects.filter(
                token_key=token[:CONSTANTS.TOKEN_KEY_LENGTH]):
            if auth_token.expires is not None:
                if auth_token.expires < timezone.now():
                    auth_token.delete()
                    continue
            digest = hash_token(token, auth_token.salt)
            if digest == auth_token.digest:
                return self.validate_user(auth_token)

        # then check tokens that haven't been migrated
        for auth_token in AuthToken.objects.filter(token_key=''):
            if auth_token.expires is not None:
                if auth_token.expires < timezone.now():
                    auth_token.delete()
                    continue
            digest = hash_token(token, auth_token.salt)
            if digest == auth_token.digest:
                return self.validate_user(auth_token)

        # Authentication with this token has failed
        raise exceptions.AuthenticationFailed(_('Invalid token.'))

(I keep the code in the loop duplicated here for clarity, but would probably refactor the block into a function).
Basically, as tokens expire and are deleted, tokens with a blank token_key should become increasingly rare, and eventually non-existent, so the 2nd loop becomes a single fast query.  But, IMO, this would no longer be a "breaking" change and could be considered 2.3.0 instead of 3.0 since no tokens would be harmed during the upgrade process.
Thoughts?

@ryanschneider @belugame @raphaa
I'm sure I've said it before somewhere but I'll say it again in reference to your comment @ryanschneider ,
I do not consider the deletion of existing tokens to be a breaking change. Harming tokens during upgrade is not breaking provided that the API is not changed. This is meant to be used with expiring tokens in a RESTful scenario, so all clients (Single Page Applications, Apps, Other services drawing data via Http) should be capable of re-authenticating using the LoginView (either by using stored credentials or asking a user to authenticate again)
I.E. Tokens are the REST analog of Sessions - not something expected to be persistent for any great length of time. (In my systems tokens have an expiry of 10 hours - forcing users to re-enter their password. Prematurely deleting them all will cause no issues as the user will simpluy re-auth)

I noticed in this PR the version was 3.0, is that still going to be the case then?  As far as I can tell there aren't any breaking API changes, so assumed it was 3.0 because of the tokens being deleted.
On a related note, is there anything I can do to help get this PR accepted and a new release cut?  Would figuring out why the Travis tests are failing help?  I looked briefly and saw it has to do with the migration, but can spend more time on it tomorrow if it'd help move along the next release.

@James1345 @raphaa I spent a bit of time looking into the test failures, I currently see 2 failing tests:

The first was just an issue with the structure of the test_update_token_key test, I fixed the implementation of that test in this commit: https://github.com/ryanschneider/django-rest-knox/commit/968c77af7861d40e8d8427d63a1ede5eede7aa51

The second failure is in test_expired_tokens_deleted and actually exposes a bigger issue: Currently logout does not delete all tokens for a user, it seems to only delete at most a single token.  I've updated the test_logout_deletes_keys test to create multiple tokens to make this more explicit in this commit: https://github.com/ryanschneider/django-rest-knox/commit/9a6ba16b448b6379c9ead0deec171539c9dc167a

I'll take a stab at determining why all tokens are not deleted and report back with my findings and/or a fix depending on the complexity of the issue.

  I'll update my change to test_logout_deletes_keys to ensure only the current token is deleted, and then focus on why expired tokens aren't being deleted.
But that raises a question: do we want to keep the behavior that expired tokens are deleted, or are they acceptable to keep around now that the entire table isn't being iterated over?

Ok, I added a bit of code to delete a user's other expired tokens when they attempt to authenticate in this commit: https://github.com/ryanschneider/django-rest-knox/commit/67bd3793b2786879f7b1e3795ff4e714c8e34dcb
I also added two more tests just for my own sanity:

Verify attempting to authenticate with an expired token fails
Verify that logout all only deletes the tokens for the current user

Both obviously pass, and I updated the test_logout_deletes_keys test to verify that only the current token is deleted.
With these changes my tests pass locally.  Would you like me to create a PR?

@ryanschneider  Contributions are always highly welcome, happy to see a pull request from your side!

Sorry guys for my late response. Was far away from this issue here.
So… Why is this 3.0? Because with these changes, all users who didn't consumed the API with 2.3.0 (see #28) will have invalid tokens. You also could use 2.4.0 but my intention was to protect developers who use "django-rest-knox<3.0" in their requirements.
Thanks @ryanschneider for fixing the tests. In my opinion the code shouldn't delete any tokens. If a user created e.g. 10 tokens once but never consumed the API afterwards, the tokens never will be deleted. So like I've said in #21, I highly recommend a dedicated cron job/celery task to clean the table. This is also what Django does with manage.py clearsessions.

Ok, I've submitted my PR #39, with these high-level changes:

Added logic to delete expired tokens for a user.  I'm not against the 'cron' approach but wanted the current tests to pass since they seem to be the best representation of a contract for the code.
Added a couple more tests to make sure things behave correctly (logging out only deletes 1 token, and that attempting to use an expired token fails).

@raphaa can you point me towards any more discussion on what you mean by "invalid tokens".  Is there an upgrade scenario where either the migration fails or users cannot log in, or would there just be some garbage tokens in the DB?
Speaking of upgrades, I also want to verify that a user can perform the DB migration from 2.x -> 3.0 and still use the 2.x code without issue, as I for one don't want to force downtime for the upgrade.

Having read through the discussions, I agree that for now we leave the code as-is re deleting tokens. My favorite option that's come out of all of this is to, in the future, remove this function, and have it in a Management command that the users can schedule if they want - reason being I would like an in-project way to clean out the tokens, but I also like to give the users their own choice of scheduling tool.


feat(forms-web-app): adds multi file upload for supporting documents

Ticket Number

UCD-1388
Description of change

adds multi file upload for supporting documents
Checklist

[ ] Requires infrastructure changes
[ ] If adding or remove environment variables (e.g. in docker-compose.yaml) then I have updated the appropriate Helm chart
[ ] I have updated the documentation accordingly
[x] My commit history in this PR is linear
[x] New features have tests
[ ] Breaking change (team conversation required)

Important
Please do not merge from master (please only rebase). This keeps the history linear and easier to debug.

cheers both

cheers both


Enhance Help Overlay

Allow clicking certain objects without closing the help overlay, e.g. menu items that don't have an action, frame selectors

Ideally the highlighted button isn't darkened like the rest of the screen.

I was thinking to make the help transparent, allow clicking everything as normal and only display the hovered element outline and help.
Also is there a good way that we could utilize the wiki there somehow? Or generate the wiki form it?
It feels redundant to have to places where help is defined...
Reference:
https://discourse.stonehearth.net/t/voxelshop-voxel-editor/5289/153?u=flux

Feedback (email):
"Ahh I posted with Mac's native Grab app's default save. I probably should have tried to export as PNG. I don't recall if that's how it looked when I 1st noted it. The tint covers the appearance of the icons. I suppose the tint was intended to add more pop for the orange outline? On Mac the app is colored dark. So without the tint I think the orange highlight color still works."


Add support for Satochip hardware wallet

This is a pull request to add support for the Satochip hardware wallet.
The Satochip hardware wallet is based on a jacavard smartcard and is fully open-source: a user can buy a blank smartcard of his choice (with ECDSA support), compile the Satochip javacard applet and load it on the card themselves. We are more than happy to provide cards and reader for testing!
The Satochip is protected by a PIN code (4-16 characters) and support BIP32 key derivation. On first use, the card must be initialized by providing the PIN and a BIP39 seed, this can be done during wallet creation in Sparrow.
Satochip can be used with a contact (USB) card reader of contactless (NFC) card reader.
The latest version of the Satochip applet (v0.14+) also support Taproot transactions.
Note: to support Satochip, the Drongo library also require some minor changes. This is the object of another PR.
More info:
https://github.com/Toporin/ (official repository)
https://prezi.com/p/mpq-xhh3mxjl/satochip-gent-meetup/ (Slides from previous meetups in Belgium)
https://t.me/Satochip (Telegram support)

Thanks - cleaned up and added in ee658999.


Add composer-config-plugin config to template

Many yiisoft packages using hiqdev/composer-config-plugin.
Maybe it should be added to template?

No, I don't think so. It's added when needed.


Refactor model [metadata and pmml/h2o data extraction]

Resolves #177 and resolves #173

During this refactor I found out that separation for model signature and parameter definition in model (and its metadata) was nor really useful, as proxied model can keep the signature of model which is proxied by it so we don't have to have the separation for model parameters and model service signature in every model. It was my fault when designing the ProxiedModel


Error while attempting to run the migration tool

I'm seeing the error below(in bold) while trying to run the migration tool.
2024/01/20 15:08:29 Reading ChirpStack configuration file: /etc/chirpstack/chirpstack.toml
2024/01/20 15:08:29 Reading AS configuration file: chirpv3-configs/chirpstack-application-server.toml
2024/01/20 15:08:29 Start migration
2024/01/20 15:08:29 Migrating users
2024/01/20 15:08:29 Exec user statement errorpq: duplicate key value violates unique constraint "idx_user_email"
I poked around in the v3 database, but nothing is immediately jumping out at me.
--Bryan

sorry, missed this in the closed issues.


Update Settings “landing”

Automatically generated by Netlify CMS

👷 Deploy Preview for vigorous-galileo-acc7e1 processing.
🔨 Explore the source changes: d87c621463d3afc2563df1abc2db71bb517df880
🔍 Inspect the deploy log: https://app.netlify.com/sites/vigorous-galileo-acc7e1/deploys/61fe8342c53b830008129521


global: Added DDMMYY snippet

Added date snippet for DD/MM/YY format; commonly used in Commonwealth nations and Eu.

Yah. Thanks for the update.


Improper batching

According to the azure event hubs documentation, the messages endpoint supports batches of events as an array:
[
  { "Body": { ... } },
  { "Body": { ... } }
]

However, this plugin passes an object with a records property:
{
  "records": [
    { ... },
    { ... }
  ]
}

I realize that this repo appears to be unmaintained, however, I am unable to open issues against the fork https://github.com/ChihSeanHsu/fluent-plugin-azureeventhubs-batched so I am opening the issue here. @ChihSeanHsu would you be willing to implement the correct payload in your fork?
EDIT: fixed current payload

Hi @Beng89,
I have changed setting to my fork project, and you can post issue to that project now.
I'll try to implement your suggestion, or you can submit a PR to that project if you have time, thanks.

@ChihSeanHsu sorry for the delay and thank you for making that update.
I'm not 100% certain as I haven't had a chance to test it, but I believe the Content-Type header must be set to application/vnd.microsoft.servicebus.json when making a batched request to event hubs.

Hi @Beng89,
I have tried it in my dev env, and it can pass to eventhub and other steps behind eventhub.

Perfect, I'll close this issue then, thank you for your time!


Ability to set custom default _size on a per-table basis

I have some tables where I'd like the default page size to be 10, without affecting the rest of my Datasette instance.

Relevant code: https://github.com/simonw/datasette/blob/07e208cc6d9e901b87552c1be2854c220b3f9b6d/datasette/views/table.py#L519-L520

Syntax suggestion:
{
    "databases": {
        "mydatabase": {
            "tables": {
                "example_table": {
                    "sort": "created",
                    "size": 10
                }
            }
        }
    }
}

I'm calling it "size" for consistency with the querystring parameter _size=, even though "page_size" might be a more accurate name.

Documentation: https://datasette.readthedocs.io/en/latest/metadata.html#setting-a-custom-page-size


cmd: addr wrapping

for some commands, showing the full address forces the user to make their terminals pretty wide
e.g.
$ monero wallet get-accounts
Total Balance:<PHONE_NUMBER>05607
Total Unlocked Balance:<PHONE_NUMBER>05607

        LABEL           TAG     ADDR                                                                                BALANCE         UNLOCKED BALANCE
0       Primary account         53G25UfvJkvKZpJk3LgKTebdLwcxVQxSrWcwLHJUtWYHPZX6PrwggUN1PisbZG81YkJNVEgpCUMBKE8Dkaqn4CpsPUA91AX<PHONE_NUMBER>05607<PHONE_NUMBER>05607
1       test                    72vD5orMS7tVykwtGHcCJVK5zzqL6h3jwb3spQBYR5qQVRcs2Jx1SQzWHozsqQqjWnKrrYE2MLiNu6PwwGQukm6nTk43SXV<PHONE_NUMBER>000<PHONE_NUMBER>000

requires 160 chars
but, if we were to reduce those addresses to include just the first and last 5 chars, then we get down to ~80
Total Balance:<PHONE_NUMBER>05607
Total Unlocked Balance:<PHONE_NUMBER>05607

        LABEL           TAG     ADDR           BALANCE         UNLOCKED BALANCE
0       Primary account         53G25...A91AX<PHONE_NUMBER>05607<PHONE_NUMBER>05607
1       test                    72vD5...43SXV<PHONE_NUMBER>000<PHONE_NUMBER>000

we could include an extra flag passed down to the pretty printers to toggle such behavior, something like --wrap which would  be true by default?

Flags:
  -a, --address string             full address of the monero node to reach out to [MONERO_ADDRESS] (default "http://localhost:18081")
...
      --shorten-addresses          whether addresses should be shortened when displaying pretty results (default true)

made it part of the global options so we can make that available to all commands via options.RootOptions.AddrFmter()

commit 680c4ce4175a4d873556ea5082cf1d6a4e3bc663
Author: Ciro S. Costa<EMAIL_ADDRESS>Date:   Thu Jul 22 07:48:48 2021 -0400

    add get-accounts; add addr shortener

    $ monero wallet get-accounts
    Total Balance:          390.31 ɱ
    Total Unlocked Balance: 390.31 ɱ

            LABEL           TAG     ADDR            BALANCE         UNLOCKED BALANCE
    0       Primary account         53G25..A91AX    389.31 ɱ        389.31 ɱ
    1       test                    72vD5..43SXV    1.00 ɱ          1.00 ɱ

    Signed-off-by: Ciro S. Costa<EMAIL_ADDRESS>


gitlab-runner: 12.2.0 -> 12.3.0

Motivation for this change
Update to latest version.
See: https://gitlab.com/gitlab-org/gitlab-runner/blob/v12.3.0/CHANGELOG.md
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @bachp @zimbatm @globin

@globin Thanks for the quick merge!


Test change

Test change 1

@pwiglemsft,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@pwiglemsft Given this is a test change, I'm going to close it for now.  It looks like everything went through though.


Add current subscription status

Would be nice to have information about currently active subscription, interval and expiration date

You imagine this as the user can ask for this info, like writing /subscription and then the info showing up?

I would think that it should be directly displayed on the main dialog (with buro selection and "reuse last selection" button), maybe something like that.
No need to have additional command since it's an extra action for users

I see two times it would make sense:
1 - You have already a subscription going on and you want the status. The user would need the command /start to get this info anyway.
2 - You have a subscription and the bot messages you every 2/3 days, or at the 4th day, so that you have a remainder and a confirmation that it working.
If you would prefer we could have a quick chat about it to decide on what to build.

What do you think about the images below?

Looks perfect 👍

Thanks!! I will clean the code and do a PR then. It would be great if you could review it and give me your feedback so that I can do changes needed.


About the learning method for joint_label.

Hello,
our paper has been very informative to me.
In the paper, it mentions using 'soft' partitions with the application of softmax. Does this mean that during training, labels are handled as probabilistic values rather than binary values? Also, how is this matrix initialized during training (zeros or a normal distribution)?"
Thank you very much for the help.

Please refer to this issue

Thank you for your reply. I apologize, but it seems I cannot open the url link due to an error. In the paper or in the Issues section, is there a description of how to initialize the parameterized partition matrix?
When I actually try to train, I'm having trouble because the probability values for each group in the partition matrix become equal.

Thank you for your reply. I apologize, but it seems I cannot open the url link due to an error. In the paper or in the Issues section, is there a description of how to initialize the parameterized partition matrix? When I actually try to train, I'm having trouble because the probability values for each group in the partition matrix become equal.

Hi,
the link works fine now. I simply initialized the partition matrix randomly and there was no problem. Could you check the dimensions carefully? Maybe you have applied softmax to the wrong dimension.

Thank you for your reply.
You're not performing any specific processing on the partition matrix, are you? (like regularization)
If that's the case, I'll check my code again.

Thank you for your reply. You're not performing any specific processing on the partition matrix, are you? (like regularization) If that's the case, I'll check my code again.

You're welcome. I had tried some regularization initially, but found it worked equally fine without any regularization in the end.

Hi,
the link works fine now. I simply initialized the partition matrix randomly and there was no problem. Could you check the dimensions carefully? Maybe you have applied softmax to the wrong dimension.

I have a question after trying several times.
"In the paper section 4.4, it is stated that softmax is applied to the column axis for H^(V×E), but in equation (8), softmax is applied to the row axis (with respect to e). Which one is  correct?"

Hi,
the link works fine now. I simply initialized the partition matrix randomly and there was no problem. Could you check the dimensions carefully? Maybe you have applied softmax to the wrong dimension.

I have a question after trying several times. In the paper section 4.4, it is stated that softmax is applied to the column axis for H^(V×E), but in equation (8), softmax is applied to the row axis (with respect to e). Which one is correct?
Hi,
Usually we call the first dimension as row and the second dimension as column, so it is consistent in our paper that we apply softmax to the E dimension. Please think twice before asking a question.
Thanks

Thank you for answering my questions repeatedly !


Termux (2.0.9) & Ubuntu/Aarch64 (2.0.1-1 & 2.0.9) Missing TC Colorschemes

Description of the problem or steps to reproduce
Installations in both Termux and Ubuntu with versions listed above am able to set Colorschemes to material-tc, cmc-tc, and gruvbox-tc (didn't test solarized) but atom-dark and GitHub gives error that they're not valid Colorschemes when attempting to set.
Specifications
Termux - Android 12 Beta - 2.0.9
Ubuntu - 2.0.1-1 & 2.0.9

Commit hash:
OS:
Terminal:

I am able to run > set colorscheme atom-dark without issue. Are you trying a different command? The GitHub colorscheme was removed in v2 because it did not use the correct colors.

Okay, I had never used Micro until now and therefore only had the lists in "help colors" and Github-tc was still included and when changing to the other -tc themes like gruvbox-tc I entered "set colorscheme gruvbox-tc" so I also was attempting the -tc at the end of atom-dark as well. So all good now thank you so very much. Apologies!

Thanks! I have updated the docs.


Extension issue

Issue Type: Bug
Extension Name: python
Extension Version: 2022.16.1
OS Version: Windows_NT x64 10.0.19044
VS Code version: 1.70.0

:warning: We have written the needed data into your clipboard. Please paste! :warning:

Thanks for the bug report, but unfortunately, we need some more information from you in order to triage this issue appropriately. Please follow instructions here to create a new bug with all the critical details we need for diagnosis.


VSCode switches between windows arbitrarily

Issue Type: Bug
I am running VSCode in OSX, after latest update it began to switch between windows arbitrarily. To reproduce:

open vscode full-screen
open two windows, switch to the second one
cmd-tab away from VSCode
cmd-tab back

it will show the first workspace, I'll have to switch again.

So you have one fullscreen and one non-fullscreen window? What are the "first" and "second" in your steps. Is this just the way MacOS handles fullscreen windows and cmd+tab between apps? I think it typically just focuses the window on the current screen, when you cmd+tab to an app.


Security: dependency confusion check

Add a duty that reads dependencies from pdm.lock and yields instance of a Dependency class which has an is_internal method that the user can override to implement their own logic (like checking if its name is in a set, or if it matches a regular expression). Then for every internal dependency, the duty asserts that it is absent from a given PyPI index (overridable as well). This way we ensure an internal dependency has no public counter-part that could lead to dependency confusion. Of course if public indexes are not reachable, the duty would be disabled.
Still not sure about implementing this though, as it is only useful in private contexts (which I have no interest in supporting in an opensource project).

Not interested anymore.


Update testcontainers-scala-postgresql, ... to 0.40.11

Updates

com.dimafeng:testcontainers-scala-postgresql
com.dimafeng:testcontainers-scala-scalatest

from 0.40.7 to 0.40.11.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.dimafeng" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.dimafeng" }
}]

labels: test-library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #148.


Password promptin

WHEN prompted for password criteria
THEN I select which criteria to include in the password

promp present for uppercase, lowercase, number and symbols


Call to a member function save() on a non-object in ClientStorage.php on line 97

Hi,
I am trying to connect to the websocket server using the example code in the wiki. But I get the error
Call to a member function save() on a non-object in ClientStorage.php on line 97

Which must means that the driver is null even though I think I configured it.
Here is my services.yml
    pdo:
        class: PDO
        arguments:
            dsn: mysql:host=%database_host%;port=%database_port%;dbname=%database_name%
            user: %database_user%
            password: %database_password%
        calls:
            - [ setAttribute, [3, 2] ] # \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION

    session.handler.pdo:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments: [@pdo, {lock_mode: 0}]

    gos_web_socket.client_storage:
        class: Gos\Bundle\WebSocketBundle\Client\ClientStorage
        arguments:
            - %web_socket_server.client_storage.ttl%
            - @?monolog.logger.websocket

    app.blinks_topic_service:
        class:  AppBundle\Topic\BlinksTopic
        tags:
            - { name: gos_web_socket.topic }
        arguments:
          - @gos_web_socket.websocket.client_manipulator

    gos_web_scocket.client_storage.driver.predis:
        class: Gos\Bundle\WebSocketBundle\Client\Driver\PredisDriver
        arguments:
            - @snc_redis.cache

And here is the config.yml
doctrine_cache:
    providers:
        redis_cache:
            redis:
                host: <IP_ADDRESS>
                port: 6379
                database: 3
        websocket_cache_client:
            type: redis
            alias: gos_web_socket.client_storage.driver.redis

snc_redis:
    clients:
        cache:
            type: predis
            alias: cache #snc_redis.client_storage.driver
            dsn: redis://<IP_ADDRESS>/2
            logging: %kernel.debug%
            options:
                connection_timeout: 0
                read_write_timeout: 30

gos_web_socket:
    server:
        port: 8080        #The port the socket server will listen on
        host: <IP_ADDRESS>   #The host ip to bind to
        router:
            resources:
                - @AppBundle/Resources/config/pubsub/routing.yml
    client:
        firewall: main #can be an array of firewalls
        session_handler: @session.handler.pdo
        storage:
            driver: @gos_web_socket.client_storage.driver.predis
            decorator: @gos_web_socket.client_storage.doctrine.decorator

Thanks

Hi,
Predis is not a decorated by Doctrine Cache, you don't need decorator here. Redis driver have one but not Predis.
So you can remove this line from your configuration :
 decorator: @gos_web_socket.client_storage.doctrine.decorator

Ok so I don't have the error anymore but the session is still not shared.
After login my session is stored in the database but I get an anon user in the websocket server.

May be because you are on different domain, it's cookie based so if the websocket is running on <IP_ADDRESS> you must access to your website via http://<IP_ADDRESS>. Is it the same domain ?
So if you are on http://my-site.tld, you should set the websocket on my-site.tld address

Everything is already running on <IP_ADDRESS> but anyway it works now even though I didn't touch anything since last time so it was a cache issue or something like that maybe.
Thanks for the help !

Ok glad to hear that ;)
Le 5 nov. 2015 10:25, Guillaume Marescaux<EMAIL_ADDRESS>a écrit :Everything is already running on <IP_ADDRESS> but anyway it works now even though I didn't touch anything since last time so it was a cache issue or something like that maybe.
Thanks for the help !
—Reply to this email directly or view it on GitHub.


Request: update sdks, remove buildToolsVersion

I think you can remove buildToolsVersion (including its usages), as it is automatically get chosen, and you can update various repositories versions:
ext {
    minSdkVersion = 14
    targetSdkVersion = 27
    compileSdkVersion = 27
    //        buildToolsVersion = "27.0.2"
    androidGradlePluginVersion = "3.0.1"
    androidMavenGradlePluginVersion = "1.5"
    gradleBintrayPluginVersion = "1.6"
    kotlinVersion = "1.2.21"
    supportLibVersion = "27.1.0"
    espressoVersion = "3.0.0"
    testRunnerVersion = "1.0.0"
    junitVersion = "4.12"
  }

Sounds reasonable, thanks.

Fixed by #414

Thank you!


Use distutils for cython version comparision.

Fixes #3003 (well, at least it won't raise an error... Hopefully, LooseVersion is the correct cython version format).

:+1:


Add support for instance parameters

This PR implements the notion of an instance parameter which can be accessed using a new API. All parameters can in theory become instance parameters (as long as the new per_instance slot is set to True). The main balance to strike here is that a) we do not want to pay the cost of copying parameters for all instances and b) we do not want users to have to add any special boilerplate to get instance parameters.
The approach I've therefore taken is to only make a copy of a parameter when it is actually needed. This means that all existing param code will never pay the cost of making instance parameters, there's only two situations where the per instance copy is made:

When a instance parameter attribute is watched. This is because you do not want events triggered by changes on the class parameter to trigger events on the instance parameter and vice versa.
The second situation when a copy is made is when one of the new APIs is used to access the parameter on an instance, e.g. when you access instance.param.param_name or instance.param['param_name']. This API will make it easy to change the attributes of instance parameters, but the old obj.params()/obj.param.params() method is unaffected by this.

Leaving the old API unaffected will ensure that old param code never pays the costs associated with instance parameters.

[x] Add new parameterized.param.__getitem__ and parameterized.param.__getattr__ accessors for parameters
[x] Modify setters to ensure they use instance parameters for validation
[x] Ensure that watching instance parameter attributes makes copies
[x] Add tests

Another thing to decide, a parameter already has an _owner slot which is usually the class but is now replaced when the instance when the parameter is copied. I feel like the owning instance will need to be public for a lot of the functionality we want to build so should we just remove the underscore or rename it completely?

The approach I've therefore taken is to only make a copy of a parameter when it is actually needed.

That seems like a good approach, but it seems to me that user code could use params() on an instance to get a Parameter object from the class, then one of the cases you outlined above would result in a per-instance copy to be made of that Parameter, and then the saved Parameter object would now be stale.  I guess the expectation is that such passing around of Parameter objects outside the class is not to be encouraged or supported anyway?
I guess making the owner be public would let you detect if this has happened...

Yes, that is a worry I share, I would indeed not encourage users to store a cache of parameters outside the instance and cannot envision any time I would have done this but then we can't prevent users from doing it either. This is also related to questions about the future API, do we expect to keep obj.param.params()? If we intend to say users should always access their parameters via the getitem/getattr on the Parameters object then we should probably also have a way to disable instance parameters at the class level instead of forcing users to set per_instance in each parameter constructor.

That all sounds reasonable to me.

I guess the expectation is that such passing around of Parameter objects outside the class is not to be encouraged or supported anyway?

Does that means this isn't compatible with https://github.com/pyviz/param/pull/317? I think there are valid uses of Parameters not bound to parameterized classes (and in that PR I use copy.copy to copy parameter instances).

Anyway, having stared at this a bit longer, I think the overall approach is sound. The tricky bit is figuring out the possible consequences of this API but I think the way the instance parameters are created and stored is reasonable.

Does that means this isn't compatible with #317

I don't think so; #317 is about building up Parameterized from Parameters; the restriction here is the other way around (i.e. that pulling a Parameter out from a Parameterized might have surprising behavior later).

@jbednar  That's what I thought. I just wanted to double check!

Okay I just wanted to summarize the outcome of our discussions today. The main starting point of our discussion was that the .params method was highly problematic in this new scheme because we had three bad options 1) it would always return class parameters for backward compatibility which would be confusing when instance parameters exist 2) it would always return instance parameters which would mean all kinds of old code would end up paying the unnecessary costs or 3) it would return the instance parameters at a particular point in time which would be confusing if a user cached them. The other reason we wanted to get rid of .params is because it was weirdly overloaded either returning a whole dict of params or a single parameter and because .param.params looks very redundant.
Therefore we decided we should replace with new API that is less ambiguous. In addition to the newly added __getitem__ and __getattr__ methods we therefore decided to add the following API:
Make foo.param an iterator over parameter names
list(parameterized.param)

This replaces code like this:
list(parameterized.param.params().keys())

Add a __contains__ implementation
param_name in parameterized.param

Replacing code like:
param_name in parameterized.param.params()

New .param.objects
Naming suggestions welcome, this method is roughly equivalent to .params but makes the choice between instance and class parameters explicit, the default is to return instance parameters and this will force copies of those parameters to be made, to force the return of class parameters you can do this:
foo.param.objects(instance=False)

One thing we hadn't discussed is that internal param (and external library) code wants to access the parameters as well and wants to avoid creating instance parameters if it's unnecessary. Therefore I've currently also allowed .param.objects(instance='current') which returns the parameter objects that are currently actually in use. Please suggest a better name for this option if you can think of one.
Warnings if using .params
Eventually we want to deprecate .params, however for the time being it should behave exactly as it did. To make sure this is safe and users don't accidentally use it to get a handle on class parameter instances when there are instance parameters we issue this warning:
The Parameterized instance has instance parameters created using
new-style param APIs, which are incompatible with .params.  Either use
the new APIs on the .param accessor, i.e. either .param.objects to
query all class or instance parameters or use .param[name] to access a
specific parameter object by name.

Disable instance parameters globally
We wanted to make the per_instance behavior to be toggleable globally, what we came up with was finding a way to set the default for Parameter.per_instance to False. I may be wavering on this as we'd have to use some tricks to get this to work with Parameter slots. The other suggestion was to add a special flag just like __abstract on the class, neither one of us was sure about this though.

Also I apologize for some of the diffs, I can't work on param without getting annoyed by the inconsistencies in spacing, outdated comments etc. so I ended up updating things that I touched.

That all sounds like a good plan. I agree that the .params method should be deprecated and then removed in 2.0, but it seems like we can do so in a compatible way that doesn't currently raise any warnings for old code. Basically, I don't think any old code will cause instance parameters to be created, so can we make .params() return class parameters only, but warn loudly if there are any instance parameters defined?  That way old code keeps working fine (and quietly) with param 1.x, but when we move to 2.0 we remove .params entirely.

Basically, I don't think any old code will cause instance parameters to be created, so can we make .params() return class parameters only, but warn loudly if there are any instance parameters defined?

That's exactly what we decided and what's implemented here.

That's exactly what we decided and what's implemented here.

Ok, great. I misread your description as warning if there are instance parameters allowed, but it sounds like it's only warning if there are actually any created on this object, which is what I was after.  I'm still sorting through the diffs...

I ended up renaming the .options(instance='current') to .options(instance='existing'). I also added a class decorator called disable_instance_params (better/shorter name welcome). This PR is now ready to merge.

Oh, one more thing, we added _owner to Parameters which now holds the owning instance on instance parameters but really we want a public API for this. Should I just add a owner property to make _owner public?

Should I just add a owner property to make _owner public?

Seems fine, though it seems simpler just to rename _owner to owner.

True, it's private API so it should be safe.

For convenience we should also make the _attrib_name slot public since that information is important to be able to watch the parameter.

Any objection to simply calling that name, which will be complemented by a label?

Sounds good.

This is ready to review and merge from my perspective. I'd like to merge and cut a dev release today.

I've also explicitly disallowed reusing Parameter instances on multiple classes, this would already have caused various issues but wasn't explicitly disallowed.

How about disable_instance_params to without_instance_params (or no_instance_params)? I don't think you are disabling instance parameters as such: instead you are stopping them from ever being created.

no_instance_params

It's already been renamed to that.

I don't think you are disabling instance parameters as such: instead you are stopping them from ever being created.

That's precisely why I suggested no_instance_params; good to see we are on the same wavelength.

Going to be very happy with the functionality offered by this PR. There is a potential pickling issue that may need to be addressed but once that is done and the tests pass, I am happy to see this merged.


CUDNN_STATUS_NOT_SUPPORTED

I tried to run the Examples code from https://github.com/fmassa/object-detection.torch/tree/refactoring.
It occurs a CUDNN_STATUS_NOT_SUPPORTED error, which is shown as follows:
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
In 1 module of nn.Sequential:
In 1 module of nn.ParallelTable:
In 1 module of nn.Sequential:
/scratch2/peng/torch/install/share/lua/5.1/cudnn/init.lua:58: ## Error in CuDNN: CUDNN_STATUS_NOT_SUPPORTED (cudnnSetFilterNdDescriptor)
stack traceback:
[C]: in function 'error'
/scratch2/peng/torch/install/share/lua/5.1/cudnn/init.lua:58: in function 'errcheck'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:45: in function 'resetWeightDescriptors'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:358: in function <...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:357>
[C]: in function 'xpcall'
/scratch2/peng/torch/install/share/lua/5.1/nn/Container.lua:63: in function 'rethrowErrors'
...atch2/peng/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function <...atch2/peng/torch/install/share/lua/5.1/nn/Sequential.lua:41>
[C]: in function 'xpcall'
/scratch2/peng/torch/install/share/lua/5.1/nn/Container.lua:63: in function 'rethrowErrors'
...h2/peng/torch/install/share/lua/5.1/nn/ParallelTable.lua:12: in function <...h2/peng/torch/install/share/lua/5.1/nn/ParallelTable.lua:10>
[C]: in function 'xpcall'
/scratch2/peng/torch/install/share/lua/5.1/nn/Container.lua:63: in function 'rethrowErrors'
...atch2/peng/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'compute'
./ImageDetect.lua:16: in function 'detect'
test_lp.lua:37: in main chunk
WARNING: If you see a stack trace below, it doesn't point to the place where this error occured. Please use only the one above.
stack traceback:
[C]: at 0x7fa8ac2e54e0
[C]: in function 'error'
/scratch2/peng/torch/install/share/lua/5.1/nn/Container.lua:67: in function 'rethrowErrors'
...atch2/peng/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'compute'
./ImageDetect.lua:16: in function 'detect'
test_lp.lua:37: in main chunk
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

The error comes from the following command:
scores, bboxes = detector:detect(I, bboxes)

Thanks for opening the issue.
The error probably comes from the fact that I saved my example module using CUDNN R2. I'll try to convert it to a newer version and I'll let you know

I didn't manage to reproduce the error on CUDNN R4 either. Are you able to run standard networks using cudnn ?

I updated to CUDNN R4. Now it works well. Thank you.
On Tue, Apr 12, 2016 at 2:32 AM, Francisco Massa<EMAIL_ADDRESS>wrote:

I didn't manage to reproduce the error on CUDNN R4 either. Are you able to
run standard networks using cudnn ?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/fmassa/object-detection.torch/issues/19#issuecomment-208815191

--
Best Regards,
Peng Lei
EECS, Oregon State University (OSU)
<EMAIL_ADDRESS><EMAIL_ADDRESS>1-541-737-7268

cool. closing it then.


Refactor all tests to e2edescribe

I need help with cleaning and dumping kubernetes. It will help to remove cleanIpPools method and move k8s test to the same paradigm.

@robbrockbank done.

Hi @aensidhe - this is looking good.  You had a question about how to handle tidy up of the k8s datastore.  Been thinking about this and I reckon the following would be good.
For k8s because we can't easily "delete everything", I would do the following:

Do a list query for each resource type and then trigger delete on each resource type (basically what I was doing in the delete pools function).
Do another list query to ensure things have been deleted.

We'd need to do that for each resource type for which full CRUD operations are supported on the k8s backend.  At the moment - just doing it for the pools is fine.
I think what this means for this iteration would be:

Update the pools test to call CleanDatastore or CreateCleanClient etc.
In CleanDatastore in the k8s branch just call through to DeletePools()
In DeletePools() add another branch to do a List after and verify that it's empty.

I'd be fine doing that later - but if you want to do that refactor that would be awesome too - let me know either way.

Awesome!  Thanks for doing this refactor!
LGTM.


Sz camera matrices access

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

Hey sorry, this was a brain fart; meant for a fork. Nothing to see here :)


Please Add My School UCC!

Please add my school Upper Canada College.
Thank You!

@JeffersonDing Pull request merged. Thank you!


Add open graph metadata to Tweak show page

Adds Facebook Open Graph metadata to the page to make for a better experience in Slack and Discourse when linking to the site.
Applies to #88

Coverage increased (+0.9%) to 86.822% when pulling dec23ae08881e3d700f2081e69311ff4cc622605 on open-graph-metadata into 2fe291887421726d663990db09de9e1a31c08c5c on master.

Coverage increased (+0.9%) to 86.822% when pulling d6b7c9f3bd619281677ea54c84723fd393b83fea on open-graph-metadata into e011b50d81e1abc4ee6059cb48272585312c5a78 on master.


Update benchdata/ packets to match test configurations

As part of the move to intel_mp, we turned on vmdq, to enable MAC
filtering and stamping.  Well it turns out that our benchdata/ actually
don't match the MAC addresses used by our lwaftr!  This commit updates
the benchdata to fix it, and also adds corresponding IPv6 packets for
all IPv4 packet sizes.
Created via:
  for s in 94 510<PHONE_NUMBER> 1046 1460 1500; do
    for v in 6; do
      n=$(printf '%4.4d' $s)
      sudo ./snabb packetblaster lwaftr --pcap /tmp/ipv$v-$n.pcap \
        --src_mac 44:44:44:44:44:44 --dst_mac 22:22:22:22:22:22 \
        --size=$(($s-54)) --b4=127:2:3:4:5:6:7:128,<IP_ADDRESS>,80 \
        --ipv4 <IP_ADDRESS> --aftr 8:9:a:b:c:d:e:f -$v
    done
  done

  for s in 54 94 510<PHONE_NUMBER> 1046 1460 1500; do
    for v in 4; do
      n=$(printf '%4.4d' $s)
      sudo ./snabb packetblaster lwaftr --pcap /tmp/ipv$v-$n.pcap \
        --src_mac 68:68:68:68:68:68 --dst_mac 12:12:12:12:12:12 \
        --size=$(($s-54)) --b4=127:2:3:4:5:6:7:128,<IP_ADDRESS>,80 \
        --ipv4 <IP_ADDRESS> --aftr 8:9:a:b:c:d:e:f -$v
    done
  done

In the generation script, should the size argument be decremented by 14 instead? Like this:
      sudo ./snabb packetblaster lwaftr --pcap /tmp/ipv$v-$n.pcap \
        --src_mac 68:68:68:68:68:68 --dst_mac 12:12:12:12:12:12 \
        --size=$(($s-14)) --b4=127:2:3:4:5:6:7:128,<IP_ADDRESS>,80 \
        --ipv4 <IP_ADDRESS> --aftr 8:9:a:b:c:d:e:f -$v

I ask because I think the pcap files in the PR are not sized matching their filenames (off by 40 bytes I think?).

@takikawa thanks for catching that!  indeed.  the ipv4 tests need to be decremented by 14, and the ipv6 tests by 54 (because the generation script subtracts that additional amount for IPv6 packets).

Force-pushed an update to reword commit log so the future can regen these files reliably.


Support unicode in turbodbc_arrow

Codecov Report

Merging #190 into master will decrease coverage by 1.74%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
- Coverage   97.65%   95.91%   -1.75%
==========================================
  Files         145      144       -1
  Lines        2989     2717     -272
==========================================
- Hits         2919     2606     -313
- Misses         70      111      +41

Impacted Files
Coverage Δ

...pp/turbodbc_arrow/Library/src/arrow_result_set.cpp
83.91% <0%> (-13.25%)
:arrow_down:

...urbodbc_arrow/Library/src/set_arrow_parameters.cpp
82.6% <0%> (-12.85%)
:arrow_down:

cpp/turbodbc_arrow/Library/src/python_bindings.cpp
100% <0%> (ø)
:arrow_up:

...urbodbc_arrow/Test/tests/arrow_result_set_test.cpp

python/turbodbc/cursor.py
99.48% <0%> (+0.51%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e1fd23d...0b9d935. Read the comment docs.

@MathMagique MS SQL and Arrow-on-Windows finally work 😍. Sadly I won't be able to hit the coverage target in this PR. We can add MS SQL to Linux in a follow-up PR though.


Nested model with Dict root init behaviour

Question
Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
             pydantic version: 1.6.1
            pydantic compiled: True
                 install path: /home/pawecich/.virtualenvs/foundation/lib/python3.8/site-packages/pydantic
               python version: 3.8.2 (default, Jul 16 2020, 14:00:26)  [GCC 9.3.0]
                     platform: Linux-5.4.0-42-generic-x86_64-with-glibc2.29
     optional deps. installed: ['typing-extensions']

Hello,
I'm trying to nest a model with custom Union[str, Dict] root type in another model and seem to be getting some inconsistent behavior during model init. Consider following code snippet:
from typing import Dict, Union

from pydantic import BaseModel, ValidationError

class StrDict(BaseModel):
    __root__: Union[str, Dict[str, str]]

    def __init__(self, *args, **kwargs):
        print(f"{kwargs=}")
        super().__init__(*args, **kwargs)

class StrDictModel(BaseModel):
    d: StrDict

print(StrDictModel(d='asdf').dict())
print()
try:
    print(StrDictModel(d={'k': 'v'}).dict())
except ValidationError as e:
    print(e)
print()
print(StrDictModel(d={'__root__': {'k': 'v'}}).dict())

This outputs:
kwargs={'__root__': 'asdf'}
{'d': 'asdf'}

kwargs={'k': 'v'}
1 validation error for Model
d -> __root__
  field required (type=value_error.missing)

kwargs={'__root__': {'k': 'v'}}
{'d': {'k': 'v'}}

In case of passing a string, it gets nested under the __root__ key automatically, which is not the case with the dict, which seems to require explicit nesting.
Is this expected?

Hi @Okonos
It is intended yes as described in https://github.com/samuelcolvin/pydantic/pull/1607:

This does not make that change at the outermost level, so .dict() still always returns a dict (as discussed in #1193).

Thanks, @PrettyWood
I admit I find it somewhat confusing. From the discussions linked I gather that this custom root functionality is to be changed in the next major version. Do you happen to know what the scope of the changes is going to be and if this particular behavior is to be addressed somehow?

I'm afraid it won't be available anytime soon (see https://github.com/samuelcolvin/pydantic/milestone/2)
@samuelcolvin is quite busy at the moment and the whole covid situation didn't help. Yet I agree we may need to put more effort on v2 (or at least give more visibility)

No problem, I believe it should be rather simple to work around.
Thanks again.


Files with underscore '_' in the filename are not detected

Hi,
Firstly, thank you for building this tool! Is has been a major help to our workflow when creating new project using a large shared code-base.
I have an issue since updating to the latest version. (I do not recall which version came before, but is used .ipcf files)
I started a clean EWARM project to test building a project with the latest version. Now when I try to add files using the EWPtool, files with an underscore in the filename (e.g. test_file.c) are not detected.
The weird part is that it does not seem to be consistent across all folders.

The project is a simple C application for a STM32 evaluation board with driver generated using STM32 CubeMX.
I have not had any issues like this before updating.
Is this a new issue with the tool, or am I using it wrong?
// Thanks

Hi @NotKasperNielsen,
Thanks for your detailed issue report. I am glad that our small utility could help you improve the productivity for your team. The tool evolved a lot since its conception, especially thanks to feedback we get from users like you.
Your assessment about the changes in the EWPtool v4.1.4 are correct. It was a major overhaul with many new advantages. Although it might come with some caveats. Please allow me to explain:
I tried to reproduce the issue from my end using a source file named with a underscore character in-between, but the procedure worked for me.
When using the utility with a STM32cubeMX project, I'd advise to point to the whole project's top level.
Please test the following approach on your end, based on the example you described:

Open the project.
In the IDE, choose Tools → Select source folder... and select the path you had displayed in the "Toolchain Folder Location" field from the STM32CubeMX's "Project Manager" tab.
Create an empty file in <path-to>\Core\Src named file_test.c.
In the IDE, choose Tools → Reescan selected source folders....

:bulb: It is also possible to verify the contents of the $PROJ_DIR$\settings\$PROJ_FNAME$.cfg file. Make sure that there is a single <selectedPath>..</selectedPath> key in the XML pointing to the top-level of the project (generally this is the path you have displayed in the "Toolchain Folder Location" field from the STM32CubeMX's "Project Manager" tab.

I hope it helps. Please let me know if you have further questions, otherwise feel free to close this issue.

Hi Felipe,
I really appreciate you responding so quickly.
I have tried to create a minimal example for to illustrate my issue.
https://github.com/NotKasperNielsen/STM32-G4-EWPtool-Example
As advised I tried to add the top folder, and the tried to copy a file and renamed it and did a re-scan. See results below:
I am actually have a hard time nailing the error pattern. In my Core/Src/ folder it seem that files named used _ are ignored. But it is not a problem under STM32G4xx_HAL_Driver/Src/.
Initial:

Re-scan

Accidentally closed to early

You're very welcome.
I will stay on v3.20 for now.


discussion: how to support multiple host nodes in vagrant

there are scenarios in which k8s-playground is used to control a distributed infrastructure (see issue #204), in this issue we discuss potential solutions
scenario 1: we have two hosts h1 and h2 on which we can run libvirt and kvm with nested virtualization (actually they are VMs, but we cannot influence their setup).
on each host we can run a libvirt vagrant provider and we would like to control them from a single vagrant instance running on h1, the vagrant instance on h1 will connect to libvirt1 locally and to libvirt2 provider remotely (of course this should be extendable to N libvirt providers!)
pre-requirements for scenario1: we install kvm and libvirt on each host, I think we should install vagrant-libvirt plugin only in the host h1 that runs vagrant
questions for scenario 1: we deploy our basebox only on host h1... when we do vagrant up of a VM on the libvirt2 provider... how can we tranfer the basebox ? (NB manual operations are OK!, we are already doing manual operations when we are creating the basebox)
(open thoughts follow... you are free to tell me, that this makes no sense :-) )
scenario 2 we consider h1 and h2 as "bare-metal" and we use vagrant only for their provisioning and configuration, we could think to a new "bare-metal" provider for vagrant, in which the "up" operation is void and only the "provision" operation is enforced... (so we are stretching vagrant into ansible??)
a small variant is that we use the vagrant up for the basebox, when we have the basebox, we manually deploy two instances of the basebox in our infrastructure (in our testbed we can do this via an openstack-like web GUI) so that they become h1 and h2, then we need to access h1 and h2 to run the provisioning, but we cannot interact with the "real" libvirt in this environment (for this reason we use "logical" libvirt and nested virtualization)

I suppose scenario 1 makes sense.
The vagrant-libvirt plugin exposes quite a few interesting settings. For example we might point to different libvirtd hosts for different VMs (master-1 and worker-1 run on host-1, while worker-2 runs on host-2).
There are no requirements (apart from the obvious connectivity ones) that restrict you in running Vagrant (with the vagrant-libvirt plugin installed) from any machine (even your laptop). So you might run Vagrant on host-1, or wherever you prefer.
To answer your questions about scenario 1:

we deploy our basebox only on host h1... when we do vagrant up of a VM on the libvirt2 provider... how can we tranfer the basebox ?

We don't transfer anything manually. We can run two instances of the base-box (one host-1 and one on host-2). We can then do two things to provision:

Run Ansible on one of them, and add both base boxes to inventory-base. PRO: we know this works, because that's what we do now when we run Ansible against masters and workers. CON (?): verify if provisioning takes longer than running two instances of Ansible in parallel.

Scenario 2: Vagrant is not a provisioner, not a configuration manager, so I guess we have way better luck in using Ansible alone (with a pinch of Terraform).

ok so I'll open issue(s) to proceed in the direction of scenario 1 !

See #208


add logging to BrotliEncoder

Motivation:
To improve my understanding of BrotliEncoder
Modification:
add logging statement to BrotliEncoder
Result:
BrotliEncoderTest logs this message:
DEBUG i.n.h.c.compression.BrotliEncoder - finish failure
io.netty.channel.StacklessClosedChannelException: null
	at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)

It appears that BrotliEncoder "finish" is failing because the channel is already closed.

cc: @hyperxpro

Logging this is not helpful and is also a terrible idea.
If a user calls finish(ChannelPromise) directly then it's not an issue at all since the user will be passing his own initialized ChannelPromise. Maybe we should lazy initialize ChannelPromise on close call and getter for it.

I am closing this Draft PR.  I only wanted to illustrate that BrotliEncoderTest logs a StacklessClosedChannelException

I am closing this Draft PR.  I only wanted to illustrate that BrotliEncoderTest logs a StacklessClosedChannelException

It appears that BrotliEncoder "finish" is failing because the channel is already closed.

BrotliEncoder fix: https://github.com/netty/netty/pull/13165