Nix package manager support

Hi there!
Is there any plan about nix support?
Thanks in advance.

Hi @interroobang
I don't think we've got any specific plans to do things with nix.  I've not used nix for a while, but I would have thought crux would just work if you were using nix?  Is there some specific functionality we'd need to add to make that the case?

Thanks for reply. There is bunch of framework and tools. Also platforms to support. I really love that ffi approach you build, I just don't want to install and define them one by one.
If there could be a universal configuration, installation file for needs, it will be good. Just nix first come to in my mind :)
Thanks again this work and project. It's very promising in my opinion.
I could close issue if you want.

Ah, I see.  So are you imagining nix as a way of scaffolding out a project or managing that scaffolding as you maintain the project going forward?

Ah, I see. So are you imagining nix as a way of scaffolding out a project or managing that scaffolding as you maintain the project?

Let me share something.
`{
description = "Nix flake for CRUX Hello World";
Flake inputs
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs"; # also valid: "nixpkgs"
rust-overlay.url = "github:oxalica/rust-overlay"; # A helper for Rust + Nix
};
Flake outputs
outputs = { self, nixpkgs, rust-overlay }:
let
# Overlays enable you to customize the Nixpkgs attribute set
overlays = [
# Makes a rust-bin attribute available in Nixpkgs
(import rust-overlay)
# Provides a rustToolchain attribute for Nixpkgs that we can use to
# create a Rust environment
(self: super: {
rustToolchain = super.rust-bin.stable.latest.default;
})
];
  # Systems supported
  allSystems = [
    "x86_64-linux" # 64-bit Intel/AMD Linux
    "aarch64-linux" # 64-bit ARM Linux
    "x86_64-darwin" # 64-bit Intel macOS
    "aarch64-darwin" # 64-bit ARM macOS
    "aarch64-apple-darwin"
    "aarch64-apple-ios"
    "aarch64-apple-ios-sim"
    "aarch64-linux-android"
    "wasm32-unknown-unknown"
    "x86_64-apple-ios"
  ];

  # Helper to provide system-specific attributes
  forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
    pkgs = import nixpkgs { inherit overlays system; };
  });
in
{
  # Development environment output
  devShells = forAllSystems ({ pkgs }: {
    default = pkgs.mkShell {
      # The Nix packages provided in the environment
      packages = (with pkgs; [
        # The package provided by our custom overlay. Includes cargo, Clippy, cargo-fmt,
        # rustdoc, rustfmt, and other tools.
        rustToolchain
        rustup
        nodejs-18_x
        nodePackages_latest.pnpm
        trunk
        deno
      ]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ libiconv ]);
    };
  });
};

}
`
Just a copy of a configuration that I found for being an example.
I tried and it works.
For trial, just copy the code, fill into flake.nix file on project root and type nix develop
I just don't want to install and configure all tools one by one, as I said before. By the way, I will try to make a flake file for all dependencies for all targets....
Thanks for reply.
Thanks for the crux project and your effort's.

Thanks for the flake.nix @interroobang.

I just don't want to install and configure all tools one by one

Is your intent to only build the core for crux or also a "shell" around it with nix? If the aim is an end-to-end solution, I think one could create some great flake.nix templates, e.g. with https://github.com/tadfisher/android-nixpkgs.
Disclaimer: just got into crux and evaluating a few options for the best e2e developer experience.


Add support for resource-id

Issue Description
There currently isn't a way to find elements by resource-id using appium/uiautomatorviewer.
react-native currently supports contentDescription via accessibilityLabel.  This is great for clickable elements, but not so great for testing other things like splash screen visibility.
I'd be more than willing to add support for this, but am currently not aware of how react-native builds the android views.  If someone could give me some guidance on how android:id could be added to a view then I'd most certainly be willing to give it a shot.  My understanding of android:id (per the View docs on IDs), is that it must be set in the XML prior to view creation.
I don't believe this is a duplicate of #7135, because I'm not proposing that we break the way testID currently works, more that I feel it would be nice if testID could add it's value to the corresponding view component in the XML.
Steps to Reproduce / Code Snippets

Add testID="something" to any component (e.g. View)
Run the app on an android device
Run uiautomatorviewer

You'll notice that resource-id is empty

Expected Results
resource-id has a value like com.myApp:id/something
Additional Information

React Native version: 0.32
Platform(s) (iOS, Android, or both?): Android.
Operating System (macOS, Linux, or Windows?): All

@tuckerconnelly referenced BaseViewManager here.  I'm thinking it could be modified to do something like this:
  @ReactProp(name = PROP_TEST_ID)
  public void setTestId(T view, String testId) {
    try {
      view.setId(R.id.class.getField(testId).getInt(null));
    } catch (Exception e) {
      // swallow
    }
    view.setTag(testId);
  }

The trick is gaining access to R which resides in the application's package.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out its new home: https://productpains.com/post/react-native/add-support-for-resource-id
ProductPains helps the community prioritize the most important issues thanks to its voting feature.
It is easy to use - just login with GitHub.
Also, if this issue is a bug, please consider sending a PR with a fix.
We're a small team and rely on the community for bug fixes of issues that don't affect fb apps.

@facebook-github-bot close

@facebook-github-bot label Icebox

Yes we need this as well.

Something new about this issue?
My testing crew is stuck without this. ;/

+1 that this will help testing

+1 need this for testing

PLZ, make us happy. Add resource-id support

+1, Please. It will make life easier.

+1

My workaround for testing right now is accessibility Label. However, this does not help with prelaunch Google Play testing :(

+1 our team finds this feature really helpful. Are there any plans on moving this forward?


[CI] Test against Ruby 2.5

Coverage increased (+5.5%) to 91.957% when pulling 3b29e3dc498ad1744f4e4227c8534be523bc3956 on nicolasleger:patch-1 into b36d065e24069b21d2429976e45fc62d8ed70645 on ondrejbartas:master.

@nicolasleger thank you for this update


Quantile Regression example

Script to demonstrate basic usage of quantile-regression. Will add full QR tutorial notebook in separate PR once our more advanced QR functionality has been completely added into autogluon.

Job PR-1040-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1040/1/index.html

Job PR-1040-2 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1040/2/index.html


release on npm

Get initial builds on npm to make the build-chain happy.
Might still need verdaccio for new stuff.

https://www.npmjs.com/search?q=%40deathbeds

Or perhaps:
https://www.npmjs.com/search?q=keywords:jyve


[WIP] Remove audit pkg to use library-go

This is the removal of pkg/operator/audit internal to the operator so that it can read the audit pkg from lib-go.

/test k8s-e2e-gcp-serial

how is this PR different from https://github.com/openshift/cluster-kube-apiserver-operator/pull/1074?

/test unit

/test k8s-e2e-gcp-serial

/test k8s-e2e-gcp

/test e2e-upgrade

/retest

@EmilyM1 looks like you need to update dependency, make update-vendor i think.

/test e2e-aws-operator-encryption

/test /test e2e-aws-operator


RKE2 customizable hostnameprefix

Is your feature request related to a problem? Please describe.
Within RKE1 we are able to implement our own namingconvention, we need to have this option in RKE2 as well. This because the audit will fail when we are not using the required namingconvension.
Describe the solution you'd like
RKE2 generate hostname based on the [clustername]-[poolname]-[random extension]. We urgently want to have the option to override this with our own naming convention like the RKE1 way.
Furthermore the hostname needs to be max 16 characters long, because of the registration with Active Directory (NETBIOS)
Requested option:

RKE1 style way of defining the hostnameprefix
OR
RKE2

Customizable hostnameprefix
set number of chars as postfix to make the hostname unique

Describe alternatives you've considered
We tried to rollout 1 Linux etc/control-plane, 1 Linux Workers and 1 Windows Workers and replaced the yaml hostnameprefix, rancher accept the change, but within a split second changed it back to the original hostnameprefix
Additional context
It think the requested feature doesn't require a lot of work for the Rancher support team because the requested feature already exist in RKE1.
We can't use RKE1 because RKE1 only support Windows Workers when using a Custom Cluster, RKE2 clusters created using the VMware vSphere provider supports Windows Clusters by default and Calico CNI is also supported, but doesn't match our naming convention and Active Directory server

We have the same problem with rke2 and harvester. The generated name is to long, so daemonset pods cont be started because the name of the container generated with the nodename is above 63 chars (50 from node name)


suicide-less water build

third time's the charm

i actually have a fully working version of lakes cjw but i figured it'll be better to see some potentials of the community


Add convenience structure for Indexed Merkle Tree

Problem
Indexed Merkle Tree is an efficient approach to prove non-membership, as when compared with Sparse Merkle Tree, it comes with:

Smaller tree size for the same number of leafs (as leafs are inserted incrementally, instead of having to cater for all possible leafs variants)
Support for batched leaf insertion

Hence resulting in more efficient leaf insertions.
Reference: Indexed Merkle Tree | Aztec Docs
Further to https://github.com/noir-lang/noir/issues/1080, a convenient function / library for developers to easily prove non-membership in Noir based on Indexed Merkle Trees would be desirable.
Proposed solution
Implement the reference linked above in Noir.
Alternatives considered
No response
Additional context
No response
Submission Checklist

[X] Once I hit submit, I will assign this issue to the Project Board with the appropriate tags.

Closing this as we likely want this to be done as a external library -- we provide the base primitive for computing the merkle root currently in the stdlib


Remove kernelbooted

Remove $kernel->on('kernel.booted_up', array($this, 'kernelBooted'));
This will be taken care in the microkernel, manually.

Done (https://github.com/pho-adapters/index-mysql/commit/6f022a8a804e7de852b5a54572bffed165bb3bb0)


Has no march silvermont

Could not compile dpdk-ans on my device:

[root@localhost dpdk-ans]# ./install_deps.sh
Start to generate librte_ans.a/librte_anssock.a/librte_anscli.a for -mnative.
Your native march is silvermont.
Your native march is none of westmere/sandybridge/ivybridge/haswell/broadwell/knl.
You may generate librte_ans.a/librte_anssock.a based on your -mnative by manual,
Or ask help from ANS develop team.

Yes, not comile ans lib for silvermont.

no feedback. close it.


Route list sort option "precendence" does not work anymore

Laravel Version: 9.4.1
PHP Version: 8.1.0
Database Driver & Version: irrelevant

Description:
The very handy feature sorting routes by their precendence by the artisan route:list --sort=precendence does not work anymore.
Steps To Reproduce:

Install a fresh Laravel project
Run command php artisan route:list --sort=precendence
See error exception

Accepted values are host, method, uri, name, action or middleware.

Is precedence spelled correctly on the commandline?

Sorting by precedence is currently not available.

I spelled with an extra "n" consistently here, thanks @epixian. Issue is updated to the correct precedence.
Anyways the problem is still exists. I also took a closer look: it was working with framework 9.0.2 and stopped working from 9.1.0

This value isn't an accepted one.


gate the stable_hash test to only run on little endinan machines

fixes #39 (I hope, lacking a test machine to verify on)

Double-checked that the test is still run on CI so this seems fine to me. Will you be able to confirm this fix after it merges?

Let me track down a machine to test this on before merging, I'll report back.

The change makes sense to me so I don't mind merging first if that's at all easier; I just want to be able to validate the issue is resolved at some point 🙂

@alexanderkjall still interested in merging this?

yes please, I didn't manage to scare up a test machine and are currently very short on free time :(


Custom AST Provision

Is your feature request related to a problem? Please describe.
Can CodeChecker capture issues without actually compiling the source files.
Can CodeChecker accept AST from user and parse results?

What is the motivation behind avoiding compilation?

As it is Static Code Analysis, why does it require compilation?

Because Clang (that CodeChecker drives under the hood) is a compiler itself. It builds the abstract syntax tree (that's what I mean by compilation), builds the control flow graph and does the analysis based on these. Of course, it doesn't do any further build steps, like linking or creating executable, etc.

One more thing is that clang doesn't compile the code in order to run it, so it is not a dynamic analysis. The compilation of the program (i.e. building the AST) fits in the terms of static analysis.

If there is no compilation means, here generating AST. Is it possible to generate a partial AST.
Have a look at this SO Ques.

Let me introduce some terms, so we can use the same meanings of these. When building a C/C++ program (with this command: clang++ main.cpp then many things happen: preprocessing, compilation, code optimization, linking, code generation, etc. Note, that I call these steps together as "building the program". Many times we're saying that "clang++ main.cpp" is the "compilation of the program", but I think this makes a confusion, because step 2 in the previous list is also named as "compilation" in the literature. And I think, the distinction is important here, and I use the word "compilation" in the terms of the 2nd phase of the build process. Sorry, if I talk too much, but I think, this is important here :)
So compilation is needed, because the AST is built in this step. This can't be done without having a declaration for every named entity (variables, functions, etc.) Since lacking a declaration for a used symbol is a syntax error, not having "windows.h" constitutes in a compiler error. I'm not sure if clang is capable to build a partial AST, but I don't know how a function's AST would look like if it doesn't know what the meaning of some symbols in it are.
I hope, I managed to answer your question, but if not, then let's continue the discussion.

Hi, @bruntib. Thanks for your valuable answer.
AST is part of Clang Front-end, they why does a compilation is needed?
The main reason i'm asking here is AST can be partial right?. PMD for Java will skip the missing classes and generate AST for the partial Java Source. I'm expecting a similar kind of behaviour. I know there is a lack of information, still i look it for. I'm not comparing PMD here with Clang. I know the fact that Clang is a compiler. Just asking if it would be possible. A got a solution similar to skip the missing headers. link. Adding to the fix, If i make the compiler to stop throwing missing errors, there may be definitions and missing functions. That's fine. I'm looking for a PARTIAL CODE ANALYSIS, instead of failing.
Just to know what i'm trying,
The reason why i go with partial AST is Clang doesn't have a full support for MSVC developed code. For some smaller piece of code, i faced with lot of errors as the code is not supported by clang and it is still compiled by MSVC (cl.exe). Issue 1, 2.

Hi,
Now I understand the intentions, thank you. I'm not aware if Clang is able to build a partial AST, it is possible, though. If this can be done with some clang compiler flag, then we could wire it to the CodeChecker interface. As far as I see, you made some investigation in the topic already. If you manage to find the proper clang parameters that could be appended to the analyzer invocation, then please, share it.

Thanks for your comment.


Add PHPUnit

Configure PHPUnit using composer
Update and move existing unit test into test/
Update readme to point to instructions on wiki

Verified that @richardpon has signed the CLA. Thanks for the pull request!


feat(binfiles): add bin, elf, and obj files

Signed-off-by: Adam Moss<EMAIL_ADDRESS>

yeah like I said, bin and obj are out because they are ambiguous -- and I've not seen .elf used -- only extensionless elf binaries

also search the tracker next time please -- #239
and don't use conventional commits, they're pure noise


[Hero] Refactor and match designs

Hero has some problems

hero should take children components like typography and button and lay them out nicely
hero should take an optional component for image
Illustration needs updated with this sweet Wizard to be added
if the image is added please use the layout seen below
do not use position absolute, use flex and give the image a max width and max height
it should scale as seen in this design perfectly no matter what content, children or image size is passed

make it killer DX @AbhinavMV and idiot proof 😁

Would be great if title is optional too

@locothedev i think it would be best of you passed it children and an optional image component, then you can use whatever text you like

@AbhinavMV maybe make the title optional for now and we can remove it over time so there is no big braking changes

This is closed by #762


Change how coverage reports are saved

Reports should be stored in separate files.  Right now if you run a single test you lose the results for all previous tests. In a large project it can take a long time to execute the entire test suite, losing all the coverage data is not fun.
When brownie checks if a contract should be recompiled, the same process can be used to delete coverage info for tests that have been changed.

Most of the way there on coverage branch as of commit f985e165565487365d0774db1daa36a095186897
still todo:

include hashes of the contracts and the test
delete coverage info when hashes change
flag to avoid running tests when hashes have not changed
updates to opview to understand new coverage format (this will take a minute)

This is an important first step towards #66 and #67.  Brownie's code isn't any cleaner, just differently bad.  But the new format for saving coverage results should be the final one so this clears up a lot of uncertainty for how things should be refactored in the future.

All changes on this side are complete, waiting until opview is updated before merging.


Split IdentityInterface

What's the problem?
Currently IdentityInterface contains both methods to get an identity and methods which belong to the identity instance. While it is OK in context of Active Record it is an obstacle for implementing repository and entity separated.
What is the expected result?
Being able to separately implement repository which responsibility is to get an instance of identity, and an entity which actually holds the data.
What do you get instead?
A single interface forces us to implement everything in a single class.
Additional info
That's how new interfaces would look like:
interface IdentityInterface
{
    public function getId();
    public function getAuthKey();
    public function validateAuthKey($authKey);
}

interface IndentityRepositoryInterface
{
    public static function findIdentity($id);
    public static function findIdentityByAccessToken($token, $type = null);
}

@dynasource, @cebe, @klimov-paul, @SilverFire thoughts?

Such change seems to be logical, but it make implementation more complicated.
Keep in mind that identity is bound to yii\web\User. There is a single property yii\web\User::$identityClass at the moment. Spliting IdentityInterface into several ones will also make yii\web\User to be more complex.
Current Identity finding methods findIdentity() and findIdentityByAccessToken() are static. Thier notation was inspired by ActiveRecord paradigm.
Extracting IndentityRepositoryInterface with static methods looks odd - those methods should not be static then: identity repository should be an instance, which finds instances of identity. Such change eliminates the ability of usage same ActiveRecord class for IdentityInterface and IndentityRepositoryInterface.
Keeping 'find' methods as static already allows you to create separated implementation for finding - it just need to be encapsulated in those static methods of Identity class.
I am against such change.

Keeping 'find' methods as static already allows you to create separated implementation for finding - it just need to be encapsulated in those static methods of Identity class.

It will be in the same class. Thus not separate.

It will be in the same class. Thus not separate.

class MyIdentity implements IdentityInterface
{
    // ....

    public static function findIdentity($id)
    {
        return Yii::$app->identityRepository->find($id);
    }
}

I'm positive applying the interface-segregation principle. In the end this will result to less complex code which is more flexible and easier to extend.

@klimov-paul right but that's adding intermediate class. Feels hacky. I understand your concerns about complicating yii\web\User though...

I need to actually attempt it to say if it's possible to do it w/o much hassle.

I'm all for it.

Разделять надо, т.к. IdentityInterface не должен уметь и находить и быть идентификацией, но репозитори интерфейс не нужен со статикой, его надо вынести в yii\web\User::findIdentity (там есть identityClass)

http://slides.rmcreative.ru/2016/yii2-architecture/#/26 =)

@lynicidn please use English in discussions which are conducted using English. Thanks.

@samdark ok, sorry, no problem, wait pr, may be i have wrong opinion

This makes sense to me as well.
Note that yii\web\User::$identityClass would then become yii\web\User::$identityRepository.
It no longer needs to know the class for an identity.
The parameter would accept an object or a configuration array or closure (as normal for Yii).
A basic ActiveRecordUserRepository could be implemented and provided with core, configuration would then become:
'components' => [
    'user' => [
        'identityRepository' => [
            'modelClass' => 'app\models\User'
        ]

While at it, would it be possible to add another method to the new IdentityInterface: something that produces a human-readable string of the underlying identity (such as getName(), getUsername() or getLabel())? It makes sense to me at least. What else is an identity if not an abstraction of a person, and as far as I know all humans come with a name.
I guess the reason why it was originally omitted is things like oauth where you don't necessarily obtain a string name? Maybe introduce as separate identity (e.g. HumanIdentityInterface) instead? Just something to consider.

Identity doesn't necessary represent a human. It could be API client or another project or a service.


Add recipient-country filter to budget endpoint

Is your feature request related to a problem? Please describe.
A common use-case is to analyse budgets for a particular recipient-country. The budget endpoint does not currently allow the data to be filtered in this way.
Describe the solution you'd like
Add recipient-country filter to the budget endpoint (both API and QB)

@Josh  As we have a duplicate ticket on this issue, I will close this one. Please check: https://app.zenhub.com/workspaces/iaticloud-5b8e865bb2cc7b6c78ece322/issues/zimmerman-zimmerman/iati.cloud/2100

duplicate


youtube-dl error - site: https://www.tf1.fr/tf1/jt-20h/videos/20-heures-11-juin-2019.html

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2019.06.08
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

youtube-dl --verbose --postprocessor-args "-bsf:a aac_adtstoasc" https://www.tf1.fr/tf1/jt-20h/videos/20-heures-11-juin-2019.html
[debug] System config: ['--prefer-free-formats']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--postprocessor-args', '-bsf:a aac_adtstoasc', 'https://www.tf1.fr/tf1/jt-20h/videos/20-heures-11-juin-2019.html']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.01.30
[debug] Python version 3.6.8 (CPython) - Linux-3.10.0-957.12.2.el7.x86_64-x86_64-with-centos-7.6.1810-Core
[debug] exe versions: ffmpeg 2.8.15, ffprobe 2.8.15, phantomjs 2.1.1
[debug] Proxy map: {}
[TF1] 20-heures-11-juin-2019: Downloading webpage
ERROR: Unable to extract wat id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 792, in extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 508, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/tf1.py", line 53, in _real_extract
    webpage, 'wat id', group='id')
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 992, in _html_search_regex
    res = self._search_regex(pattern, string, name, default, fatal, flags, group)
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 983, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)

Description

youtube_dl.utils.RegexNotFoundError: Unable to extract wat id;

Hello, why this bug is closed, I've the same issue with the last cersion


Schema/Parameter default value

I was surprised to find that the default value of a parameter needs to be expressed as default property on the parameter's schema. This confuses type default with endpoint parameter defaults. The type might not have a default but a parameter does.
Looking at schemas as on-off type descriptors there is no issue. However, usually implementations map the schema from a language type. E.g. mapping Java's Integer as integer. Such mappings would be held in a map source language type => Schema for reuse and identification of "the same type". If now the default, which is endpoint specific, is encoded as part of the schema this relation is broken and one would need to construct a key record with the source language type and the default value as components. This (hopefully) makes it clear that the default value in not a property of the schema but of the parameter and therefore it should be allowed to declared as field of the parameter directly.
Also when searching for the description of the default property of a Schema Object I could not find an actual declaration in any of the 3.x versions. But there are examples using it.

In addition the view that the default can be seen as a property of the parameter's type would be inconsistent with the required property of the parameter. If the former is the case than the required should equally be a contrarian of the type not the parameter itself.

@jbee required is outside of the parameter schema because in JSON Schema, required lives above the level of the individual property.  If there were a single overarching schema for parameters (as is being considered for 4.0 over in the OAI/sig-moonwalk repository), this would be more clear.  Arguably, default in JSON Schema should behave the same way, and it has in fact been argued that it should change or have a higher-level keyword added.
So while I agree with you that there's a mismatch between the handling of default and required, and that the required handling is more correct, the situation is inherited from JSON Schema.  And likely to be handled better in 4.0.
Changing this in 3.x would add work for implementors.  Is there anything that the current situation prevents you from doing?  If not, I think this is best closed as being more-or-less handled in Moonwalk by using one schema for all parameters:

OAI/sig-moonwalk#100

@jbee thanks for providing all of this detail!
It sounds like, fundamentally, this is a problem with JSON Schema's default being inside the property rather than analogous to required.  The case of potentially having a default in the Parameter Object is just a special case of that, just as having required in that object is a special case of supporting required across a set of things that are not all one JSON Schema.
The JSON Schema missing/defaultProperties/propertyDefaults/itemDefaults proposal that I linked to would solve this, and would naturally motivate including that keyword at the Parameter Object level.
You did not see default declared in OAS 3.x because it is inherited from the JSON Schema specification.  There might be some commentary on it in 3.0, but in 3.1 we gained full compatibility with JSON Schema and avoided mentioning anything that was sufficiently well-defined in JSON Schema draft 2020-12.
In general, we don't want to be adding more OAS-specific keywords to JSON Schema, although we have not definitively decided to never do it.  Of course, you can make your own JSON Schema extension and use it, particularly as there aren't any validation impacts (but there's always the question of tooling support).
I'll tag this for TSC review as it's a good case for deciding if there are circumstances where we'd want to expand our small set of custom schema keywords.  The fact that we'd want a companion keyword in the Parameter Object ties it to OAS more clearly than most such proposals.  Also, it's unclear that there will be movement on the JSON Schema side anytime soon.  If we did add a new keyword (in either the Schema Object or Parameter Object), it would go in 3.2.

My certainly very unpopular opinion is that it is a mistake to base one spec upon another as that by nature removes control from the very thing that should capture the essence of a solution to the original problem. It will push and limit the design in certain directions that might be far from where a good solution is found. Like in this case of the default which is straight forward as a information about the API behavior, yet because OpenAPI brought in the ballast of JSON schema this now becomes something different and difficult to decide and implement and there is even a good chance that the semantics it finally gets are not very helpful for the problem of describing how an API works.

@jbee you will be happy to know that we're actively discussing de-coupling from any specific schema technology in OAS 4 "Moonwalk".  I don't think there's a specific discussion for it in the OAI/sig-moonwalk repo right now, but it's mentioned in several discussions related to schemas, and we've been talking about it in the Tuesday morning Moonwalk meetings a lot.
We don't want to make up our own schema technology, but (in my view) we need a better description of the interface between schemas and OpenAPI "proper", which I think would highlight when aspects of the schema system leak out into OpenAPI portions (as with required in the Parameter Object, although that is likely solved in Moonwalk by modeling all parameters with a single schema).

I agree that default belongs as a property of parameter objects, just as required is -- the default in json schema is something else entirely really (and as Henry mentioned above, doesn't really work as intended anyway as it is just an annotation, and annotations are not provided for missing properties).
If default existed as a first-order property of parameter objects (and it could also be added for requestBody and response as well), it should be made clear that it is not to be confused with any default property in json schema (and indeed we can recommend against using that keyword in schemas).

At a practical level, can't default be specified separately from the "type" (base schema) and combined with allOf? E.g.
    parameters:
    - name: foo
       in: query
       schema:
         allOf:
         - $ref: '#/components/schemas/FooType'
         - default: 'bar'

    components:
      FooType:
        type: string

@mikekistler are you deliberately trying to sabotage or am I missing a joke here? April 1st has also been :thinking:

Apologies if I missed the point here. I was honestly trying to be constructive.

I had hopes that I made a compelling argument why it is wrong to put default on the "type" and why it is a property of the parameter. Putting it on the type but in a different way that is even more unnecessary complex is creative but not helpful :sweat_smile: So I felt compelled to shoot it down before someone says "Lets do that" :joy: Sorry!

I guess my confusion here is with the term "type". I know there is a type keyword in JSON schema, but you seem to be using the term to mean something else. Is that right, and if so what do you mean by "type"?

I guess my confusion here is with the term "type"

Because with regards to OpenAPI a schema is the equivalent of a type descriptor. The language we agree upon to describe data structures which in programming languages are modeled by types. Specifically as we do use OpenAPI to represent an API that is implemented in some language (unless that language is untyped or dynamically typed) there should be a 1:1 relation between a type in the source language and the OpenAPI schema we use to communicate said type. As I said earlier it is vital to maintain this 1:1 relation for reuse to keep the size of the resulting documents in check.
Yes, there is much more in JSON schema. That is another reason why it is not a good fit to be used in OpenAPI because most of the features of JSON schema are unnecessary complexity in OpenAPI as no language supports types that would be able to model this. The assumption that an implementation adds a OpenAPI descriptor "on top" of the code is another flawed idea. Anyone that thinks this is feasible has only ever worked with toy examples. In many real systems the sheer surface of the web API is so huge that it would be out of question to maintain a spec that layers on to of the functional code that constantly has to be checked to be "in sync" with what the code actually does and says. The only chance to have a OpenAPI document that is mostly correct is to derive the document from the code directly. And in that process the language types are becoming the schemas so that is why I call them types because that is what they are.

@jbee

Yes, there is much more in JSON schema. That is another reason why it is not a good fit to be used in OpenAPI because most of the features of JSON schema are unnecessary complexity in OpenAPI as no language supports types that would be able to model this.

As arguably the most prolific contributor to the JSON Schema spec in the past decade, I've been trying to argue this point (in agreement with you) for quite some time.  I continue to argue the point in the context of OpenAPI 4 (Moonwalk).

@handrews

I've been trying to argue this point (in agreement with you) for quite some time

Haha, nice. Arguing for practical simplicity sadly often only finds deaf ears. But I am happy to hold many unpopular opinions :joy:
Unfortunately I also tend to express them a bit blunt which isn't always appreciated :sweat_smile:
When it comes to JSON Schema I did implement the validation part in https://github.com/dhis2/json-tree and trying to understand the entirety of JSON Schema just enough to decide where to draw the line was very challenging to say the least.

@OAI/tsc review request:
I think that this boils down to requesting a default field at the Parameter Object level, separate from the Schema Object default.  So the question is:

Should we do this in 3.x?  (4.0 will change enough that this won't be a direct analogue, and it should be discussed in the OAI/sig-moonwalk repo anwyay)
If so, how to proceed?  I suspect this will require writing a proposal for 3.2, because the Parameter Object is already complex, and this would appear to have an interaction with the Schema Object default, which needs to be made very clear

If not, let's close this - there's definitely a real concern and a valid proposed solution, we just need to decide if this is worth putting into 3.x in some way or if we should just consider it holistically in 4.0.

I'd wait until we know how this will look in Moonwalk, then decide whether and how to downport it.

After discussion in the TDC call, I'm going to move this to moonwalk (by moving repos and then converting to a discussion - I'll edit the first comment to add a note explaining that it was filed in the context of 3.x).
@jbee this does not necessarily mean we won't fix it in a later 3.x, but we would rather address it holistically in 4 and then backport whatever makes the most sense.


Bidirectional lstm example #2093

This is an just simple example for bidirectional lstm.

@pluskid
We need a LSTM symbol implemented in python under mx.sym.LSTM so that it will be easier to replace LSTM in all examples with cudnn v5 lstm when we support it

@piiswrong yes agreed. The currently used LSTM in ptb and speech are a variant with some simplification. An implementation of a full version needs the broadcast multiplication feature. Need to check what variant of the LSTM cell is cuDNN v5 providing. What is our current status of supporting cuDNN v5? I am reluctant to upgrade having heard that they breaks a lot of APIs....

@pluskid We now support everything but LSTM cell in CuDNN v5. CUDA 7.5 is fine for CuDNN v5.

Glad to hear that mxnet will have a full support of LSTM.
Another think I want to ask is, is it easy to integrate baidu wrap-ctc without using torch module?

this is ready to be merged after combine the commits. see instructions http://mxnet.readthedocs.io/en/latest/how_to/contribute.html#how-to-combine-multiple-commits-into-one

sorry to response later. I combined the commits but find its already merged.
Thanks all.

@xlvector I am working on make this example python2/3 compatible. However, I find that the data folder and gen_data.py are missing in the current master branch. Could you take a look at this?

Thanks. The gen_data.py is very simple, it just generate whitespace seprated numbers in every line.
something like
for i in range(1000):
print ' '.join([x for x in sorted([random.randint(0, 100) for k in range 10)]
You can add this script in your PR.

ok I will put this gen_data into the lstm_sort.py directly. Thanks.


Add a custom partitioner

Use a custom partitioner to avoid schema clashes in a single file.

The mongoDb connector does not require a custom partitioner like the HDFS connector because it converts records to documents, it should not require a partitioner. But the mongoDB also failed at the same time as HDFS connector failed. So the reason we got an error before was because of a corruption in the schema registry, it was not recoverable.


Packages failure

Running the simplest flutter app with flutter_map causes this Exception:
type 'Bounds<num>' is not a subtype of type 'Bounds<double>' where
Bounds is from package:flutter_map/src/core/bounds.dart
num is from dart:core
Bounds is from package:flutter_map/src/core/bounds.dart
double is from dart:core

Dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.0
  flutter_map: ^0.0.1

imports and dart code:
import 'package:flutter/material.dart';
import 'package:latlong/latlong.dart';
import 'package:flutter_map/flutter_map.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new FlutterMap(
      options: new MapOptions(
        center: new LatLng(51.5, -0.09),
        zoom: 13.0,
      ),```
      layers: [
        new TileLayerOptions(
          urlTemplate: "https://api.tiles.mapbox.com/v4/"
              "{id}/{z}/{x}/{y}@2x.png?access_token={accessToken}",
          additionalOptions: {
            'accessToken': 'my api key from mapbox',
            'id': 'mapbox.streets',
          },
        ),
        new MarkerLayerOptions(
          markers: [
            new Marker(
              width: 80.0,
              height: 80.0,
              point: new LatLng(51.5, -0.09),
              builder: (ctx) =>
              new Container(
                child: new FlutterLogo(),
              ),
            ),
          ],
        ),
      ],
    );
  }
}

Can you try using a scaffold with OpenStreetMap and let me know if you still hit this issue?
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        body: new FlutterMap(
          options: new MapOptions(
            center: new LatLng(51.5, -0.09),
            zoom: 13.0,
          ),
          layers: [
            new TileLayerOptions(
              urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
              subdomains: ['a', 'b', 'c'],
              additionalOptions: {
                'accessToken': 'my api key from mapbox',
                'id': 'mapbox.streets',
              },
            ),
            new MarkerLayerOptions(
              markers: [
                new Marker(
                  width: 80.0,
                  height: 80.0,
                  point: new LatLng(51.5, -0.09),
                  builder: (ctx) => new Container(
                        child: new FlutterLogo(),
                      ),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }

Still same exception:
I/flutter ( 6918): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 6918): The following assertion was thrown building Container:
I/flutter ( 6918): type 'Bounds<num>' is not a subtype of type 'Bounds<double>' where
I/flutter ( 6918):   Bounds is from package:flutter_map/src/core/bounds.dart
I/flutter ( 6918):   num is from dart:core
I/flutter ( 6918):   Bounds is from package:flutter_map/src/core/bounds.dart
I/flutter ( 6918):   double is from dart:core
I/flutter ( 6918):
I/flutter ( 6918): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 6918): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 6918): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 6918):   https://github.com/flutter/flutter/issues/new
I/flutter ( 6918):
I/flutter ( 6918): When the exception was thrown, this was the stack:
I/flutter ( 6918): #0      new Bounds (package:flutter_map/src/core/bounds.dart:11:20)
I/flutter ( 6918): #1      SphericalMercator._bounds (package:flutter_map/src/geo/crs/crs.dart:86:39)
I/flutter ( 6918): #2      SphericalMercator._bounds (package:flutter_map/src/geo/crs/crs.dart:86:25)
I/flutter ( 6918): #3      SphericalMercator.bounds (package:flutter_map/src/geo/crs/crs.dart:93:32)
I/flutter ( 6918): #4      Crs.getProjectedBounds (package:flutter_map/src/geo/crs/crs.dart:43:24)
I/flutter ( 6918): #5      MapState.getPixelWorldBounds (package:flutter_map/src/map/map.dart:115:24)
I/flutter ( 6918): #6      _TileLayerState._resetGrid (package:flutter_map/src/layer/tile_layer.dart:173:22)
I/flutter ( 6918): #7      _TileLayerState._setView (package:flutter_map/src/layer/tile_layer.dart:85:7)
I/flutter ( 6918): #8      _TileLayerState._resetView (package:flutter_map/src/layer/tile_layer.dart:77:10)
I/flutter ( 6918): #9      _TileLayerState.initState (package:flutter_map/src/layer/tile_layer.dart:62:5)
I/flutter ( 6918): #10     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3734:58)
I/flutter ( 6918): #11     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter ( 6918): #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #13     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4738:32)
I/flutter ( 6918): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter ( 6918): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter ( 6918): #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter ( 6918): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter ( 6918): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
I/flutter ( 6918): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #25     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
I/flutter ( 6918): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #28     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter ( 6918): #29     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter ( 6918): #30     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter ( 6918): #31     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter ( 6918): #32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter ( 6918): #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter ( 6918): #36     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter ( 6918): #37     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter ( 6918): #38     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter ( 6918): #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter ( 6918): #40     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter ( 6918): #41     _LayoutBuilderElement._layout.<anonymous closure> (package:flutter/src/widgets/layout_builder.dart:118:18)
I/flutter ( 6918): #42     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2205:19)
I/flutter ( 6918): #43     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:107:11)
I/flutter ( 6918): #44     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1666:58)
I/flutter ( 6918): #45     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:740:15)
I/flutter ( 6918): #46     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1666:13)
I/flutter ( 6918): #47     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:205:5)
I/flutter ( 6918): #48     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #49     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:124:11)
I/flutter ( 6918): #50     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:256:7)
I/flutter ( 6918): #51     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:194:7)
I/flutter ( 6918): #52     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:338:14)
I/flutter ( 6918): #53     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #54     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #55     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #56     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #57     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1141:11)
I/flutter ( 6918): #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #59     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #60     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #61     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #62     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #63     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #64     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #65     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #66     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #67     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #68     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:2713:13)
I/flutter ( 6918): #69     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #70     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #72     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:509:15)
I/flutter ( 6918): #73     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #74     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #75     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #76     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #77     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #78     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #79     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #80     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #81     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #82     __RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin^^#U0^#U0.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 6918): #83     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 6918): #84     RenderView.performLayout (package:flutter/src/rendering/view.dart:125:13)
I/flutter ( 6918): #85     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1445:7)
I/flutter ( 6918): #86     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:709:18)
I/flutter ( 6918): #87     _____BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:270:19)
I/flutter ( 6918): #88     ______BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:622:13)
I/flutter ( 6918): #89     _____BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
I/flutter ( 6918): #90     ___BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter ( 6918): #91     ___BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter ( 6918): #92     ___BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7)
I/flutter ( 6918): #94     _Timer._runTimers (dart:isolate/timer_impl.dart:382:19)
I/flutter ( 6918): #95     _Timer._handleMessage (dart:isolate/timer_impl.dart:416:5)
I/flutter ( 6918): #96     _RawReceivePortImpl._handleMessage (dart:isolate/isolate_patch.dart:165:12)
I/flutter ( 6918): (elided one frame from package dart:async)
I/flutter ( 6918): ════════════════════════════════════════════════════════════════════════════════════════════════════
Syncing files to device Android SDK built for x86...

Thanks - I'll try to reproduce.  It seems like a simple fix.

Exception occurs when running app with --preview-dart-2

ah that makes sense. I'll try to find some time to work on this.

Facing the same problem. Is there any updates?

@zhangshu1 what version of flutter_map are you using? this should be fixed in ^0.0.3

@johnpryan Thanks! It fixed!

flutter:             child: RenderPointerListener#3462c relayoutBoundary=up6
flutter:           child 2: RenderConstrainedBox#7fc99 relayoutBoundary=up5
flutter:             child: RenderSemanticsAnnotations#76aa6 relayoutBoundary=up6
flutter:           child 3: RenderStack#18df4 relayoutBoundary=up5
flutter:             child 1: RenderTransform#37fd6 relayoutBoundary=up6
flutter:           child 4: RenderPointerListener#ede90
flutter:     child 2: RenderLimitedBox#2f89a relayoutBoundary=up2 NEEDS-PAINT
flutter:       child: RenderConstrainedBox#a21bd relayoutBoundary=up3 NEEDS-PAINT
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
flutter: Another exception was thrown: 'package:flutter/src/rendering/stack.dart': Failed assertion: line 666 pos 12: 'child != null': is not true.
flutter: Another exception was thrown: 'package:flutter/src/rendering/stack.dart': Failed assertion: line 666 pos 12: 'child != null': is not true.
flutter_map: "^0.6.1"

@shinygang source code / pubspec.yaml please

@shinygang can you file a separate issue for this please? thank you

@johnpryan #344


Serverspec's port should_be_listening does not work with kitchen-docker

Hi - thank you for providing this great project!
I have tried to migrate our Vagrant-based testing to a Docker-based approach to save ourselves some minutes on each instance. Unfortunately, when it comes to asserting the availability of a port in Serverspec via:
describe port(9998) do
  it { should be_listening }
end

this leads to the following result:
Port "9998"
 should be listening (FAILED - 1)

Failures:
 1) Port "9998" should be listening
    Failure/Error: it { should be_listening }
      expected Port "9998" to be listening

Here is an excerpt of my .kitchen.yml:
---
provisioner:
  name: chef_zero

driver:
  name: docker

platforms:
  - name: debian-7.4
    run_list:
      - recipe[apt]
      - recipe[java]
    attributes:
      java:
        jdk_version: 7

suites:
  - name: collector
    run_list:
      - recipe[dynatrace::collector]

The availability of the port is successfully asserted when using the kitchen-vagrant driver. I have also figured out that the port can be accessed from inside the Docker container via a simple telnet localhost 9998.
Thanks!

What base image are you using? Serverspec requires netstat for that matcher to work, which isn't included in most slimmed down Docker images. Add package 'net-tools' to your test code?

Thanks for the hint. As most users will likely use slimmed down images in their .kitchen.yml it may be worth mentioning this dependency in README.md? Anyway, thanks for the help!


Allow custom icon for notify()

From @GoogleCodeExporter on May 31, 2015 11:24
Allow use of custom icon (through specifying the path to an icon file) for
notify(). An images speaks thousand words! User should be responsible for
picking an image of appropriate size (32x32 I think), and there should a
check for existence and appropriateness of the image file and defaults to
the default image if the check is not passed.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 11 Oct 2009 at 2:14
Copied from original issue: damonkohler/android-scripting#121

From @GoogleCodeExporter on May 31, 2015 11:24
Also it is not convenient that in the project which uses SL4A, we are obliged
to create an icon to make notify() work.
If we do not have such icon in the resources of our custom project  - the
notification just will not be shown without any exception or log entry.
Possible solution: add exceptions to any RPC methods being called without
proper parameters to make it easier to debug,

Original comment by<EMAIL_ADDRESS>on 20 Oct 2011 at 10:22

From @GoogleCodeExporter on May 31, 2015 11:24
Original comment by<EMAIL_ADDRESS>on 2 May 2010 at 3:02

Added labels: Type-Enhancement
Removed labels: Type-Defect


Edit CONDUCT.md

Edit CONDUCT.md to include the code of conduct for contributing to your project. The intention behind creating this file is fostering a healthy and positive work dynamic. Recall that you already have done something similar in DSCI 522, and you can start with that document and adapt it for your new team. Note that when you create the project structure with the methods above, a default version of this file will be created. You may choose to use it or adapt it with appropriate attributions.

Used default version of conduct file. Closing this issue.


Shebangs are moved after imports

When I sort a file that starts with a shebang, the shebang is moved after the imports, thus making the syntax incorrect.
Given this file:
#!/usr/bin/env node
import chalk from 'chalk';
import program from 'commander';

program
    .version(require('../package.json').version);

If I try to save the file, I end up with:
import chalk from 'chalk';
import program from 'commander';
#!/usr/bin/env node

program
    .version(require('../package.json').version);

...which is invalid JS/TS syntax (and is not understood by linux anyways). Because of this, I must disable the extension on all node cli projects.
Fix suggestion (also fixes #33 and file-scoped/top-level JSDoc comments):
When sorting a file, try to figure out a group of import statements and only rearrange imports inside this block without touching everything around it. In my example, I've surrounded the group of imports with square brackets:
#!/usr/bin/env node
[import chalk from 'chalk';
import program from 'commander';]

program
    .version(require('../package.json').version);

Import should only be sorted "inside" my square-bracket-surrounded block of text. Everything before stays as-is.

With the release of Typescript 2.8 over a year ago, the ability to organize imports comes bundled with Typescript, in a better implementation than this one made for a hack week. As such, I have no further plans to maintain this project.
If for whatever reason you would like to take ownership of this repository, please let me know.

I didn't know about Typescript's own import organizer. I've switched to it and everything works fine. Thanks for answering!


Clarify license

Summary
RustPython uses https://github.com/mhogrefe/malachite which is licensed as LGPL.
This does impact the licensing of projects(non-open-source) that embed RustPython.
Do you think this should be mentioned in the documentation?
Just the LICENSE is not clear enough.
Details

Thank you, that's a good point.
I think we still can support num-bigint instead of malachite-bigint without code change. (except for import)
We need to maintain feature flag for that and documentation.

Oh, I could work on adding the feature flag for it then.
Just started looking at this project. Will figure out the 'num-bigint' dep part.

It seems like the Parser's format crate makes the malachite a hard dependency
https://github.com/RustPython/Parser/blob/main/format/Cargo.toml
Also embedding examples not working with tag 0.3.0 can be related.
In fact on my machine MacOS, with the latest Rust(1.74) the Parser doesn't event compile
   Compiling rustpython-ast v0.3.1 (/Users/h7kanna/Repos/RustPython/Parser/ast)
   Compiling rustpython-format v0.3.1 (/Users/h7kanna/Repos/RustPython/Parser/format)
error[E0252]: the name `bigint` is defined multiple times
  --> ast/src/lib.rs:28:9
   |
26 | pub use malachite_bigint as bigint;
   |         -------------------------- previous import of the module `bigint` here
27 | #[cfg(feature = "num-bigint")]
28 | pub use num_bigint as bigint;
   |         ^^^^^^^^^^^^^^^^^^^^ `bigint` reimported here
   |
   = note: `bigint` must be defined only once in the type namespace of this module
help: you can use `as` to change the binding name of the import
   |
28 | pub use num_bigint as other_bigint;
   |         ~~~~~~~~~~~~~~~~~~~~~~~~~~

For more information about this error, try `rustc --explain E0252`.
error: could not compile `rustpython-ast` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `rustpython-ast` (lib test) due to previous error

Also these packages are under the Business Source License:
BSL-1.0 (2): clipboard-win, error-code
Might want to migrate away from those dependencies. because BSL is not a open source license.
In addition, it says in the terms, that the software must not be used in production. Meaning for anything other than testing or hobby.
Just a heads up.
I used the cargo-license crate to check.


Service "pix_sortable_behavior.position.orm" not found

Service "pix_sortable_behavior.position.orm" not found: even though it exists in the app's container, the container inside "Pix\SortableBehaviorBundle\Controller\SortableAdminController" is a smaller service locator that only knows about the "doctrine", "form.factory", "http_kernel", "logger", "parameter_bag", "request_stack", "router", "security.authorization_checker", "security.csrf.token_manager", "security.token_storage", "serializer", "session", "sonata.admin.audit.manager", "sonata.admin.object.manipulator.acl.admin", "sonata.admin.pool", "sonata.admin.request.fetcher", "translator" and "twig" services. Try using dependency injection instead.

@nilov Did you find a solution for this problem?

The easiest way is to copy the controller to app scope and replace all dependencies with recent ones.


Initially write to temporary file, then rename

Initially write the HDUs to a file with the format {filename}.[random chars], then rename to {filename}.

This was implemented in 30aad42


Bug 1.6.0 -> 1.6.3: After update forms submit to a wrong routes

https://github.com/viewflow/django-material/commit/c525e9578dd8126581f806001721ff1609e7c2d5#diff-f4d3a6d290858d0bb8b34ee5bb6c0f0bR44

The _performPost was changed and leads to a wrong post-url:
Mostly the current location.search is an empty string "" the code above sets it to . which is a relative notation and transforms the url and makes it invalid, check the miss-behaviour:

Don't you have APPEND_SLASH==True? https://docs.djangoproject.com/en/3.0/ref/settings/#append-slash

APPEND_SLASH is enabled, but you have right, the route path was without a slash at the end:
    path('add/event', service_assignment_create_view, name="service_assignment_add_event"),

I've just changed it to:
    path('add/event/', service_assignment_create_view, name="service_assignment_add_event"),

and it worked. thanks


Print a Code128 with small size

Hi, based on the demo, I am trying to generate a small (3cm) barcode using Code 128. The full size is nice but I cannot read it when with that size. The spacing of 0 and 1 seems not to get correct, seems to cut, I dunno. What properties should I look at to fix it?
Thank you!

Which data you used to generate the barcode?

Simple string like "ABCDEFGHI 12345678", if the image length is about
250px, ie., it prints nicely and the reader can scan. We need a size of
3.5cm.
An old Delphi shell application can print it but using PPLA commands.
Em ter, 23 de abr de 2019 16:14, Sven Harazim<EMAIL_ADDRESS>escreveu:

Which data you used to generate the barcode?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/landrix/Zint-Barcode-Generator-for-Delphi/issues/6#issuecomment-485937656,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB2CEEWIYXDLEZ5AMKCPDDLPR5N3BANCNFSM4HHL3HYQ
.


kubeadm doc needs to explain what it's doing

kubeadm doc (http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm) just says kubectl apply -f calico.yaml but it should also explain what it's doing so users can modify the manifest if they understand what it's doing.

This is discussed in the hosted introduction page.
http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/


generate missing case statements for switch(enum)

https://docs.wholetomato.com/default.asp?W644

This should be available now. There's some cases that won't work but mostly should be good for switches over enum. Assuming you are on clangd-12

Ah I see, sorry. It does work on enum and enum class.
I accidentally tried it on an enum wrapper like
struct E
{
    enum Values { A, B } v;

    constexpr E(Values v = {}) : v(v) {}
    constexpr operator Values() const { return v; }

So would be great if it took implicit conversions into account.

This is not documented on under features


Python 2.7.15 doesn't respect swallow_exc

Running the following simple code with python 2.7.15:
from stopit import ThreadingTimeout

def func():
    with ThreadingTimeout(1, swallow_exc=True):
        import time; time.sleep(2)

if __name__ == '__main__':
    func()

I get the following exception being thrown:
Traceback (most recent call last):
  File "main.py", line 8, in <module>
    func()
  File "main.py", line 5, in func
    import time; time.sleep(2)
  File "py_envs/py2/lib/python2.7/site-packages/stopit/utils.py", line 87, in __exit__
    self.suppress_interrupt()
  File "py_envs/py2/lib/python2.7/site-packages/stopit/threadstop.py", line 65, in suppress_interrupt
    self.timer.cancel()
  File<EMAIL_ADDRESS>line 1066, in cancel
    def cancel(self):
stopit.utils.TimeoutException

When I run with python 3 I don't get any output as expected, because I've swallowed the exception. Any ideas?

I had a similar issue.  For me it was just the stopit log messages getting written to my console.  This cleared it up for me:
import logging
stopit_logger = logging.getLogger('stopit')
stopit_logger.setLevel(logging.ERROR)


elpi: 1.2.0 -> 1.4.1

Motivation for this change
Upgrade elpi to latest version
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)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] 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)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@vbgl is it ok?

Does it subsumes #63727?

@vbgl It does since this is a derivation for release 1.4.1 from yesterday, but your derivation in #63727 was smaller (I did not try to filter out unused dependencies since 1.2.0)

@vbgl now should be strictly one release bump from #63727

@GrahamcOfBorg build ocamlPackages.elpi


check nil pointer and throw panic

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:SinghamXiao/distribution.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842353977896
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.


Generate Release Notes Task failing with unexplained error

VSTS Extension you are using
Generate Release Notes task
Where are you running it?
VSTS
Version of Extension/Task
Public / Latest
Expected behavior and actual behavior
All of the sudden I am seeing the following message in the log output for the task. No changes have been made to the task config or the template since the last successful execution. I haven't defined a parameter named "Message" anywhere so I don't know what is causing the problem.
Cannot bind argument to parameter 'Message' because it is null.
Steps to reproduce the problem
Run the build definition with the task in it.

This is down to the revised error handling. You have at have in your template that the task cannot render. Hence the message.
As long as you are happy with the release notes generated you can ignore the message.
To fix it check your output against your template, check the first line not rendered and look at the variables you are using, one will be null (or one of it's properties).

Thank you very much!
Jason
From: Richard Fennell<EMAIL_ADDRESS>Sent: Wednesday, February 22, 2017 14:03
To: rfennell/vNextBuild<EMAIL_ADDRESS>Cc: Jason Phelps<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [rfennell/vNextBuild] Generate Release Notes Task failing with unexplained error (#79)
This is down to the revised error handling. You have at have in your template that the task cannot render. Hence the message.
As long as you are happy with the release notes generated you can ignore the message.
To fix it check your output against your template, check the first line not rendered and look at the variables you are using, one will be null (or one of it's properties).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/rfennell/vNextBuild/issues/79#issuecomment-281767956, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYwhatJWEc_RhYjzAoQPDg9pdStIVk7Aks5rfIaBgaJpZM4MI5dk.
Disclaimer: This communication may contain information that is confidential and is intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender immediately and destroy all copies of the message. If you are not the named addressee you should not disseminate, distribute or copy this e-mail and you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.

Have been trying to get the extension to work as well, but I struggle with the exact same issue.
I've created an empty release definition and linking build artifacts to it, added one step, the release note generator, with the inline example that is listed here, specifically for releases. However, it's yielding the same result, a blank (placeholders replaced by void) template, with the error messages as above outputted in the log. Even the release number is not filled in.

Can you set the build or release (which is it) to generate debug, set the variable system.debug to true
Then upload the log so I can see what is happening

Sure, I had set it to debug=true already, here's the log (I sanitized a few things):

2017-02-22T21:46:07.8471442Z ##[section]Starting: Generate release notes
2017-02-22T21:46:07.8940210Z ==============================================================================
2017-02-22T21:46:07.8940210Z Task         : Generate Release Notes
2017-02-22T21:46:07.8940210Z Description  : Generates a Markdown Release notes file
2017-02-22T21:46:07.8940210Z Version      : 2.5.1
2017-02-22T21:46:07.8940210Z Author       : Black Marble
2017-02-22T21:46:07.8940210Z Help         : Version: 2.5.1. More Information
2017-02-22T21:46:07.8940210Z ==============================================================================
2017-02-22T21:46:07.9408973Z Preparing task execution handler.
2017-02-22T21:46:10.1597177Z Executing the powershell script: C:\agent\xxxx_work_tasks\GenerateReleaseNotes_661bc005-61be-430f-b994-065bf08c0f39\2.5.1\GenerateReleaseNotes.ps1
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddCommand(C:\agent\xxxx_work_tasks\GenerateReleaseNotes_661bc005-61be-430f-b994-065bf08c0f39\2.5.1\GenerateReleaseNotes.ps1)
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - Add inputParameters
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddParameter(outputfile=C:\agent\xxxx_work\r4\a\releasenotes.md)
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddParameter(outputVariableName=$(TestOutput))
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddParameter(templateLocation=InLine)
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddParameter(templatefile=C:\agent\xxxx_work\r4\a)
2017-02-22T21:46:10.5034770Z ##[debug]PowerShellHandler.Execute - AddParameter(inlinetemplate=#Release notes for build $defname
2017-02-22T21:46:10.5034770Z $($build)
2017-02-22T21:46:10.5191044Z ###Associated work items
2017-02-22T21:46:10.5191044Z @@WILOOP@@
2017-02-22T21:46:10.5191044Z * $($widetail)
2017-02-22T21:46:10.5191044Z @@WILOOP@@
2017-02-22T21:46:10.5191044Z ###Associated change sets/commits
2017-02-22T21:46:10.5191044Z @@CSLOOP@@
2017-02-22T21:46:10.5191044Z * $($csdetail)
2017-02-22T21:46:10.5191044Z @@CSLOOP@@)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - AddParameter(usedefaultcreds=true)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - AddParameter(emptySetText=None)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - AddParameter(generateForOnlyPrimary=false)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - AddParameter(generateForCurrentRelease=true)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - AddParameter(overrideStageName=)
2017-02-22T21:46:10.5191044Z ##[debug]PowerShellHandler.Execute - Invoke
2017-02-22T21:46:10.5191044Z ##[debug]Loading module from path 'C:\agent\xxxx_work_tasks\GenerateReleaseNotes_661bc005-61be-430f-b994-065bf08c0f39\2.5.1\GenerateReleaseNotes.psm1'.
2017-02-22T21:46:10.5191044Z ##[debug]
2017-02-22T21:46:10.5191044Z    public enum Mode
2017-02-22T21:46:10.5191044Z    {
2017-02-22T21:46:10.5191044Z       BODY,
2017-02-22T21:46:10.5191044Z       WI,
2017-02-22T21:46:10.5191044Z       CS,
2017-02-22T21:46:10.5191044Z       BUILD
2017-02-22T21:46:10.5191044Z    }
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-BuildWorkItems'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-BuildChangeSets'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-Detail'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-Build'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-Release'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-BuildReleaseArtifacts'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Add-Space'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Invoke-GetCommand'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Render'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-Template'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-Mode'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Add-StackItem'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Invoke-Template'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-BuildDataSet'.
2017-02-22T21:46:10.5191044Z ##[debug]Exporting function 'Get-ReleaseByDefinitionId'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Add-Space'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Add-StackItem'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-Build'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-BuildChangeSets'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-BuildDataSet'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-BuildReleaseArtifacts'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-BuildWorkItems'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-Detail'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-Mode'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-Release'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-ReleaseByDefinitionId'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Get-Template'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Invoke-GetCommand'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Invoke-Template'.
2017-02-22T21:46:10.5191044Z ##[debug]Importing function 'Render'.
2017-02-22T21:46:10.5191044Z ##[debug]collectionUrl = [https://xxxx.visualstudio.com/]
2017-02-22T21:46:10.5191044Z ##[debug]teamproject = [xxx]
2017-02-22T21:46:10.5191044Z ##[debug]releaseid = [702]
2017-02-22T21:46:10.5191044Z ##[debug]releasedefid = [11]
2017-02-22T21:46:10.5191044Z ##[debug]stageName = [xxx]
2017-02-22T21:46:10.5191044Z ##[debug]overrideStageName = []
2017-02-22T21:46:10.5191044Z ##[debug]buildid = [1192]
2017-02-22T21:46:10.5191044Z ##[debug]defname = [EDF - AX - Nightly build]
2017-02-22T21:46:10.5191044Z ##[debug]buildnumber = [<IP_ADDRESS>]
2017-02-22T21:46:10.5347288Z ##[debug]outputVariableName = [$(TestOutput)]
2017-02-22T21:46:10.5347288Z ##[debug]In Release mode
2017-02-22T21:46:10.5347288Z ##[debug]Only processing current release
2017-02-22T21:46:10.5347288Z ##[debug]Getting details of release [702] from server [https://xxx.visualstudio.com//xxx]
2017-02-22T21:46:10.5347288Z ##[debug]Using default credentials
2017-02-22T21:46:10.5347288Z ##[error]System.ArgumentException: Invalid JSON primitive: .
2017-02-22T21:46:10.5347288Z ##[debug]Processed: ##vso[task.logissue type=error;]System.ArgumentException: Invalid JSON primitive: .
2017-02-22T21:46:10.5347288Z    at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()
2017-02-22T21:46:10.5347288Z    at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
2017-02-22T21:46:10.5347288Z    at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
2017-02-22T21:46:10.5347288Z    at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
2017-02-22T21:46:10.5347288Z    at Microsoft.PowerShell.Commands.JsonObject.ConvertFromJson(String input, ErrorRecord& error)
2017-02-22T21:46:10.5347288Z    at Microsoft.PowerShell.Commands.ConvertFromJsonCommand.ProcessRecord()
2017-02-22T21:46:10.5347288Z    at System.Management.Automation.CommandProcessor.ProcessRecord()
2017-02-22T21:46:10.5347288Z ##[debug]Discovered [1] releases for processing
2017-02-22T21:46:10.5347288Z ##[debug]Processing the release []
2017-02-22T21:46:10.5347288Z ##[debug]Using template mode [InLine]
2017-02-22T21:46:10.5347288Z ##[debug]Using in-line template
2017-02-22T21:46:10.5347288Z ##[debug]Processing template
2017-02-22T21:46:10.5347288Z ##[debug]There are [1] builds to process
2017-02-22T21:46:10.5347288Z ##[debug]   Starting block WI
2017-02-22T21:46:10.5347288Z ##[debug]      1 items
2017-02-22T21:46:10.5347288Z ##[debug]      Getting first workitem
2017-02-22T21:46:10.5347288Z ##[debug]   Ending block WI
2017-02-22T21:46:10.5347288Z ##[debug]   Starting block CS
2017-02-22T21:46:10.5347288Z ##[debug]      1 items
2017-02-22T21:46:10.5347288Z ##[debug]      Getting first changeset/commit
2017-02-22T21:46:10.5347288Z ##[debug]   Ending block CS
2017-02-22T21:46:10.5347288Z ##[debug]Writing output file [C:\agent\xxxx_work\r4\a\releasenotes.md].
2017-02-22T21:46:10.5347288Z ##[debug]Setting variable: [$(TestOutput)] = #Release notes for build         ###Associated work items   ###Associated change sets/commits
2017-02-22T21:46:10.5347288Z ##[debug]Processed: ##vso[task.setvariable variable=$(TestOutput);]#Release notes for build         ###Associated work items   ###Associated change sets/commits
2017-02-22T21:46:10.5347288Z
2017-02-22T21:46:10.5347288Z
2017-02-22T21:46:10.5503541Z ##[error]PowerShell script completed with 1 errors.
2017-02-22T21:46:10.5503541Z ##[section]Finishing: Generate release notes

A couple of things

Looks like you are running the task inside a release (I can see the releaseID that has a value), but your inline release template has no @@Build tags, so it can only loop across the first build found within a release (try using this sample) - I don't think this is the issue by the way
You have the UseDefaultCredential parameter set to true - this is only needed for on premises installations (and frankly should not really be need) this needs to be false (the default) for VSTS - _I think this is the issue)

Correct, was using it in a release definition. I must have taken the wrong example then...
By disabling the UseDefaultCredential parameter, the release note is generated, looks good!
Thanks!

glad you are up and running


Allowed paths including 'users'

When swagger document is created, also paths containing 'users' are needed to be included in the generated document.

@matleppa - what's the use case of this?

@dcantatore, see issue #22 for a description of why this PR was opened. Please review the PR, to see if this is an adequate solution. If so, lets merge ASAP.


Proposal for Checks architecture

Ok this looks huge but it is actually quite simplistic as a first
iteration and it is by all means a WIP. No tests, very limited set
of checks (just the ones we had before plus another as an example)
and we don't not yet how well this will fit with the soon to come
checks that are left.
The idea is to have check classes (example RequiredFileCheck)
that are re-used via configuration. Every check file is abstract
enough to be provided a repo on runtime but to be configured
statically on load, so we can have a lot of checks but they can all
fit in a few 4 or 5 check classes (think about them as plugins).
All the checks are created from configuration (repo-audit.yml) and
added to a collection ChecksCollection which will be passed to the
Report class together with the repository being checked.
The collection will run through each of the checks, reporting back
the result, and the Report will just print it in a very similar way
to what was already doing.

Checks should be very lightweight, super simple to write.
A new check is just a class, inheriting from BaseCheck, dropped
into the /checks directory (and namespace) and they register
themselves to be used through a Factory.
The config file contains all the necessary information to build
a check using the Factory, and configure it.
Checks classes can be used several times, as they are configured
differently in the YAML file.
I can already anticipate several places of improvement, for example
should be easy to introduce a simple cache as to not do a fetch of
files that previously failed a HEAD request.

This is just a proposal, a simple one as there are still many unknowns,
but might be the base for improvement.
Please contribute, make suggestions, etc.

This is looking really promising, @zheileman! 😎
A few thoughts:

We have danger running on this repo… You should put [WIP] in the PR title 😉
For the real thing, I'd like to see it broken into a series of atomic, non-breaking steps, each explaining what it's doing and why. It's pretty big at the moment, as you say, and it'd be nice to see it explained step-by-step.

… other than that (and possibly needing more tests?), I reckon this is good to go?
@digitalronin, waddya think?

I like this change a lot. I think it's a better approach than Danger uses, because there's no eval underpinning everything.
Although the bulk of the changes are moving code around, and necessary to make this work overall, I do take Steve's point that this is a big change which would be more readable if it were broken into more commits. Tests would be good, too.
I would recommend breaking it up into separate commits for;

Introducing the ChecksCollection & ChecksFactory classes (with tests)
Adding the repo-audit.yml file
Moving the existing tests into this structure

I'll also add an issue for enabling the yml filename to be overridden via the command-line, which would be nice to have at a later date.

Cool. I will work on breaking this into smaller chunks of documented+tested steps. Mind you this might need to wait a few days as I'll be busy Tue and Wed with TaxTrib project 👍

This PR has now been superseded by https://github.com/ministryofjustice/repo-audit/pull/37 and all code here is included in the other one.


fix: [RP] same device uri and cross device security and implementation considerations

this PR brings the URI used in the Cross Device flow also in the Same Device flow
it also appends in the non-normative example of the request URI a unique-session-id webpath
In a Cross Device Flow the user-agent uses the JS (with WS or polling) made available in the QRCode Page to check if the authentication is successfully. For doing that it has to request to a specific URL (and also be authenticated with a session cookie that binds the unique-session-identifier, to avoid adversary to be able to made hijacks).
This opens a interesting scenario where the cross device flow is "animated" within the desktop user-agent with three different steps

The RP shows the QRcode (and periodically checks the authentication status in a time window of maximum 5 minutes)

the user frames the qrcode using their wallet instance
the wallet instance extract the request_uri and issues the HTTP request to obtain the signed request
The RP gives the signed_request (and update the session status)

The JS executed by the desktop user-agent receives a response containing a status code 201(Content Created) and optionally displaying a message to the user like "The Wallet Instance is processing the request" . Then continue polling to the unique-session-id endpoint

The User accepts the request using their wallet instance, selects the required data to be released, then issue the presentation response to the RP
The RP authenticates the user (and update the session status)

The JS executed by the desktop user-agent receives a response with a JSON containing a status code 200 (OK), having requested with the session cookie, the session bound within it is then updated, allowing the RP (JS) to redirect the User to the previous resource requested, before the authentication (next= parameter or whatever)

In absence of a session-cookie linked to a cross device session-id  the flow may be hijacked by an adversary that by stolen the sole session-id could authenticate using another user-agent

Another important consideration is that the request_uri MUST NOT then be included in the metadata, since it may be extended with unique session identifiers
Is there the same assumption for the redirect_uri?
Let's see ...

authentication status

Which authentication are you referring to?

authentication status

Which authentication are you referring to?

the User authentication via Wallet

what are the security benefit of this choice?

the user-agent needs to be redirected on the protected resource after the authentication happens. Otherwise the wallet made the authentication and the web page remains stucked on the qrcode page. So we have a UX requirement more than others.

What are the implications?

request_uri cannot be used in the metadata, since every qrcode and every request_uri will be unique and one-time-use.

Thanks for the explanation, I think I better understood what is this PR purpose. As far as my concerns, I see the following open points:

(nitpick): As the PR addresses a UX issue, I'd change the security mention in the title
(issue): Being request_uri non-static so that it cannot be included in the entity configuration as it is, we either:
a. remove request_uri from RP's entity configuration, as not needed anymore
b. explain how both request_uri attributes from entity configuration and QR code payload are related if they are.
(issue): Using deep-linking for same-device interaction is problematic as pointed out in the issue https://github.com/italia/eudi-wallet-it-docs/issues/81; I advocate we first resolve that conversation so that our options and alternatives are analyzed, and we can come up with a solid solution and documented trade-offs.

What do you think?

@balanza

added labels
I'd like to discuss if we want to define a new endpoint for the request status instead of using the request_uri for multiple scopes. This allows us to keep request_uri in the metadata and a specialized (and more secure and scalable) endpoint for the status checking and UX (this would make normative the QRCode implementation in our profile with conseguences in EUDI Wallet)
I fully agree with you, while for the scope of the PoC we really need to find a compromise even if temporary

@balanza the PR is now converted to a draft, since the decisions on this PR will produce the security/implementation considerations.
I'm changing my mind day after day:
We may leave the static request_uri as it was and add a RP custom endpoint that's called from the qrcode page (internal API within the RP architecture)
I've realized that because:

the request_uri shold have a single and specific scope -> giving a signed request in the form or JWS
the request status should be served in a specialized endpoint that's out from the specs but since it is not normative, however, at the same time, the specs gives those consideration about implementation an security, using a non normative example

the security consideration is that:
we can't rely just on a nonce/state lookup parameter for get a user-agent authenticated, we need to do a cross check with those nonce/state with a session cookie, so that just the user-agent that has obtained that request_uri is enabled to check the request status using as parameter the nonce/state (or just the cookie?)
with this nth proposal we can get back the static request_uri (but not a static signed request object, since the state and the nonce must change)

Regarding the $unique-session-identifier I agree with @balanza on option 1 which was the original one. The verification of the endpoint can always be done via the entity configuration, just go and verify the base path without the $unique-session-identifier.
I'll give an example, if the request_uri is like this:
https://verifier.example.org/request_uri/AAABBBBBCCC0001
within the metadata it is however possible to include a request_uri of the type:
  https://verifier.example.org/request_uri/$unique-session-identifier
It will then be specified in the technical rules that $unique-session-identifier must be replaced with the unique id.

@grausof unfortunately your proposal is out of standard, since a value in the metadata doesn't have placeholder or other elements that can be replaced
please take my last proposal, where redirect_uri remains as it is in the current specs without any additional prefix (even if recommended by JAR)
the RP internal architecture then has a custom endpoint that is used by the JS executed in the QRCode page to check the status of the request
this is a security and implementative consideration, not normative, since every RP can implement it's internal api and resource whatever they wants, they just have to use the minimum requirements for interop. The security consideration is then needed, but a consideration is not normative.

@grausof unfortunately your proposal is out of standard, since a value in the metadata doesn't have placeholder or other elements that can be replaced

This is option 1 on my last comment and it doesn't imply placeholders in metadata. Here is an example:

in the Entity Configuration metadata:

...
"request_uri": "https://verifier.example.com/request_uri"
...

in the QR payload:

eudiw://authorize?client_id=https://verifier.example.org&request_uri=https://verifier.example.org/request_uri/abcd1234mysessionid

All you need to do is confirm that the URL in the QR is a subpath of the URL in metadata.

Have you considered option 2? At the extent of an extra query string field, we keep adherence to OIDC Federation standards regarding request_uri.

@balanza
request_uri=https://verifier.example.org/request_uri/abcd1234mysessionid != request_uri=https://verifier.example.org/request_uri
while the one contained in the metadata must be respected. We can take a decision looking also to JAR recommendation but for now I'm saying that we just need a specialized endpoint to check the session status and then authenticate the user-agent (cookie) and give the redirect to the protected resource
for this reason, I'm remove the $session-unique-id from this PR and add a security/implementation consideration note once @fmarino-ipzs give review
regarding the JAR recommandation to randomize the request_uri this makes sense if we remove the request_uri from the metadata and add normative language about the mandate to check that the FQDN contained in the URI MUST be the same of the one contained in the client_id
if ok for you I'll proceed, I look forward for your kind reply


construct huffman table directly on reversed elements

Change-Id: Ic42b6b1c03f10077d19d49a9e6544214834ba42f

Codecov Report

Merging #95 (8b144ef) into I45916a591f51298fff8b4012b9507b781021100e (b4e4d80) will increase coverage by 0.04%.
The diff coverage is 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@                              Coverage Diff                              @@
##           I45916a591f51298fff8b4012b9507b781021100e      #95      +/-   ##
=============================================================================
+ Coverage                                      95.78%   95.83%   +0.04%
=============================================================================
  Files                                             11       11
  Lines                                            285      288       +3
=============================================================================
+ Hits                                             273      276       +3
  Misses                                            12       12

Files
Coverage Δ

huffman/src/detail/table_node.hpp
100.00% <100.00%> (ø)

huffman/src/table.hpp
96.87% <100.00%> (+0.03%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more