Improve API documentation to cover the full range of examples

Currently the Zulip API documentation only documents the API endpoints we've spent a lot of time on getting the design right for, sending messages and receiving messages/events.  We should add documentation for the other endpoints since the API featureset is everything you might want, it's just no that clear that this is the case.

(see api/examples, api/zulip/init.py and the API section of zproject/urls.py for what exists easily today).

Closing because while this remains a goal, we're not going to work on it because this old issue is open (and we have many individual issues for specific endpoints).


Alternative simple CLI for hippunfold

Maybe have a way to support this kind of usage:
Very simple single image -> output folder CLI
(kind of like recon-all, except not implicitly using env var for subjects_dir)
hippunfold-<simple/single/subject/T1w> /path/to/my_input_t1.nii.gz /path/to/my/output_folder --subject 001 (--session ses)

internally, we would copy: my_input_t1.nii.gz to:
bids/sub-001/anat/sub-001_T1.nii.gz
output folder can be:
output_folder/sub-001
This might be best as a snakebids plugin.
plugin would need to know what are the required arguments, and how do they map to the app itself..

Instead of a plug-in, simply having an alternative run.py script could also suffice..


Add verbose flag to network inspect to show all services & tasks in swarm mode

For swarm mode networks currently network inspect only shows endpoints local to that host. Service Discovery and overlay network reachability information gets exchanged through the gossip channel between the nodes. There have been issues where failures in the gossip channel can lead to inconsistent state across clusters. But there was no easy way to identify it.
This change adds a verbose flag to the network inspect output to display all services on that network with all the task IPs and host IP where the container is running. This will be very useful to quickly identify any inconsistent state across hosts (this can show up stale or incorrect IPs in DNS queries).
Example output from a 3 node cluster. s1 has 3 replicas and s2 has 1 replica.
vagrant@net-3:~$ docker network inspect --verbose ov1
[
    {
        "Name": "ov1",
        "Id": "ybmyjvao9vtzy3oorxbssj13b",
        "Created": "2017-03-07T22:08:56.471374351Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "<IP_ADDRESS>/24",
                    "Gateway": "<IP_ADDRESS>"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "5f125d4718f351333decbf34e02c3227a4455731b067cf6921cf9ffaa6779148": {
                "Name": "s1.2.mnzsnw7vadg2ra6mboz4ccuyb",
                "EndpointID": "54a324b9ebe5fc37c65e29cdb8eaa3becfa736e3a8a78a858bd4352a744c6879",
                "MacAddress": "02:42:0a:00:00:04",
                "IPv4Address": "<IP_ADDRESS>/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4097"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "net-3-3090671942ce",
                "IP": "<IP_ADDRESS>"
            },
            {
                "Name": "net-2-fb80208efd75",
                "IP": "<IP_ADDRESS>"
            },
            {
                "Name": "net-1-6ecbc0040a73",
                "IP": "<IP_ADDRESS>"
            }
        ],
        "Services": {
            "s1": {
                "VIP": "<IP_ADDRESS>",
                "Ports": [],
                "Tasks": [
                    {
                        "Name": "s1.1.530e00o1oj9l1kivoci7oupzt",
                        "EndpointID": "f0a46deaf7ce1d87bf42437188a7ba4d8d6ae3e98fe439db95171d8330e278a0",
                        "EndpointIP": "<IP_ADDRESS>",
                        "Info": "Host IP <IP_ADDRESS>"
                    },
                    {
                        "Name": "s1.3.98jplsdb5j7ozibrbv0bfs3fg",
                        "EndpointID": "005c24c13b1ddb0395de122ae7c75c889cebc52d4cc61ee918ef3a9dbffa2b27",
                        "EndpointIP": "<IP_ADDRESS>",
                        "Info": "Host IP <IP_ADDRESS>"
                    },
                    {
                        "Name": "s1.2.mnzsnw7vadg2ra6mboz4ccuyb",
                        "EndpointID": "54a324b9ebe5fc37c65e29cdb8eaa3becfa736e3a8a78a858bd4352a744c6879",
                        "EndpointIP": "<IP_ADDRESS>",
                        "Info": "Host IP <IP_ADDRESS>"
                    }
                ]
            },
            "s2": {
                "VIP": "<IP_ADDRESS>",
                "Ports": [],
                "Tasks": [
                    {
                        "Name": "s2.1.spc20i5to6crco9wdh5t3gzh2",
                        "EndpointID": "9d36c87e72236b0c5e0c5794b6963c84c3449ecbab5648ccb861993c760c30b9",
                        "EndpointIP": "<IP_ADDRESS>",
                        "Info": "Host IP <IP_ADDRESS>"
                    }
                ]
            }
        }
    }
]

There is a gofmt issue preventing CI from running.

Rather than changing the API to include this information, could we do this on the client side by adding network selectors to ListTasksRequest? I suggested doing this in https://github.com/docker/docker/pull/31551#discussion_r104482090 for something else. It would be pretty easy to implement that, and it probably makes sense to do.

@aaronlehmann One of the reasons for implementing this is to make sure that the network control plane state distributed by gossip is consistent across all nodes. So this has to work on all nodes, mainly the workers. I am working on a diagnostics container which will probe the kernel state and make sure its consistent (for ex: LB entries in IPVS matches the number of tasks for a given service). So using the swarm control api will not work in this case. The service/task information presented here is fetched from libnetwork's networkDB.

Thanks @sanimej . Yes, this is a very useful addition.
@aaronlehmann as @sanimej suggested, the main purpose of this change is provide a way to perform consistency check between the distributed control-plane (via Gossip) and the distributed data-plane that is built using various tools such as iptables, l2/l3 table, ipvs, etc...

@mavenugo Addressed the comments. PTAL.

Vendoring also fixes docker #30727

@thaJeztah Updated the reference document and man page for the network inspect command.

@aaronlehmann Addressed the comments. PTAL. Opened an issue to update the response types correctly in swagger.yml.

Corrected the error handling for verbose query string.

@aaronlehmann corrected it. Thanks.

LGTM

Left some small nits, but no show-stoppers

@thaJeztah Updated the PR.

Also should fix https://github.com/moby/moby/issues/27729


Can someone explain how to get the payload out of a decoded token?

I'm at a lost as to how this works and you don't have an example in your readme.
https://stackoverflow.com/questions/32511043/jwt-decoderesult-does-not-have-a-member-named-success

It returns an enum which has success and failure, you can use it as follows:
let result = JWT.decode(responseContent! as String, .HS256(secret))
switch result {
case .Success(let payload):
    print(payload)
case .Failure(let failure):
    print("decoding failed \(failure)")
}

Awesome thanks!


Extract RSpec Rails cops

I updated this PR.

Looks good!
I think the procedure was to:

Get the final snapshot using a PR like this
Build a new empty’ish repo with just the file set as the target
Get this git tool to clean history for files not present in the repo
Copy over the changes from the final snapshot and send a PR

Please correct me if I’m missing something

I updated this PR.

@bquorning @pirj
As a result of the discussion at https://github.com/ydah/rubocop-rspec_rails/pull/1#discussion_r1523286089 , I've made the following changes, and I would appreciate your opinion.

Add rubocop-rspec to runtime dependencies

Remove redundant files

Add CI job to test rubocop-rspec edges

This is really close to readiness. Just one thing to reuse the config left. Thank you for the immense effort!

@pirj Thank you for your review! I updated this PR.

I’m sorry for not having had the capacity to review your PR again.

@bquorning Don't worry about it. Thank you as always 😄 !

@bquorning @pirj @Darhazer Now that all the problems have been solved, I will proceed with the extraction if there are no other problems.

Okay, I'm going to proceed with the extraction.

Commands:
git clone --no-local rubocop-rspec rubocop-rubocop-rspec_rails-hist
cd rubocop-rubocop-rspec_rails-hist
git-filter-repo $( (cat ../rubocop-rubocop-rspec_rails/rename | xargs -I_ echo '--path-rename _ ') )
git-filter-repo $( (cd ../rubocop-rubocop-rspec_rails && git ls-files) | xargs -I_ echo '--path _ ')
git remote add origin git@github.com:rubocop/rubocop-rubocop-rspec_rails.git
git push --set-upstream origin master
git checkout -b rubocop-rspec_rails-only
cd ../rubocop-rubocop-rspec_rails
cp -r * ../rubocop-rubocop-rspec_rails-hist
cp -r $( git ls-files | grep '^\.' | grep -v '\.github' ) ../rubocop-rubocop-rspec_rails-hist
cp -r .github ../rubocop-rubocop-rspec_rails-hist
cd -
git commit --all --message 'RSpec -> FactoryBot'
bundle install
bundle exec rake
git push origin rubocop-rspec_rails-only

rename:
docs/modules/ROOT/pages/cops_rspec_rails.adoc:docs/modules/ROOT/pages/cops_rspecrails.adoc
rubocop-rspec.gemspec:rubocop-rspec_rails.gemspec
spec/rubocop/cop/rspec/rails/avoid_setup_hook_spec.rb:spec/rubocop/cop/rspec_rails/avoid_setup_hook_spec.rb
spec/rubocop/cop/rspec/rails/have_http_status_spec.rb:spec/rubocop/cop/rspec_rails/have_http_status_spec.rb
spec/rubocop/cop/rspec/rails/http_status_spec.rb:spec/rubocop/cop/rspec_rails/http_status_spec.rb
spec/rubocop/cop/rspec/rails/inferred_spec_type_spec.rb:spec/rubocop/cop/rspec_rails/inferred_spec_type_spec.rb
spec/rubocop/cop/rspec/rails/minitest_assertions_spec.rb:spec/rubocop/cop/rspec_rails/minitest_assertions_spec.rb
spec/rubocop/cop/rspec/rails/negation_be_valid_spec.rb:spec/rubocop/cop/rspec_rails/negation_be_valid_spec.rb
spec/rubocop/cop/rspec/rails/travel_around_spec.rb:spec/rubocop/cop/rspec_rails/travel_around_spec.rb


[edn] Disallow software command writes when in auto mode

Fixes #16039
Update documentation
Also update design such that output commands / requests are not populated by software loads during auto mode

Signed-off-by: Timothy Chen<EMAIL_ADDRESS>

I ended up not doing the regwen because it is possible that software would want to assert regwen during software operation also.  So if I used the same regwen, it would block the software command from being used.  So between adding a new register vs making the hw behavior consistent with the spec, I went with the latter.
The fsm already ignores subsequent software commands, so we just needed a small update to handle the output loading.

@jdonjdon I do not think we have any sequence to test that function yet. Maybe we can enhance the testplan to add this scenario?

@jdonjdon I do not think we have any sequence to test that function yet. Maybe we can enhance the testplan to add this scenario?

Can you create an issue and assign to me? I may not visit any edn issue for a while :)

@jdonjdon I do not think we have any sequence to test that function yet. Maybe we can enhance the testplan to add this scenario?

Can you create an issue and assign to me? I may not visit any edn issue for a while :)

@jdonjdon  / @cindychip
do we need to do anything other than in an auto test...just random write to this register and make sure there is no impact?


[SPARK-13951] Add nested Pipeline load/save supports in PySpark

What changes were proposed in this pull request?
https://issues.apache.org/jira/browse/SPARK-13951

Scala side Pipeline changes:

Change Param[Array[PipelineStage]] to StageArrayParam to support Java competible function.

Python side changes:

wrapper: Add a JavaConvertible to support those stages that are not a JavaWrapper.

wrapper: Add a ConvertUtil to support the Python-Scala converting for both JavaWrapper and JavaConvertible.

pipeline: Pipeline and PipelineModel now extend from JavaConvertible.

pipeline: PipelineMLReader, PipelineMLWriter, PipelineModelMLReader, and PipelineModelMLWriter now use ConvertUtils.

How was this patch tested?
Test with Python unit test for both pipeline save/load and nested-pipeline save/load.

test it please

Test build #53580 has started for PR 11835 at commit 4a00990.

Test build #53580 has finished for PR 11835 at commit 4a00990.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53580/
Test FAILed.

@jkbradley
MiMa tests failed for changing to the StageArrayParam. But I think we need a new Param like ArrayParam[T] with the Java compatible w function. Otherwise, it's hard to build an array-param in Python side.

I'll take a look

I think we should be able to implement this using Python only, and definitely without breaking the Scala/Java API.  Let me prototype a little, and get back to you.

@yinxusen Thanks very much for working on this issue.  After looking at it, I think we should use a different approach entirely in Python.  I also found some issues with the current Python ML persistence setup, which I'd like to clean up.  I'd like to take over this issue.  Could you please close this PR and, if you have time, help review my PR for it: [https://github.com/apache/spark/pull/11866]?
Thanks a lot for your understanding.


Tracking issue for cargo fix --edition-idioms

https://github.com/rust-lang-nursery/edition-guide/blame/5f3cc2a5618700efcde3bc00799744f21fa9ad2e/src/editions/transitioning-an-existing-project-to-a-new-edition.md#L95-L106 says:

Eventually, we want cargo fix to fix all these idioms automatically in the same manner we did for upgrading to the 2018 edition. Currently, though, the "idiom lints" are not ready for widespread automatic fixing. The compiler isn't making cargo fix-compatible suggestions in many cases right now, and it is making incorrect suggestions in others. Enabling the idiom lints, even with cargo fix, is likely to leave your crate either broken or with many warnings still remaining.
We have plans to make these idiom migrations a seamless part of the Rust 2018 experience, but we're not there yet. As a result the following instructions are recommended only for the intrepid who are willing to work through a few compiler/Cargo bugs!

Further down in the same file, https://github.com/rust-lang-nursery/edition-guide/blame/5f3cc2a5618700efcde3bc00799744f21fa9ad2e/src/editions/transitioning-an-existing-project-to-a-new-edition.md#L128-L129

As mentioned before, there are known bugs around the idiom lints which
means they're not all ready for prime time yet.

Is this still the case? If so, what is blocking us from recommending that people run cargo fix --edition-idioms? That is, are there specific open issues that could be tracked here as blockers to removing these paragraphs?

The tracking issue is https://github.com/rust-lang/rust/issues/54910.  It lists all the corresponding issues blocking it.  unused_extern_crates is particularly error-prone.

Awesome, thanks!
Found another spot related to extern crates-- this should also be updated when cargo fix handles that:
https://github.com/rust-lang-nursery/edition-guide/blame/master/src/rust-2018/module-system/path-clarity.md#L62-L63

This section has moved in #232 to https://github.com/rust-lang/edition-guide/blob/302a115e8f71876dfc884aebb0ca5ccb02b8a962/src/editions/transitioning-an-existing-project-to-a-new-edition.md#writing-idiomatic-code-in-a-new-edition.  I think there is still some indecision for 2021, which likely won't have any idiom lints.


haskell: configuration-common.nix -> overrides.nix

follow up of https://github.com/NixOS/nixpkgs/issues/121140#issuecomment-843640502
configuration-common.nix is unclear, prefer to use a similar scheme as
pkgs/misc/vim-plugins/overrides.nix and pkgs/development/lua-modules/overrides.nix ?
for consistency.
I think we could remove initial-packages.nix that is just a redirection towards haskell-packages.nix (why is it there in the first place ?).
I would also like some opinions on renaming hackage-packages.nix . The filename is informational but vimPlugins and lua use generated as part of the filename which I like too (it's easy to skip the header at the top of hackages-packages.nix saying it's generated) but:

hackage-generated.nix could contain just the revision/date of hackage we used
generated-packages.nix loses the notion of hackage but do we care ?
hackage-generated-packages.nix is long but it contains everything

Motivation for this change
harmonize filenames across language ecosystems
cc @cdepillabout
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

I have a weak argument against this:
When you wanna find all overrides and config entries concerning a package and you grep <package-name> your results will be garbled by the hackage-packages file where packages are mentioned very often. But when you use grep <package-name> configuration-* you search through all relevant files. These renames would drop this invariant.
Also, if we rename configuration-common we also need a consistent new name for all other configuration-*.nix files.
To be honest, I am not sold on the harmonizing filenames between language package sets. I would be onboard if the renaming is obviously more explicit and intuitive. Putting something like "generated" in the hackage-packages.nix filename sounds smart.

interesting feedback, do results outside configuration-common matter that much ? (I guess you are interested in configuration-hackage2nix). You could filter hackage-packages.nix out or we could move the file so it isn't taken into account into the grep.
"configuration-overrides.nix" would work too but I find the "configuration" prefix meaningless. These files are not really config as I see it (else the whole nixpkgs is),  except maybe for the yaml files.
For more context, maybe it's not something to be tackled on at the haskell level but at the nixpkgs level but when I started out nix I felt like everytime I had to work with the new language in nix I had to start from scratch (I starterd out with the python set and the haskell one works very differently). Maybe the haskell convention should be adopted by others instead of what I am doing here but I liked the "overrides.nix" / "generated.nix" approach better.

I also am sceptical. I can sympathize with the idea, but I'm not convinced that moving files around is worth it. Renaming it to overrides arguably makes the situation worse as all configuration-* files contain overrides and not all of them belong in configuration-common.nix.
Also this would break the little documentation we have at the moment for no real gain. Every language ecosystem is domain specific and will require some getting used to and I think improving our documentation will help that more than renaming files.
I'm still open to renaming configuration-common.nix at some point, since the disambiguation from configuration-nix.nix could be better tbh. I'd propose holding up on cosmetic changes though until we have the documentation properly in the manual again and a plan how to deal with the resulting outdated youtube tutorials we'd have (currently they are the main documentation on unbreaking haskell packages as far as I am aware).

interesting feedback, do results outside configuration-common matter that much ?

We additional have:

Platform-specific overrides: configuration-arm.nix (in the future probably configuration-darwin.nix as well)
Compiler-specific overrides: configuration-ghc*
Eternal overrides which make packages and nix behave well together: configuration-nix.nix
Day-to-day fixes: configuration-common.nix

The latter is touched the most, but not the only important one of those, splitting them up does arguably make the whole affair more maintainable.

what about changing configuration to overrides then , e.g., overrides-common.nix ? I wouldn't say it's purely cosmetic since the goal is to help onboard new users (I wont argue for hackage-packages.nix since i know it requires heavier frefactoring). And because the documentation is being written maybe on the contrary now is a good time to rename things ? Especially if big changes are on the roadmap ? I have no idea, but I imagine there could be plans to  hackage-packages.nix per ghc version or broken overrides at least, which could justify a new folder hierarchy etc.
As per the videos, you probably refer to https://www.youtube.com/watch?v=KLhkAEk8I20, 1200 views is impressive but maybe it's already outdated since the update hackage process changed in the last few weeks already. I wouldn't let these slow down changes as in practice few users update the haskell ecosystem because it's so bothersome. I would venture it's mostly by the fantastic four in the linked thread ;)

I suppose this has to wait for the nixpkgs architecture team to edict some rules.


License text not found in the repo

Hi, I found this tool very useful but I was not able to find license text in the repository.
What kind of open-source license do you plan to use for this tool?
Thanks,

Hi, I have updated the license.


Type hint calculate hash

Hello Bit-Wasp/bitcoin-php Helpdesk,Thank you for registering with our support.Your account has been setup and you can now login to our client portal . Client portal url : https://helpdesk.coinsnap.euEmail<EMAIL_ADDRESS>Please reset your password by using following link https://helpdesk.coinsnap.eu?/client/reset_password/TTxGNVA7J0RLLCMhQi0mLUM4VihSLVNgUS02JUYsI0FBOTYpRThGMFQsIy1GLDMhRThGKUU4QzlBOFYsUApNOTMsWTkjQUIsMyRYLjMpQzlDYFAsI2BQLCNgUSwzJUIsJjVFLDYoWSxGJFEtQ0VDOTNgVS4mLUI5QzhWCjEwJylFPCZRWStGPUk9JkFVOEJZQztWVGAKYAo=/IywzOFAKYAo=
span>Using client portal you can track your existing tickets, submit new tickets and update your profile.

Hello Bit-Wasp/bitcoin-php Helpdesk,Thank you for registering with our support.Your account has been setup and you can now login to our client portal . Client portal url : https://helpdesk.coinsnap.euEmail<EMAIL_ADDRESS>Please reset your password by using following link https://helpdesk.coinsnap.eu?/client/reset_password/TTxGNVA7J0RLLCMhQi0mLUM4VilBLDNAWS4jOFYsQ0BSLVMoWThTKUUsJjhUOSM0WC0jPFksRjVDOSM8WQpNLEMhRTk2OFIuIyxQLjMpQzlDYFAsI2BQLCNgUSwzJUIsMyhVOEY0WSxGJFEtQ0VDOTNgVS4mLUI5QzhWCjEwJylFPCZRWStGPUk9JkFVOEJZQztWVGAKYAo=/IyxDYFMKYAo=
span>Using client portal you can track your existing tickets, submit new tickets and update your profile.


Error (InternalCompilerError:) in remix with compiler 0.7.0

Hey , I am pretty new to solidity, I learnt in 0.4.17 version so I need to update the code and I got
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.8.0;

contract CampaignFactory {
    Campaign[] public deployedCampaigns;

    function createCampaign(uint256 minimum) public {
        Campaign newCampaign = new Campaign(minimum, msg.sender);
        deployedCampaigns.push(newCampaign);
    }

    function getDeployedCampaigns() public view  returns (Campaign[] memory) {
        return  deployedCampaigns;
    }
}

contract Campaign {
    struct Request {
        string description;
        uint256 value;
        address payable recipient;
        bool complete;
        uint256 approvalCount;
        mapping(address => bool) approvals;
    }

    Request[] public requestArray;
    uint numRequests;
    mapping(uint => Request) requests;
    address public manager;
    uint256 public minimumContribution;
    mapping(address => bool) public approvers;
    uint256 public approversCount;

    modifier restricted() {
        require(msg.sender == manager);
        _;
    }

    constructor(uint256 minimum, address creator)  {
        manager = creator;
        minimumContribution = minimum;
    }

    function contribute() external payable {
        require(msg.value > minimumContribution);

        approvers[msg.sender] = true;
        approversCount++;
    }

    function createRequest(
        string memory description,
        uint256 value,
        address payable recipient) public restricted returns(uint requestID) {
        requestID = numRequests++;
        Request storage newRequest = requests[requestID];
        newRequest.description = description;
        newRequest.value = value;
        newRequest.recipient = recipient;
        newRequest.approvalCount = 0;
        newRequest.complete = false;
        requestArray.push(newRequest);
    }

    function approveRequest(uint requestID) public {
        Request storage request = requests[requestID];

        require(approvers[msg.sender]);
        require(!request.approvals[msg.sender]);

        request.approvals[msg.sender] = true;
        request.approvalCount++;
    }

    function finalizeRequest(uint requestID) public restricted {
        Request storage request = requests[requestID];

        require(request.approvalCount > (approversCount / 2));
        require(!request.complete);

        request.recipient.transfer(request.value);
        request.complete = true;
    }

    function getSummary()
        external
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            address
        )
    {
        return (
            minimumContribution,
            address(this).balance,
            requestArray.length,
            approversCount,
            manager
        );
    }

    function getRequestsCount() external view returns (uint256) {
        return requestArray.length;
    }
}

and I get InternalCompilerError: on the remix compiler but I can't figure the problem out if someone can help me it's very nice =)

the problem is with the
requestArray.push(newRequest);

but still don't know why


Allow VMs to be created in an 'off' state.

There are things you can only do to a machine when it is powered down, such as setting the console logging information, but you need to have the logging set on the very initial boot to be able to debug its initial power up...
Customer tried doing an asynchronous bring up  (--no-wait) and then setting console logging but never really got what they were looking for.
If you could set it up, and set everything up and THEN fire it off you get the chance to have the initial power up "under you control" so to speak.

What options other than enabling of boot logs are we talking about? The az vm create command should probably add native support for doing exactly that.
I'm not sure if there are other scenarios that you are hinting at as well - but generally, anything that is needed to be available on first boot (i.e. cloudinit etc.) should be made available in the create commands.

We have supports now to capture boot log on creating a vm. Hence we don't need this any more


feat: 🎸 add result to successfully ran transactions

Description
Adds a getter result to PolymeshTransactionBase class. this will have the result resolved from run() so it can be accessed later
Breaking Changes
None
JIRA Link
✅ Closes: DA-407
Checklist

[ ] Updated the Readme.md (if required) ?

I based off of beta, although this should probably have been on alpha.
I think we should bring the commits from master into beta then alpha (or at least beta -> alpha). Leaving this as draft until then

rebasing onto alpha


[bug] verify-blob & rekor shards: search all shards for proposed entries

Description
https://github.com/fluxcd/source-controller/issues/899#issuecomment-1261295343
After rekor sharded, the current Rekor tree is moved to a new one.
When verifying blobs, we search the Rekor log proposed entries:
https://github.com/sigstore/cosign/blob/727e3e1d4af2856126f67c014d5bd2cf4b29a94a/pkg/cosign/tlog.go#L392
and expect that exactly one entry was retrieved.
Rekor CURRENTLY only searches the CURRENT tree for an entry, and will fail if the leaf is not present on the current log. That is causing the flux verify-blob failure after the shard rotation:
could not find entry in tlog: signature not found in transparency logError: verifying blob [./checksums.txt]: signature not found in transparency log

The entry did not exist on the current log.
As a fix (TBD), rekor will search ALL previous shards and may return more than one search entry. Because of this, the following changes need to happen in cosign:

Allow multiple entries returned from SearchLogQuery
In the cosign case, we need to start using a function like tlogFindEarliestEntry to replace https://github.com/sigstore/cosign/blob/727e3e1d4af2856126f67c014d5bd2cf4b29a94a/cmd/cosign/cli/verify/verify_blob.go#L410: the earliest entry with the earliest integrated time will always suffice for expiration checks.
In the container case, these funcs also need to be fixed, again, to handle multiple return entries, and selecting the earliest one for the certificate validation.

Note: old clients MAY be OK after the rekor fix: this will only affect users who are verifying blobs (or online lookups for containers) with cosign AND there were duplicate uploads on multiple shards. However, if there were re-uploads or duplicate entries across shards, old clients will break if rekor responds with multiple entries.
cc @haydentherapper @bobcallaway @priyawadhwa @lukehinds @stefanprodan
Version
All

Does anyone have some time to fix? If no one can volunteer I can "promise" my next free time goes to this, but... you know...


bump to Scala 2.13.1 (was 2.13.0)

the 2.11 job is failing — I guess that doesn't have to do with the changes in this PR?
the 2.13 job is failing with errors I'm also seeing in the Scala community build — any insight?


crash when use read stream just on react native 76

ReactNativeBlobUtil.fs
          .readStream(file.uri, 'base64', MAX_UPLOAD_SIZE)
          .then(stream => {
            stream.open();
            stream.onData(chunk => {
              chunksString.push(chunk as string);
            });

crash on stream.open();
just in react native 76
its ok on react native 75 or Earlier

iOS or Android?

both of them


Split up wallet-api

The wallet-api package should be split into two: Emulator (mockchain) and the wallet API itself.

Arguably three - I think we could probably have our own ledger package. E.g. that's what the validation server should depend on.

Although arguably we have too many packages!

maybe we should wait until cabal 3.0 comes out with multiple public libraries per package?

I definitely think we'll want to use that, but I wouldn't hold your breath for it :) perhaps for things like ledger it's better to just put them as an internal library inside wallet-api and re-export the modules? That at least lets us explicitly state its smaller set of dependencies and keep it separate physically.


Fix Souvenir packages throwing constant errors

Fix Souvenir packages throwing constant errors ( TypeError: Cannot read properties of undefined (reading 'length') )
market_actions seem to be unavailable for these, so it throws the constant error that it cannot read the length of undefined.

Thanks for putting this together!


godot 4 keeps on freezing when i add a child to parent

Godot version
4.1
System information
window 10
Issue description
i cant even close the window when it freezes
Steps to reproduce
i open my godot 4 project then when ever i want to add a child to a node it freezes
Minimal reproduction project
godot 4 keeps on freezing when i add a child to parent

someone help me

Can you try Godot 4.2?

Can you please provide more details? Without a description of how to replicate the issue it is extremely difficult to debug this. Perhaps you could provide the console output, if possible.

I am here because I have the exact same issue.
Using 4.2.1.stable.
It's a rare occurence but it seems like once it happens in a project, the engine will hard freeze every time a child node is added without exception.
System reboot did nothing to solve the issue. Not sure if I am allowed to upload my project somewhere?

Thank you for the report. Consolidating this as a duplicate with #83855.
Please continue the discussion in that bugreport.


Fine tuning of the config file option impl

Error checking
Fine tuned generation of the test config file
Unit tests
To run the unit tests with the host settings, set the environment
variable RFM_CONFIG_FILE='/path/to/host/settings.py'. This does not
yet reproduce entirely the old behaviour.

The unit tests with the host configuration are real pain. This feature seemed quite innocent, but eventually so much was depending on the settings module in the unit tests! I will refactor completely this part as soon as this is merged.


release log mistake

release logs for Sceneform SDK for Android v1.4.0

New APIs and capabilities

Added API Scene.setOnPeekTouchListener making it possible to connect multiple peek touch listeners to the scene.

it should be Added API Scene.addOnPeekTouchListener here

Thanks for pointing that out!


Support R sentinel values

All of R's types seem to support NA (and even NaN).
In order to support the NA value, we could build a xoptional_assembly with the values being the array, and the optional expression being a xfunction that compares the value array with the sentinel value.
For Int and Logical the NA value is INT_MIN. We need to look into the source to figure out what the NA value is for Real and Complex.

I can give you a full example if you need it, but Real NA values seem to actually be working fine. Int definitely don't work, and as you've said in some recent commits (and I've found out the hard way) Logical is not supported at all yet

Hi @DavisVaughan, any chance that you have someone at RStudio who'd like to get deeper into C++ and work on implementing the Logical (or you yourself)?
It's not a lot of work, and we'd be happy to mentor someone through it!

I'd be happy to give it a shot. I've spent a decent amount of time reading through some of the source code, but guidance would definitely be appreciated. I'll be upfront about the fact that C++ isn't my strong suit, but R obviously is and I've generally been able to figure out enough on the C++ side to make things work.
My progress so far has resulted in this
https://github.com/DavisVaughan/rray
Any pointers on where to get started?

Wow, rray looks interesting! I'm curious to see how that plays out.
I replied in the other issue and ping'd you!

I think that we can close this as we now support R sentinel values!
Working on tagging releases of xtensor-r and the R package for xtensor.

Hey @davisvaughan FYI we have released xtensor-r 0.10.0 which includes support for R sentinel values.
It appears that CRAN has trouble with configure.win files so this is not on CRAN yet (I posted on rstudio's discourse about this).
rtensor_optional and rarray_optional wrap r arrays with an xtensor optional semantics (has_value(), value()) and operate on R sentinel values under the hood

I haven't looked too much into it, but what is the expected way for me to use rarray_optional? I don't want R users to have to do anything special to use rray's with missing values. Should I just replace all of my uses of rarray with rarray_optional? Is there a big performance hit if I do this?

If you expose a function to R with a rarray_optional instead of rarray, value(),

there is not memory overhead.
you basically have the xoptional API on elements (with e.g. value and has_value). Setting a scalar to an element sets the value and resets the has_value flag to true.
you also get vectorized value and has_value methods to the array itself that return expressions which are views on the underlying buffer.

You can assign a value to an optional and it becomes "not missing", or an xexpression of values to an option


Can't block youtube ?

Is it possible to block youtube using hosts ? I tried several ways youtube.com stills open, thanks !

Hi @nekudah there is nothing special about youtube.
I'm guessing you might need to block www.youtube.com too.
Be sure to clear your system DNS cache, and your browser cache.  See this repo's readme for some info on that.
Closing.


Editor does not work properly with formsets

Django===4.2.4
django-tinymce==3.6.1
Also I use django-admin-sortable==2.3, but this problem appears both with SortableTabularInline and TabularInline
Model looks like that:
class ContentBlock:
    title = models.CharField(max_length=100)
    content = HTMLField()

Inline admin:
class ContentBlockInlineAdmin(SortableTabularInline):
    model = ContentBlock
    extra = 0

As I mentioned before, the same thing happens with TabularInline
When I try to add new row to formset - first row have basic textareafield. Second and following will have tinyMCE editor, but with different settings (I guess it's the default config), and I can't type anything to these. I also can type something to textarea (first added row) and save these changes.
If formset already have fields, they will load as ususal. Same if I set extra = 1 (or more).
Here is screenshot:

1st row was saved before;
2nd row was added by clicking "add more" button
3rd and following was added later

Would you be able to test with code from master branch?

@claudep
Hi,
I checked the version from the master branch -- everything working fine

Thanks for checking, I guess a release should be needed now.


Address already in use   at System.Net.Sockets.Socket.Bind

Hi all!
I am starting a new set of apps using this library. I was running fine for two days with iOS & Android, both as broker and as client, however, since today, in Android platform I am getting this exception while running the Server.StartAsync(optionsBuilder.Build())); method.
This is my optionsBuilder definition:
// Start a MQTT server.
            var optionsBuilder = new MqttServerOptionsBuilder()
                .WithConnectionBacklog(100)
                .WithDefaultEndpointPort(1883);

Then this is the exception, thanks:
{System.Net.Sockets.SocketException (0x80004005): Address already in use
at System.Net.Sockets.Socket.Bind (System.Net.EndPoint localEP) [0x00043] in :0
at MQTTnet.Implementations.MqttTcpServerListener.Start () [0x0004c] in :0
at MQTTnet.Implementations.MqttTcpServerAdapter.RegisterListeners (MQTTnet.Server.MqttServerTcpEndpointBaseOptions options, System.Security.Cryptography.X509Certificates.X509Certificate2 tlsCertificate) [0x0008f] in :0
at MQTTnet.Implementations.MqttTcpServerAdapter.StartAsync (MQTTnet.Server.IMqttServerOptions options) [0x00032] in :0
at MQTTnet.Server.MqttServer+d__35.MoveNext () [0x00146] in :0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <4d6eb5dfe2ab4eee884ef920069afd5f>:0
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <4d6eb5dfe2ab4eee884ef920069afd5f>:0
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <4d6eb5dfe2ab4eee884ef920069afd5f>:0
at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <4d6eb5dfe2ab4eee884ef920069afd5f>:0

Hi, it seems that the port is already in use. There is a setting in the server options to disable either ipv4 or ipv6. Maybe you need to disable v6.
Best regards
Christian

@chkr1011 how do you disable ipv6?


add a method for developers to add their own service providers

Container method to read through the directory, app/ServiceProviders. and add the service providers in that directory to the container

fixed with PR #388


python3 bug fix

Thanks for this, but this is actually a Python 2 test.  The tests2 directory is for Python 2 and tests3 directory is for python3.


fix: Missing sql_editor_id index

SUMMARY
As titled, it adds the index for sql_editor_id in query table which seems to have caused a slowdown in the sqllab_bootstrap query.
TESTING INSTRUCTIONS
locally test superset db upgrade
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@justinpark you'll also have to:

Update the model to reflect the parity between how the SQLAlchemy model is defined and the underlying schema.
Add a line item to UPDATING.md*.

Creating a new index to the query could be very expensive (given the size of the table) and may require downtime.

From experience that table can get massive and depending on your SQL engine, and creating an index can be a locking operation, which can cascade into deadlock territory on this particular table (I think there's still a pretty crazy amount of polling happening in SQL Lab to look at query state). If you're using MySQL I'd treat this migration very very sensitively. I think there are ways to create index in a non-locking way in MySQL, but have to go out of your way to do it (ALGORITHM=INPLACE, LOCK=NONE;). Postgres should do better.
Maybe not a bad time to archive the query table table in your environment ... For most shops I think 90 days worth of query history is enough to go by, not a bad thing to schedule something that deletes 90+ day old queries daily... Note that changed_on is also indexed to help and support and efficient DELETE operation there.

About my earlier comment, the issue may be significant enough that you'd want to write a custom migration for MySQL for your own sake at Airbnb, you can probably go direct DDL CREATE INDEX with the proper flags just for MySQL. I remember fighting hard on some simple migration on that specific table. Connections / locks kept coming, had to silence all k8s deployments, kill MySQL sessions (which kept coming back with polling) and ultimately wait for things to get through. (ALGORITHM=INPLACE, LOCK=NONE;) may allow you to not schedule or incur downtime.

@michael-s-molina @john-bodley PTAL

Codecov Report
Attention: Patch coverage is 28.57143% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 60.54%. Comparing base (2e5f3ed) to head (1d19118).
Report is 25 commits behind head on master.

Files
Patch %
Lines

superset/migrations/shared/utils.py
16.66%
5 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #27392      +/-   ##
==========================================
+ Coverage   60.49%   60.54%   +0.04%
==========================================
  Files        1931     1933       +2
  Lines       76241    76498     +257
  Branches     8566     8566
==========================================
+ Hits        46122    46314     +192
- Misses      28015    28080      +65
  Partials     2104     2104

Flag
Coverage Δ

hive
49.21% <28.57%> (+0.04%)
:arrow_up:

presto
53.83% <28.57%> (+0.03%)
:arrow_up:

python
63.56% <28.57%> (+0.08%)
:arrow_up:

unit
57.71% <28.57%> (+0.09%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


tags are not showing properly on posts

Posts are displaying every tags of the blog instead of just displaying tags of the post.

Fixed in 24451a05d65ce3bdf1ade6464a422697f166908d and bd6502359f1db39ddd8ac151d2c9937ff385b49e.


Discuss or discourage use of new.

Discuss or discourage use of new.

I generally avoid it (except in the DSL chaining syntax of BonMot). Its conciseness makes it tempting to use, but it's harder if you need to swap straight -init with a convenience initializer, so we should probably avoid it.


Fix compatibility with aiohttp >= 0.17.0

See issue #13.
Not sure if this is the proper fix, but after this change all tests pass again (with new aiohttp version).

Thanks!

I will publish new release soon.


Made week 3 update

Project
Name of the project
Changes
What was updated (new pages, weekly update, etc.)
Notes
If there are any further notes.

Resolve Merge Conflicts

@Arush04  there are still some merge conflicts in docs/2023/Sunbird Lern/Keycloak Upgradation/updates/2023-07-21.md. since this the only file that has changes i am closing this PR because you are not able to solve it.
Now sync your fork first then reclone repo in your local system and then make changes and create a PR

Hi Shubhangi, I have synced the repo and made the PR but it still shows a
merge conflict. I have checked the file and the merge conflict is not
visible. Can you please check and see.
On Tue, Jul 25, 2023 at 12:52 PM Shubhangi Gupta @.***>
wrote:

@Arush04 https://github.com/Arush04 there are still some merge
conflicts in docs/2023/Sunbird Lern/Keycloak
Upgradation/updates/2023-07-21.md. since this the only file that has
changes i am closing this PR because you are not able to solve it.
Now sync your fork first then reclone repo in your local system and then
make changes and create a PR
—
Reply to this email directly, view it on GitHub
https://github.com/Code4GovTech/c4gt-milestones/pull/229#issuecomment-1649265344,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASYKRTD4JIT66CFIUFKBOJDXR5X3TANCNFSM6AAAAAA2T4IIEQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


useCookie Cannot be set again after expiration

Environment

Operating System: Darwin
Node Version:     v18.18.2
Nuxt Version:     3.11.2
CLI Version:      3.11.1
Nitro Version:    2.9.6
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, ssr
Runtime Modules:  -
Build Modules:    -

Reproduction
https://github.com/NaMoCv/my-app
Describe the bug
Cannot be set again after expiration.
console.log(identity.value)   ok
but document.cookie not found anything
Additional context
No response
Logs
No response

https://github.com/NaMoCv/my-app
Sry, forgot to set it as a public project.

Are there any updates to this question?
#27389
<template>
  <button
    type="button"
    class="px-3 py-2 border border-primary text-xl text-primary"
    @click="setCookie"
  >
    SET Cookie
  </button>
  <span>{{ locked }}</span>
</template>

<script setup lang="ts">
const locked = useCookie<boolean>('locked', {
  maxAge: 20,
  default: () => false
});

const setCookie = () => {
  locked.value = true;
};
</script>

After clicking the button to create a cookie, the cookie will expire after 20 seconds, after the expiration, clicking the button again will make the cookie expire immediately, the status of the cookie on the screen will flash, is this expected?

Made PR #27632


[Bug]: the edit profile page is not properly responsive

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
the edit profile page responsiveness need some work
Expected behavior
i should be responsive for small size device
Add screenshots (if applicable)

On which device or platform are you experiencing this bug?
No response
Confirmation

[X] I have read the Bitbox Contributing Guidelines
[X] I am a GSSOC-EXT contributor
[X] I am a HACKTOBERFEST contributor
[X] I have starred the Bitbox repository

Hyy @AyushSharma72 please share some visuals to improve this design like screenshots

Hyy @AyushSharma72 please share some visuals to improve this design like screenshots

I will make it responsive then only I will share @Harshit7492  assign it to me

Hyy @AyushSharma72, I'm assigning this issue to you.


Incorrect email validation

Recently we have realized that emails in the following format<EMAIL_ADDRESS>are validated as true with Devise 3.4.1 since it uses this /\A[^@\s]+@[^@\s]+\z/ regex.
The . sign followed by an @ is actually an invalid email and should not go through the validation

It is just a simple check on purpose. Feel free to restrict it as you wish by setting Devise.email_regexp. The best way to validate an email is by sending it a confirmation e-mail, the regexp is mostly for usability purposes to avoid silly mistakes from the user side.

@nashby shouldn't that be handled more smoothly in devise? If ever a user record is created using an invalid email sending of the confirmation mail would raise an exception, wouldn't it?

The default regex prevents basic sending errors. You can trap for mail sending failures yourself, that seems out of scope for Devise.


Reverse order of parameters in prepare_buffers (API Change)

Unfortunately these are in the reverse order...

...or are they? Ugh...

This is called buffer_prefix now and the order of parameters is fine.


ESP32 does not start user code (IDFGH-10500)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
My esp32 is crashing and won't start, it keeps flashing the power led.
Before it was working normally
Code:
#include <freertos/FreeRTOS.h>
#include <freertos/timers.h>
#include <stdio.h>

void app_main()
{
    while (1) {
        printf("Test\n");
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

Log:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:8892
ho 0 tail 12 room 4
load:0x40078000,len:16864
load:0x40080400,len:4228
entry 0x40080688
I (29) boot: ESP-IDF 5.0.2 2nd stage bootloader
I (29) boot: compile time 10:25:10
D (30) bootloader_flash: non-XMC chip detected by SFDP Read (C8), skip.
D (33) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
I (39) boot: chip revision: v1.0
D (42) boot.esp32: magic e9
D (45) boot.esp32: segments 03
D (47) boot.esp32: spi_mode 02
D (50) boot.esp32: spi_speed 00
D (53) boot.esp32: spi_size 02
I (56) boot.esp32: SPI Speed      : 40MHz
I (60) boot.esp32: SPI Mode       : DIO
I (63) boot.esp32: SPI Flash Size : 4MB
D (67) boot: Enabling RTCWDT(9000 ms)
I (70) boot: Enabling RNG early entropy source...
D (75) bootloader_flash: rodata starts from paddr=0x00010000, size=0xc00, will be mapped to vaddr=0x3f400000
V (84) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3f400000, 0x10000 bytes are mapped
D (94) boot: mapped partition table 0x10000 at 0x3f400000
D (100) flash_parts: partition table verified, 4 entries
I (105) boot: Partition Table:
I (107) boot: ## Label            Usage          Type ST Offset   Length
D (114) boot: load partition table entry 0x3f400000
D (118) boot: type=1 subtype=2
I (121) boot:  0 nvs              WiFi data        01 02 00011000 00006000
D (128) boot: load partition table entry 0x3f400020
D (132) boot: type=1 subtype=1
I (135) boot:  1 phy_init         RF data          01 01 00017000 00001000
D (142) boot: load partition table entry 0x3f400040
D (146) boot: type=0 subtype=0
I (149) boot:  2 factory          factory app      00 00 00020000 00100000
I (156) boot: End of partition table
D (159) boot: Trying partition index -1 offs 0x20000 size 0x100000
D (165) esp_image: reading image header @ 0x20000
D (169) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
D (176) esp_image: image header: 0xe9 0x05 0x02 0x02 40081108
V (181) esp_image: loading segment header 0 at offset 0x20018
V (187) esp_image: segment data length 0x8b00 data starts 0x20020
V (193) esp_image: segment 0 map_segment 1 segment_data_offs 0x20020 load_addr 0x3f400020
I (200) esp_image: segment 0: paddr=00020020 vaddr=3f400020 size=08b00h ( 35584) map
D (208) esp_image: free data page_count 0x00000032
D (212) bootloader_flash: rodata starts from paddr=0x00020020, size=0x8b00, will be mapped to vaddr=0x3f400000
V (222) bootloader_flash: after mapping, starting from paddr=0x00020000 and vaddr=0x3f400000, 0x10000 bytes are mapped
V (246) esp_image: loading segment header 1 at offset 0x28b20
D (246) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
V (247) esp_image: segment data length 0x1eec data starts 0x28b28
V (253) esp_image: segment 1 map_segment 0 segment_data_offs 0x28b28 load_addr 0x3ffb0000
I (261) esp_image: segment 1: paddr=00028b28 vaddr=3ffb0000 size=01eech (  7916) load
D (268) esp_image: free data page_count 0x00000032
D (273) bootloader_flash: rodata starts from paddr=0x00028b28, size=0x1eec, will be mapped to vaddr=0x3f400000
V (282) bootloader_flash: after mapping, starting from paddr=0x00020000 and vaddr=0x3f400000, 0x10000 bytes are mapped
V (296) esp_image: loading segment header 2 at offset 0x2aa14
D (298) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
V (305) esp_image: segment data length 0x55fc data starts 0x2aa1c
V (311) esp_image: segment 2 map_segment 0 segment_data_offs 0x2aa1c load_addr 0x40080000
I (318) esp_image: segment 2: paddr=0002aa1c vaddr=40080000 size=055fch ( 22012) load
D (326) esp_image: free data page_count 0x00000032
D (330) bootloader_flash: rodata starts from paddr=0x0002aa1c, size=0x55fc, will be mapped to vaddr=0x3f400000
V (340) bootloader_flash: after mapping, starting from paddr=0x00020000 and vaddr=0x3f400000, 0x20000 bytes are mapped
V (360) esp_image: loading segment header 3 at offset 0x30018
D (360) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
V (363) esp_image: segment data length 0x16208 data starts 0x30020
V (369) esp_image: segment 3 map_segment 1 segment_data_offs 0x30020 load_addr 0x400d0020
I (376) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=16208h ( 90632) map
D (384) esp_image: free data page_count 0x00000032
D (388) bootloader_flash: rodata starts from paddr=0x00030020, size=0x16208, will be mapped to vaddr=0x3f400000
V (398) bootloader_flash: after mapping, starting from paddr=0x00030000 and vaddr=0x3f400000, 0x20000 bytes are mapped
V (441) esp_image: loading segment header 4 at offset 0x46228
D (442) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
V (442) esp_image: segment data length 0x6330 data starts 0x46230
V (448) esp_image: segment 4 map_segment 0 segment_data_offs 0x46230 load_addr 0x400855fc
I (456) esp_image: segment 4: paddr=00046230 vaddr=400855fc size=06330h ( 25392) load
D (463) esp_image: free data page_count 0x00000032
D (468) bootloader_flash: rodata starts from paddr=0x00046230, size=0x6330, will be mapped to vaddr=0x3f400000
V (478) bootloader_flash: after mapping, starting from paddr=0x00040000 and vaddr=0x3f400000, 0x10000 bytes are mapped
V (499) esp_image: image start 0x00020000 end of last section 0x0004c560
D (499) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (501) boot: Calculated hash: 4bb4f1a0f409341d37cfa5d51f0fd67833708f23a24fbbfd33337f5a980ccc26
I (515) boot: Loaded app from partition at offset 0x20000
I (515) boot: Disabling RNG early entropy source...
D (519) boot: Mapping segment 0 as DROM
D (523) boot: Mapping segment 3 as IROM
D (526) boot: calling set_cache_and_start_app
D (530) boot: configure drom and irom and start
V (535) boot: rodata starts from paddr=0x00020020, vaddr=0x3f400020, size=0x8b00
V (542) boot: rc=0
V (543) boot: rc=0
V (545) boot: after mapping rodata, starting from paddr=0x00020000 and vaddr=0x3f400000, 0x10000 bytes are mapped
V (555) boot: text starts from paddr=0x00030020, vaddr=0x400d0020, size=0x16208
V (562) boot: rc=0
V (564) boot: rc=0
V (566) boot: after mapping text, starting from paddr=0x00030000 and vaddr=0x400d0000, 0x20000 bytes are mapped
D (575) boot: start: 0x40081108
I (590) cpu_start: Pro cpu up.
I (590) cpu_start: Starting app cpu, entry point is 0x40081060
I (0) cpu_start: App cpu up.
I (601) cpu_start: Pro cpu start u

Sometimes it completes that last line of log and sometimes it doesn't, from that line it disconnects from the computer and the power led keeps flashing.

Run idf.py save-defconfig and post the generated sdkconfig.defaults here like this:
<details>
    <summary>defconfig</summary>

```
Paste the content here
```

</details>


Kafka 3173

cc @junrao

If failed with the following error:
org.apache.kafka.streams.KeyValueTest > testEquals PASSED
pure virtual method called
terminate called without an active exception
:streams:test FAILED

Sounds like something bad with the streams tests?

See jira for discussion.


Initial generated app is broken

I just used aio app init helix-purge, went through all steps, run locally, open browser and I get a weird error message.
Expected Behaviour
I expect a basic default app showing me "something working".
If more steps are required, I would expect to be informed.
Actual Behaviour
I get error message "Something went wrong :("
Steps to Reproduce
Run aio app init helix-purge.
Select an org, a project (previously created with Firefly template), "production" workspace.
Then I unselected only the Events.
From there, just run aio app run --local
Platform and Version
<EMAIL_ADDRESS>Node v10.21.0

Thanks for reporting the issue, @kptdobe !
Could I ask you to use aio info and add the output into a comment? This will be helpful for us to support further.

$ aio info

  System:
    OS: macOS 10.15.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
    Memory: 1.80 GB / 32.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 10.21.0 - ~/.nvm/versions/node/v10.21.0/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.4 - ~/.nvm/versions/node/v10.21.0/bin/npm
  Virtualization:
    Docker: 19.03.12 - /usr/local/bin/docker
  npmGlobalPackages:
    @adobe/aio-cli: 3.7.0
  CLI plugins:
    @adobe/aio-cli 3.7.0 (core)
    @adobe/aio-cli-plugin-app 3.2.0 (user)
    @oclif/plugin-help 2.2.3 (core)
    @oclif/plugin-not-found 1.2.4 (core)
    @oclif/plugin-plugins 1.9.0 (core)
    @oclif/plugin-autocomplete 0.2.0 (core)
    @adobe/aio-cli-plugin-config 2.3.0 (core)
    @oclif/plugin-warn-if-update-available 1.7.0 (core)
    @adobe/aio-cli-plugin-auth 2.4.0 (core)
    @adobe/aio-cli-plugin-console 3.2.0 (core)
    @adobe/aio-cli-plugin-certificate 0.2.0 (core)
    @adobe/aio-cli-plugin-info 1.1.0 (core)
    @adobe/aio-cli-plugin-events 1.1.0 (core)
    @adobe/aio-cli-plugin-runtime 1.10.0 (core)

Solved together with @kptdobe: the user installed @adobe/aio-cli-plugin-app 3.2.0 plugin has been uninstalled, reverting to the latest @adobe/aio-cli-plugin-app 3.5.1 (core) embedded within @adobe/aio-cli: 3.7.0.

Thanks @meryllblanchet for the support!
Note that before uninstalling the user plugin, I ran:
aio update
warning: the user-installed plugin(s) below have versions older or equal to the core plugin versions, and should be uninstalled via aio plugins:uninstall <plugin_name>
Plugin(s) to uninstall    Current   Latest
@adobe/aio-cli-plugin-app 3.5.1     3.5.1

I think the current version displayed here should have been 3.2.0 here (see info above) and not 3.5.1. Might be a bug.

@shazron, could this be a bug in the aio update listing?

I did a code inspection. The current version is read from disk https://github.com/adobe/aio-cli/blob/d9882ade89625c24f68999fb7cbe70d04e189fa7/src/commands/update.js#L141. It's possible that it could have gone out of sync (updated async somehow)


Incorrect highlighting when using backslashes for line continuation in TypeScript

From @fantacytyx on March 1, 2016 12:58
version 0.10.10-insider

bug demo.zip
Copied from original issue: Microsoft/vscode#3583

Related to #40?

Yes, this issue is similar to #40 and #5 and was recently fixed.

Duplicate #40, #5


Oculus V1.52 update

XRTK - Mixed Reality Toolkit Pull Request
Overview
Updated Oculus API to 1.52
Changes

Updated API to 1.52
Updated Oculus API to include new API's up to 1.52
Added Device Properties API's following discussions with Oculus devs, including CPU/GPU level and a few others

Tested on x86/x64 and Android. No issues found


Add the possibility to create File inside the SandpackFileExplorer component

Possibility to create File inside the SandpackFileExplorer component #913
Packages affected

[ ] sandpack-client
[x] sandpack-react

What is this feature?
On purpose to have all the feature as a real IDE I was hopping if you can add the possibility to create file inside SandpackFileExplorer
How would your idea work?
Juste like any file explorer, a folder button to clique,when name the folder and files, that's it

@BeatlesBOB I agree that having something built into the Sandpack file explorer would be nice because it would be more accessible to everyone.
That said, Sandpack makes it straightforward for you to implement something like this:
function CustomSandpackFileExplorer() {
  const [fileName, setFileName] = useState("");
  const { sandpack } = useSandpack();

  return (
    <div className="custom-sandpack-file-explorer">
      <form
        onSubmit={(event) => {
          event.preventDefault();
          if (!fileName) return;
          sandpack.addFile(fileName, "");
          setFileName("");
        }}
      >
        <label>
          File
          <input
            value={fileName}
            onChange={(event) => setFileName(event.currentTarget.value)}
          />
        </label>
        <button>Add File</button>
      </form>
      <SandpackFileExplorer />
    </div>
  );
}

Here's a CodeSandbox using the example above: https://codesandbox.io/s/recursing-rui-ftnrt7?file=/src/App.tsx
If you want a more complete out-of-the-box solution, there's also the sandpack-file-explorer package.
If we do want to add this to the Sandpack package then we probably should outline the requirements. I think at a minimum, you'd want the following:

Add a new file
Rename files
Delete files

I have a rough implementation of the above in a personal project I'm working on called Kempo:
.
I'd be happy to iterate on it and flesh it out a bit more if there's interest in having this functionality directly in the Sandpack file explorer.


Node process isolation

It seems by default functions runtime tries to execute multiple instances of the function in the same process. Is there some config that can be set to isolate each function invocation by always running it in a new process? There are couple of reasons the default behavior is sub-optimal for us:

If the host goes down due to some issue in one instance (unhandled node exception or some other error), it affects all other instances running on the same host (they have to be retried, which is not always possible etc.)
Some modules that the function depends on have global variables that are shared between different function invocations, which is also undesirable.

I understand that executing a function every time in a separate process may cost more, but in this case achieving high reliability is more important than potential extra cost or slightly lower performance.

No there is no way to do this currently - we run functions in a shared process model only right now.
One potential workaround would be to use our BAT/Bash support which is out of process (new process per invocation). Outside of the perf drawbacks to this, the programming model won't be as rich as it is for in process Node.

Thank you, I'll look at the batch support. It seems like basic bindings are supported (such as queue input), are there other potential issues due to the limited programming model? (Especially some tricky ones that won't show up at development time)
Also it looks like the Node.exe version installed in the system is really old (v0.10.28). Is there a way to update it? (DebugConsole doesn't seem to have enough permissions)

Our VMs have node 6.3.0 installed which is pretty recent.

Hmm executing "node -v" in the Debug Console prints v0.10.28 (installed in D:\Program Files (x86)\nodejs\0.10.28). There is also another one at D:\Program Files (x86)\nodejs, but it seems even older (v0.6.20). Did I miss some other location?

Try setting the WEBSITE_NODE_DEFAULT_VERSION app setting (details here).

That one is already set to 6.4.0. Anyway I can probably specify the full path to 6.3.0 explicitly.


[FR] Add ID filter widget to App

The new filepath filter widget in the App is an awesome way to quickly lookup samples by their filepath.
Can we also expose the id field and let the user filter based on that? This would allow lookup of arbitrary sample(s) by ID, and would be useful for the same reasons that filepath is useful.
One detail here is that the UI should expose strings, and the backend filtering would need to convert to ObjectId, as per the other automatic id (str) <==> _id (ObjectId) conversions that we expose in our API.
Discussion
I wonder if we should introduce a new DEFAULT FIELDS section in the filters sidebar where these fields would live? One reason I say this is that these fields will be present on all datasets, so it might be helpful to separate them from SCALAR FIELDS, which are fields that the user has manually added to their dataset and thus, if present, may want to see in a dedicated area where "their data" lives.
Also, this would allow a 1-1 correspondence between the fields in the SCALAR FIELDS filter section and those in the Scalars graph tab. Currently filepath appears in the former but not latter, because filepath histograms are not interesting.
Also, in expanded mode, I would recommend that we continue to include id and filepath under the METADATA section at the top, rather than how filepath is now in the scalar fields section.

Resolved by #1017


Identify countries that will come

We need to create training material (most of it we have). For this we need to have an idea of what countries we are training.

Rwanda


[vis]x bound causes problem when there are only two x datapoints

Make sure these boxes are checked before submitting your issue - thank you!

[ ] I have checked the superset logs for python stacktraces and included it here as text if any
[x] I have reproduced the issue with at least the latest released version of superset
[x] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
latest master branch
Expected results
normal look in line chart
Actual results
everything squeezed together in line chart
Steps to reproduce
Choose a time interval that contains two or one x data points. If 'X bound' is not selected, line chart looks normal. If "X bound" is selected, everything squeezed together. Please see attached images.

Please reproduce with 0.17.0 or even better latest master

reproduced with the latest master branch. thank you so much for your attention.

btw, is 'airbnb_prod.<IP_ADDRESS>' the latest or '0.17.0' the latest. Is it safe to use those without 'prod' in the tag? Thank you!

#2427


Why is only django 4.2+ supported?

Reviewing the implementation that the package has and seeing that the core is mainly javascript, makes me wonder why only support Django 4.2+? Isn't it better to have greater backward compatibility between versions?
This is because currently I would like to use the package in its 2.0 version, but the dependencies cause me problems (I cannot upgrade to Django 4.2 due to other packages). I would consider that if it does not affect the package, modify the dependency with Django 4.2 and indicate that it is compatible with previous versions

I don't really use this package myself anymore, so I'm maintaining it at best effort. I took a bit of time to modernize and clean-up the code for version 2.0, including the removal of some backports for older Django versions that I've contributed upstream. Since older Django,  Python and browser versions are also no longer officially supported, I've decided to push the minimum requirements. All of this eases the maintenance of the package.
Feel free to use version 1.2.1 until you've upgraded your Django version. It works perfectly fine, you'll only be missing out on the JavaScript events.

I don't really use this package myself anymore

Out of curiosity, why don't you use it anymore? Do you currently work with another stack?

Out of curiosity, why don't you use it anymore? Do you currently work with another stack?

Indeed, changed to a job with a different technology stack.

Feel free to use version 1.2.1 until you've upgraded your Django version. It works perfectly fine, you'll only be missing out on the JavaScript events.
I wanted version 2.0 to have the JavaScript events, but given the above, possibly the best route for me is to fork until I can update Django to version 4.2

That's probably the best option, yes. By reverting some of the code changes made in<PHONE_NUMBER>a8d7cbc5eede569bb087e8820ed0df, you should be able to get it working rather easily. Good luck! 👍🏻


show the title when offline

example people will type title change PogU in offline chat, but you cant see it in offline chat and know what was changed

Feature has been added by PR #1347


CocoaPods can't find local podspecs

Analyzing CocoaPods uses pod spec which to find the location of a podspec file. Unfortunately CP only resolved the path if the pod is known in (one of) its repositories.
If a pod is included locally, the path is actually defined in the Podfile.lock, so imho there is no need to use pod spec which.
Eg in our Podfile we have:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

And node_modules/react-native/scripts/react_native_pods.rb then contains (snippet):
def use_react_native! (options={})
  # The prefix to react-native
  prefix = options[:path] ||= "../node_modules/react-native"

  # The Pods which should be included in all projects
  pod 'FBLazyVector', :path => "#{prefix}/Libraries/FBLazyVector"
  pod 'FBReactNativeSpec', :path => "#{prefix}/React/FBReactNativeSpec"
  pod 'RCTRequired', :path => "#{prefix}/Libraries/RCTRequired"
  pod 'RCTTypeSafety', :path => "#{prefix}/Libraries/TypeSafety"
  pod 'React', :path => "#{prefix}/"

This then gives us a Podfile.lock like this (snippet):
DEPENDENCIES:
  - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
  - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
  - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
  - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
  - Permission-Camera (from `../node_modules/react-native-permissions/ios/Camera.podspec`)
  - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
  - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
  - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
  - React (from `../node_modules/react-native/`)
  - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
  - React-Core (from `../node_modules/react-native/`)
  - React-Core/DevSupport (from `../node_modules/react-native/`)
--- SNIP ---
SPEC REPOS:
  https://XXX/CocoaPods/Specs.git:
    - boost-for-react-native
    - GCDWebServer

EXTERNAL SOURCES:
  DoubleConversion:
    :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
  FBLazyVector:
    :path: "../node_modules/react-native/Libraries/FBLazyVector"
  FBReactNativeSpec:
    :path: "../node_modules/react-native/React/FBReactNativeSpec"
  glog:
    :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
  Permission-Camera:
    :path: "../node_modules/react-native-permissions/ios/Camera.podspec"

Wouldn't it be easier (and faster) to try to retrieve the podspecs from this file and use pod spec which as a fallback? Running that would still be required for eg boost-for-react-native and GCDWebServer from the above snippet.
:warning: The podspec files here are not written in JSON as those in a GIT-repo normally are :warning:

I was trying to recall our decision for not parsing Podfile.lock and found this comment from @tsteenbe:

Most SCA tools seem to parse the Podfile.lock file to get the list of dependencies but that not what we usually do in ORT as a project might not have committed a lock file.

But yes, we could still look for a Podfile.lock first and only fall back to another solution if it doesn't exist, where the fallback could either be implemented via pod spec which, or a way to create a Podfile.lock and then reuse the code from the first code path.
The latter is actually the way we should probably do it for all package managers that support lockfiles (which can be parsed conveniently incl. the dependency hierarchy, an which offer an efficient way to create lockfiles without actually installing all dependencies, for performance reasons).

Another reasons for not parsing package manager lock files:

Package manager may select different packages than stated in the lock file - may happen if package manager has a new dependency version resolution, problems retrieving a specific version etc.
Lock files are sometime not updated at the same time as product definition file - have seen many cases where package.json has different packages than the package-lock.json / yarn.lock. Whenever I followed up on these people simply forgot to include or had excluded it in their Git config.

Maybe ORT should offer its users package analysis options such as:

'Fast' - prefer speed of analysis over accuracy so use lock files if available
'Accurate' - prefer accuracy over speed use build tools for dependencies info instead of using lock files
'Balance' -  Mix of speed and accuracy. Regenerate lock files for build tools that support it otherwise use build tools for dependencies info

Thoughts?

Lock files are sometime not updated at the same time as product definition file

As a side question, wouldn't it be fair if ORT just did what the package manager alone would do in this case? After all we want to capture what goes into the build.
Like, what does NPM do in this case, does it use the package-lock.json or package.json? Or does it use neither and refuse to run?

I believe what NPM does depends on the version you are using in your build... Not sure if a generic solution on your side would therefore be the best.
I have my team commit all lock files and try to run commands like npm ci and pod install --deployment during CI to make sure everything is as it should be (reproducible on mostly all systems -- got to love OS-specific dependencies!). Since I was planning on running ORT from CI as well, my preference would be the fast option that Thomas is describing -- since our builds would break when the lock-files aren't up-to-date anyway (although different versions of NPM again my decide to ignore breaking and just generate new lock files -- which would then be the 'correct' files to be used by ORT anyway).
I'm not sure if there is 1 single correct solution, especially in case of packaging tools in docker, because then you would be telling us which version of a specific tool is going to be used...
So again, my preference would be the fast version and to let me handle to correctness of my lock-files. But I can see validity in the other variants as well...

This could probably be similarly solved to 4bbd26a8a4dde135054d4ceace5c90750882a3a0.

Since this is not yet supported, can you give any recommendations what kind of curation could be used as a workaround?
We have Flutter project where dependencies are downloaded by pub and made available for iOS build as local dependencies.
pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
...
  url_launcher: ^6.2.5

ios/Podfile.lock
PODS:
  - url_launcher_ios (0.0.1):
    - Flutter
...
DEPENDENCIES:
  - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)...
...
EXTERNAL SOURCES:
  url_launcher_ios:
    :path: ".symlinks/plugins/url_launcher_ios/ios"

The problem is that the Pod has always version 0.0.1, so we really cannot point ORT to GitHub.
You can see this by comparing https://github.com/flutter/packages/blob/url_launcher-v6.1.10/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec and
https://github.com/flutter/packages/blob/url_launcher-v6.2.5/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec

@timo-HERE, please do not hijack issues with support requests, but start a discussion instead.

Created https://github.com/oss-review-toolkit/ort/discussions/8343
I hope that this issue can be resolved soon. This is way out of my league.

Closed as part of backlog grooming. Feel free to comment if you would like to contribute to this.


[Hub Generated] Review request for Microsoft.LabServices to add version stable/2023-06-07

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!

[x] New API version. (Such PR should have been generated with OpenAPI Hub, per this wiki doc.)
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix swagger quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I have reviewed the general guidance on the spec PR review process: https://aka.ms/specprreview.
[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data-plane related specifications.
[x] I commit to follow the Breaking Change Policy.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can request review from an ARM API Review board.

ARM API changes review

If you want for the ARM team to review this PR, you must add the ARMReview label.
The automation may automatically add the ARMReview label, if appropriate.
If this happens, proceed according to guidance given in GitHub comments also added by the automation.

Breaking change review
If you have any breaking changes as defined in the Breaking Change Policy,
follow the process outlined in the High-level Breaking Change Process doc.
Getting help

For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For additional help, see https://aka.ms/azsdk/support/spectools.

@visingla-ms Thanks for giving the ARM sign off! Can we get approval on this PR so we can merge or is there anything else you want us to do before getting approval?


allowing nil in generic functions will not solve *new(T) problem

Why not?  I'm suggesting that we permit v = nil for a variable whose type is a type parameter, and return nil for a result whose type is a type parameter.

@ianlancetaylor I stand corrected then. But either way, we should either
a) try to generalize nil for both generic and non-generic code. This has a downside of not being able to catch "V == nil when previously the V was a pointer/ref-type and now its not" errors that @rsc outlined above. (Side note, I also think that current nil solution, which is restricted to generics, will have the same problem of continuing of being correct when you switch type parameter from *T to T. But it also has an upside of not introducing another predeclared identificator.
b) Proceed with zero which (as far as I understand it) will require you to change code from zero to nil and vice versa if you decide to change type constraints (such as moving from T to *T).

@DmitriyMV

The fact that you can compare anything to nil in generic functions but not in regular is also going to be a problem when teaching people about generics in Go - you'll have to explain that this is special case created to solve a specific problem. I do not think that introducing new special case is a good idea. zero on other hand is quite easy to explain - you can't start using it even before you get to generics.

I'm not sure zero is always easier than nil to explain or to understand in generics. This proposal has been refined to address questions about multiple spellings of the zero value, and when or where they are permitted. I'm not trying to raise an objection to proceeding with the proposal, but just for consideration regarding the refinement:
One of the Go proverbs is to "make the zero value useful". In generics, it is possible to construct constraints where, for all types in the type set, the zero value is useful (modulo the definition of "useful", which itself may be subtle). Barring really exceptional mechanisms, I think the way to do this is a union-of-terms constraint with no ~ approximation terms. Significantly, this may include nil-assignable types. Not all zero values of nil-assignable types are useless, and not all zero values of non-nil-assignable types are useful. So, there's really no static way to determine whether the zero value is useful. Instead, it's just that the constraint is built with that intent.
A spelling rule that might be of some utility on this question: allow nil or zero equivalently in generics, and prefer to use nil when the zero value is not provably useful, but use zero when it is. This is only expressible as a style preference.
There are two spelling rules that could be stronger than a style preference. One would be, only use nil. Another would be only use zero (I think this is the case for the current proposal.)

Having the "zero value" be spelled "zero" only some of the time feels needlessly inconsistent and unsatisfactory.

It's been over 5 years since I proposed _ and I still find myself wanting it all the time.

==
nil
comparable
zero

slice
✔
❌
✔

pointer
✔
✔
✔

struct
❌
✔
✔

It's curious how easy this should be, except that maps, slices, and functions are not considered comparable, despite being comparable to nil. This has created the asymmetry in the table above - although t == *new(T) is clearly understood, and naturally zero would be defined as *new(T), this doesn't play correctly with neither any nor comparable.
So, it seems to me the simplest goal of this proposal is to make this function possible:
func IsZero[T comparable](t T) bool {
	return t == *new(T)
}

func main() {
	IsZero(*new([]int))
}

The table shows the possible solutions to the IsZero function:

add reference types to comparable
add a new zero keyword that any type is comparable to
add zero for non-reference types
allow comparison of any type to nil

Option 1 can't work because comparable exists for a reason and this change makes it equivalent to any.
Option 2 can't work because of all the ambiguity. You could return nil or zero, you could say var a []int = nil or var a []int = zero.
Option 3 only partially works. We could create IsZero and IsNil functions, however we would need a new builtin for makeable or similar, which defines most types that can compare to nil.
Option 4 offers the clearest solution, allowing IsZero to accept any T. The semantics of nil are well understood, albeit only for reference types.
Conclusion: makeable and zero
For me, option 3 is the best, strictly because creating structs with nil feels misleading. Therefor I would propose or support the new makeable and zero keywords:
func IsNil[T makeable](t T) bool {
	return t == nil
}

func IsZero[T comparable](t T) bool {
	return t == *new(T)
}

func MyFunction() (time.Time, *int) {
	return zero, nil
}

I think this solves not only the immediate problem but some grander scheme ideas as well. The docs for "make" say it "takes a type T ... must be a slice, map or channel", so the backend work is already done to determine if any T satisfies makeable. The docs for make could be upgraded to specify it accepts any makeable. It has perfect asymmetry with comparable already, and zero becomes the antonym of nil. There is no ambiguity with this solution, so it has my full support.

type
int
struct
*int
map
func
chan

comparable
✔
✔
✔
❌
❌
❌

makeable
❌
❌
❌
✔
✔
✔

zero
✔
✔
❌
❌
❌
❌

nil
❌
❌
✔
✔
✔
✔

It's been over 5 years since I proposed _ and I still find myself wanting it all the time.

==
nil
comparable
zero

slice
✔
❌
✔

pointer
✔
✔
✔

struct
❌
✔
✔

It's curious how easy this should be, except that maps, slices, and functions are not considered comparable, despite being comparable to nil. This has created the asymmetry in the table above - although t == *new(T) is clearly understood, and naturally zero would be defined as *new(T), this doesn't play correctly with neither any nor comparable.
So, it seems to me the simplest goal of this proposal is to make this function possible:
func IsZero[T comparable](t T) bool {
	return t == *new(T)
}

func main() {
	IsZero(*new([]int))
}

The table shows the possible solutions to the IsZero function:

add reference types to comparable
add a new zero keyword that any type is comparable to
add zero for non-reference types
allow comparison of any type to nil

Option 1 can't work because comparable exists for a reason and this change makes it equivalent to any.
Option 2 can't work because of all the ambiguity. You could return nil or zero, you could say var a []int = nil or var a []int = zero.
Option 3 only partially works. We could create IsZero and IsNil functions, however we would need a new builtin for nillable  or similar, which defines types that can compare to nil.
Option 4 offers the clearest solution, allowing IsZero to accept any T. The semantics of nil are well understood, albeit only for reference types.
Conclusion: nillable and zero
For me, option 3 is the best, strictly because creating structs with nil or returning a nil struct flies against all our understanding of what nil means. Therefor I would propose or support the new nullable and zero keywords:
func IsNil[T nillable](t T) bool {
	return t == nil
}

func IsZero[T comparable](t T) bool {
	return t == *new(T)
}

func MyFunction() (time.Time, *int) {
	return zero, nil
}

So zero is equivalent to *new(T), and is allowed for any type that is not nullable. Then, with the nullable builtin interface providing complete type coverage (in combination with comparable), anything we could want to do becomes possible, without adding any ambiguity. The most interesting thing is that people would still need to do var zero T still.

type
int
struct
iface
*int
map
func
chan

comparable
✔
✔
✔
✔
❌
❌
❌

nullable
❌
❌
✔
✔
✔
✔
✔

zero
✔
✔
❌
❌
❌
❌
❌

nil
❌
❌
✔
✔
✔
✔
✔

@dans-stuff

The only type for which a zero keyword is useful is structs, as 0, "", nil cover everything else nicely.

Please read the rest of the discussion.

That set does not cover type parameters either.
It also doesn't address the point of comparing non-comparable types to their zero value.
(nit) It's not a keyword, it's a predeclared identifier.

Simply repeating things that have already been said is not very helpful. Even less so, if they are wrong and ignore major parts of the motivation of the proposal.

Apologies, I didn't spot the "237 nested replies" 🤦
One small thing I haven't seen discussed, and maybe this is obvious to everyone else.. but does the Go compiler not know when a value has not been given for a variable? Could we not just allow this to compile:
func IsZero[T any](t T) bool {
    var zero T
    return t == zero
}

Nowhere have we assigned to zero, so the compiler has 100% certainty about its value. The old "incomparable types in type set" error can just give this specific form of comparison a free pass, perhaps?

Nowhere have we assigned to zero, so the compiler has 100% certainty about its value. The old "incomparable types in type set" error can just give this specific form of comparison a free pass, perhaps?

To be consistent with the rest of the language, it would need to be const. Right now you’re not allowed to declare const for a lot of different types, but maybe the rule could be relaxed so you can declare a const zero value.

const declarations need to actually assign a value. So you'd have to write const zero = … leaving us right back where we started. And I don't think learning "you see, if you declare a variable without assigning it, you can compare it even if it is not comparable otherwise" is much easier than learning what zero means. So I really don't see how that heuristic would actually be any better than this proposal (in any of its flavors).

Is there any particular reason we couldn't allow const A? I understand it's a bit silly, but we allow var A 🤔

I can't think of a particular reason why we couldn't, but it is an extremely strange hammer for this problem. It would serve absolutely no purpose except to have something to denote the zero value - of one specific type. So you'd still have to declare it all over the place, and if you have two type parameters (for example) you need to do const zeroA, zeroB. We'd also need to change the spec to allow const of any type, but only if they are declared that way. And then to allow comparison for any type, but only if one of them is a constant declared that way.
It's an absurd proposition, IMO. It doesn't fit into the language at all.

I don’t think it’s absurd. I have previously tried writing const name T and been disappointed when it didn’t work. TBF, it was in the context of trying to create a zero value for a comparison, so I wouldn’t have done it if zero already existed, but if for some reason zero is considered unacceptable to the community (I have never really understood the opposition to it or the search for alternatives like nil but whatever, tastes vary), using a zero const would be an acceptable fallback to me.

@robpike If zero is the spelling for the zero value of any Go type (as implied by your comment), it will be possible to write things like p = zero and also *p = zero if p is a pointer type. At least in my mind, this reduces readability of the code because it removes implicit type information that's present when using nil, "", 0, or T{}, etc. Is that what you are suggesting?


how to benchmark hardnet features?

Currently I imported the hardnet feature via import_features.py .
I found out that the several new folders and files were created at benchmark-results directory.

Now I want to evaluate the features from hardnet by run.py .
After looking into the run.py file, I realized that the compute_feature.py was called and
some routine for hardnet is necessary in compute_per_img_file function.

Should I need to implement this routine by myself or do you provide them?
My ultimate goal is to perform the benchmark on my own descriptor network.
Thanks you!

compute_feature is only called if the features do not exist already. You probably didn't pass the correct settings. Your config file should have "sift8k" as keypoints, "hardnet" as descriptors, and the correct number of keypoints (2048), and the features should exist for the datasets you're trying to call (val or test). Please double-check your config file and copy-paste it here if you can't figure it out.


Pulse 14 DE-EN Layout

Changed modifier keys to their corresponding print on a en_UK-Layout. Changed keys are:
SUPER (Arch Logo)
POS1 (HOME)
BILD (PAGE)
STRG (CTRL)
EINF (INS)
ENTF (DEL)
DRUCK (PTRSC)

This pull request was no regarded when my notebook was manufactured.

This pull request was no regarded when my notebook was manufactured.


Fix symbol handling, where the symbol name is not a {base}{quote} name concatenation, fixes #4

Fix symbol handling, where the symbol name is not a {base}{quote} name concatenation
Refresh symbols with new set

Instead I have changed GetSymbolsAsync to log and ignore rather that throw exception on invalid symbols (e.g. "ETC").


x/tools/go/present: html output command

I know you can Save as... the presentation from the browser but it would be nice to have a flag to output html to a directory for archival purposes.

Bump! Anyone reading this? Is present maintained?


Ugly URLs for Menu of pageRef = '/' Does Not Generate an Ugly URL (New Theme from hugo new theme)

What version of Hugo are you using (hugo version)?
% hugo version
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio

Does this issue reproduce with the latest release?
Yes.  I the recreation steps with hugo v0.121.2-6d5b44305eaa9d0a157946492a6f319da38de154 linux/amd64 BuildDate=2024-01-05T12:21:15Z VendorInfo=gohugoio.  The same misbehavior happens.
I checked specifically:

New Hugo regenerating the static content from the existing Hugo workspace.
Creating a new theme in the new Hugo and using that with the static content generation.

The problem happens in both cases.
Recreation Steps

% hugo new site quickstart

% cd quickstart

% hugo new theme theme

% echo "theme = 'theme'" >> hugo.toml

% echo "uglyURLs = true" >> hugo.toml

% hugo

% less public/index.html
Within step no. 7, verify what the menu link for Home points to.  The link will have href="/", which is incorrect per having ugly URLs enabled.

What I Expect to Happen
The default template output from hugo new theme  should emit output such that step no. 7 from above shows a href="/index.html" for the Home menu item instead of href="/".
Diagnosis
I am uncertain whether this is a problem with the Hugo new theme generator or the internals of Hugo itself.  I suspect it is not the theme generator given that file themes/theme/hugo.toml contains:
baseURL = 'https://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'

[[menus.main]]
name = 'Home'
pageRef = '/'
weight = 10

[[menus.main]]
name = 'Posts'
pageRef = '/posts'
weight = 20

[[menus.main]]
name = 'Tags'
pageRef = '/tags'
weight = 30

[module]
  [module.hugoVersion]
    extended = false
    min = "0.116.0"

It seems that pageRef should canonicalize to /index.html with ugly URLs enabled.
When running the Hugo development server locally, everything appears to work, as the server remaps / back to /index.html.  If someone is using pure static content serving without URL rewriting (cf. Apache mod_dir with the DirectoryIndex directive), then the emitted URL is incorrect.  I am in that boat.
Workaround
I found I could work around adjusting the menus.main directive in file themes/theme/hugo.toml to the following:
[[menus.main]]
name = 'Home'
url = "//index.html"
weight = 10

That doesn't seem super scalable/reliable, though.

Duplicate of https://github.com/gohugoio/hugo/issues/7497


Allow publishing to multiple Jira instances

At the moment we only cater for publishing to projects under one Jira instance, specified in the JIRA_BASE_URL.
Acceptance criteria for publishing to multiple instances:

[ ] Allow publishing to multiple instances
[ ] Retain current ease of setup for when there is just one Jira instance (as this is the most common use-case)
[ ] Minimise (avoid completely if we can) Jira API requests on the wrong Jira instance for a given Jira issue.
[ ] Will need to allow Jira authentication details for each instance to be specified as plugin configuration variables

e.g. JIRA_USERNAME2, JIRA_TOKEN2 etc

Here is one idea how we could implement this:
Allow multiple Jira base URLs to be specified, e.g:
JIRA_BASE_URL=https://example.com
JIRA_BASE_URL2=https://example2.com

In the case of there being more than one Jira base URL, the project(s) associated with each Jira instance could then be specified too as config variables, e.g. as a comma-separated list:
JIRA_BASE_URL_PROJECTS=APROJECT,ANOTHERPROJECT
JIRA_BASE_URL2_PROJECTS=SOMEPROJECT,SOMEOTHERPROJECT

That way the plugin would know which Jira instance given Jira issue key are associated with, e.g. from the above example

APROJECT-1 would be published to https://example.com/browse/APROJECT-1
SOMEPROJECT-1 would be published to https://example2.com/browse/SOMEPROJECT-1

(If a Jira project name is associated with more than one Jira instance, any Jira issue keys with that project name appearing in Gauge specs would be published to all the instances where the project name is associated.  In theory this may not always be the desired behaviour, but it's enough of an edge case not to warrant anything more sophisticated.)
Actually, it could be much smoother from a usability point of view to not require the plugin configurer to have to specify the projects at all.  Instead the plugin could (in the scenario of multiple Jira instances rather than just one) get the list of all projects for each instance via the Jira API, and thus know which instance a given issue key corresponds to (as above, in the rare situation where a Jira project name is associated with more than one Jira instance, any Jira issue keys with that project name appearing in Gauge specs would be published to all the instances where the project name is associated.)

Have been thinking about this more, and I'm not as convinced there will be as much demand for this as I first thought.
One workaround without this feature would simply be to change the configuration for different "runs" of the plugin, pointing at different Jira instances.  So I'm currently thinking not to implement this until or if there is demand for it.

Have been thinking about this more, and I'm not as convinced there will be as much demand for this as I first thought.
One workaround without this feature would simply be to change the configuration for different "runs" of the plugin, pointing at different Jira instances.  So I'm currently thinking not to implement this until or if there is demand for it.

As above, the solution is to run the plugin more than once, pointing at a different Jira instance (using the configuration variables specified in the README) each time.