Change the metadata serialization from cbor to capnproto

Capnproto [1] is a fast data interchange format which uses zero-copy serialization, meaning there is no encoding/decoding step.
Advantages over cbor:

it removes the custom fixed-length serialization for the inode vector
it removes the streaming deserializer hack (used because we leave extra bytes on the wire)
it removes the artificial splitting of the Inode structure (a low-level Inode which stores the offset to its additional data and a high-level Inode structure which rebuild the data at runtime)
it removes the custom serialization code used to compute the offsets of the data structures on the wire (and also having to deal with the specifics of the cbor encoding format)
the encoding format splits the structures into two sections [2], data and pointers, which is similar to our strategy of storing offsets into the low-level Inode structure, so we could efficiently store the vector of Inodes at the beginning of our metadata file; however, Capnproto handles this serialization for us
the format is not self-describing (it uses a schema language in which you must describe your data), so it should takes less space on disk
it allows schema evolution, which means we can add new fields to our schema over time, without breaking backwards-compatibility [3]

Disadvantages:

while the Capnproto format itself doesn't require encoding/decoding, it also doesn't generate Rust structures, which means that every field access must be done through getters and setters; to make my life easier, I've written from_capnp and to_capnp functions for each structure, so I could create a Rust structure from the in-memory Capnp serialization format; however, this also means that my implemenentation is not zero-copy, since it needs to allocate Rust structures; anyway, this implemenentation is similar to what was done with the cbor serialization, so it shouldn't be less performant; Kent Overstreet also had some suggestions for improvement [4]
there is no support for specifying required or optional fields in the format, so the data validation onus is on the user of the library; on the other hand, this could be an advantage because it allows greater flexibility (we don't need to wrap the structure into an Option if we decide it's not required, e.g. fs verity data)

Other changes:

BlobRef now always holds a digest, it never refers to an offset in the same file

For a Ubuntu 20.04 distribution (single layer puzzlefs image) the amount of space taken by the metadata is:
Cbor serialization:
puzzlefs manifest: 869K
puzzlefs metadata layer: 4.2M
Capnproto serialization:
puzzlefs manifest: 662K
puzzlefs metadata layer: 3.8M
https://capnproto.org/ [1]
https://capnproto.org/encoding.html#structs [2]
https://capnproto.org/news/2014-06-17-capnproto-flatbuffers-sbe.html [3]<EMAIL_ADDRESS>[4]
Fixes #18

@tych0 I thought you might have an input on this

Big +1 from me, all of your disadvantages listed are just hacks I threw in to get something going. As Kent says, it's always possible the language/library ergonomics improve, so I don't think these conversion methods are a huge drawback right now.
The no-optional-fields thing seems a little weird... it feels like filesystems/databases/formats etc. could definitely have optional fields in some cases. But this can mostly be handled all in one place in your to_/from_ methods, so it doesn't seem too annoying. I'd want to keep the optional types actually Option-al in the Rust code, though.

BlobRef now always holds a digest, it never refers to an offset in the same file

It's been a while, but does this mean that BlobRef is redundant?

I think I wasn't clear when I said there is no support for optional fields. In a way, all the fields are optional because there is no way to mark a field as "required". This makes things a bit convoluted, because calling "get" on a missing field still returns its default value, even if it is actually missing. So the validation code has to call "has_" to actually check whether the field is present or not.
See "How do I make a field “required”, like in Protocol Buffers?" and "How do I make a field optional?"
in https://capnproto.org/faq.html for details.
BlobRef is used to address file data, using a digest to identify the "data chunk" (produced by the FastCDC algorithm) and an offset in this chunk. It was also used to refer to an offset in the same file, but this is no longer required since Capnproto handles this. So that was the part that I've removed from BlobRef.

I see, makes sense, thanks!

@koverstreet I thought you might be interested in this PR which changes the metadata format from CBOR to Capnproto (as you suggested). This is a fuse implementation of puzzlefs and I'm now working on getting Capnproto into the Linux kernel. I expect the API related to Capnproto to be more or less the same in the kernel  (except I won't regenerate the rust code using a build script, since that introduces a dependency on the capnp binary and I also don't expect frequent changes to the data format).

Really happy to see this!
Option<> is another thing I'd love to see in Cap'n Proto. It's got tagged unions which are pretty close; it should be possible to map these to an Option<>

Since a structure is optional in Capnproto, isn't it semantically an Option? For primitive fields you can't get an Option, since they can't be missing.

Well, structures are optional due to an implementation detail; they have to be behind pointers so they can have fields added. If we add frozen types (from Swift) to Cap'n Proto, we'll be able to have structs that aren't behind a pointer but can't be changed.
Better question: do we want to expose that aspect of structs, when we do language level types? We might have to, because you can't take a reference to something that doesn't exist, but I don't think we want to if we can avoid it - it's the NULL problem all over again; the user should be able to decide which fields are Options<> and which aren't when designing their types.

Better question: do we want to expose that aspect of structs, when we do language level types? We might have to, because you can't take a reference to something that doesn't exist, but I don't think we want to if we can avoid it - it's the NULL problem all over again; the user should be able to decide which fields are Options<> and which aren't when designing their types.

Absolutely agree here. I'd be curious about lending a hand to do any of the implementation stuff to make it work, though I have no idea what's involved.

I think there's three main angles to work on.
There's doing up-front bounds checking so that get/set can't return errors - that can be done purely within the Rust capn'p library, so shouldn't be too hard.
For proper language-level types, we need to talk to Rust compiler people about computed properties and find out if this is already being explored or if there's someone working in that area of the compiler that could lend a hand. Miguel?
Lastly, I think we'll want to look at extending the Capn'p spec for frozen types, and perhaps also supporting real (ADT) enums better. If we get started on the first two I'll start talking to people and writing something up.

So, this is a breaking change, right?  Prior versions can't mount images created by new version, and vice versa?

In theory yes, and we should also bump the versions in Cargo.toml. In practice, I'm not sure, since we don't have any users of puzzlefs.

In theory yes, and we should also bump the versions in Cargo.toml. In practice, I'm not sure, since we don't have any users of puzzlefs.

Well, that you know of :)
But, sounds good.  Thanks.


Rework Scorelimit Checks

Move winner checks in AddTeamScore() to GameStateEnter_Playing_Threaded()
Fix AddTeamScore(), so team score won't go over limit

Changing this is because if we SetWinner() right after changing team score and some network variable, the gamestate will stuck( eg.  in bounty hunt, depositing bonus to win will stuck )

Changing this is because if we SetWinner() right after changing team score and some network variable, the gamestate will stuck( eg. in bounty hunt, depositing bonus to win will stuck )

We've fixed bounty hunt not ending differently from what you did in this commit. We've went with our solution as we didn't really understand yours. Would appreciate if you could explain how / why this works :)
Otherwise this PR looks good

Changing this is because if we SetWinner() right after changing team score and some network variable, the gamestate will stuck( eg. in bounty hunt, depositing bonus to win will stuck )

We've fixed bounty hunt not ending differently from what you did in this commit. We've went with our solution as we didn't really understand yours. Would appreciate if you could explain how / why this works :)
Otherwise this PR looks good

I see!! I didn't add a GetGlobalNetBool( "banksOpen" ) in player depositing loop, thanks for fixing that!


Error example generator

This is a program that generates examples of erroneous parses, along
with some information about the potential errors, with the intention of
allowing developers to quickly find out what states do not have
associated error messages.
Ideally, this program would be used to check that there are no states
that are missing error messages, but actually adding all of those
messages is not feasible right now: at this change,
enumerate_parse_errors finds 5808 states that are missing messages.

This is an update of a PR from some time in 2023 which I never actually finished, which, itself, is an update of an internal CL from 2015(!) that was approved but never actually checked in, so... it may be a little bit disjointed.
It's also pretty algorithmically subtle.  I have tried to document it, but I am not confident that I was able to make it clear.


Code Used to Unlock Door

Love this integration, thank you for making it! Will you be adding support to see which codes were used to unlock the door in the future?

I have looked at this once before.  I can get the history from the lock directly, but I am still working on figuring out how to add it to the log directly for the lock since it reports from a separate query and we are only updating every so often on the lock right now.  Definitely something I will keep investigating.


LICENSE file is empty

https://github.com/kashiif/copy-urls-expert/blob/master/LICENSE file is empty. I suggest adding a LICENSE, GPLv3+ is a good suggestion. Other good licenses exist too.
Thanks

+1. I'd like to include this project in the free software directory, but I can't tell that it's free software. https://directory.fsf.org/wiki/Main_Page. Even more important than putting something in the license file is a notice in the readme or the license file stating the license that all files are under. Right now, some have no license header.


[CS2103T-W10-1] GreenMileageEfforts

GreenMileageEfforts (GME) is a platform that helps drivers and passengers of any IT company quickly arrange car pooling in order to lower their carbon footprint. The platform follows that of a command line interface (CLI) such that power users that are familiar can efficiently navigate the program.

Codecov Report

Merging #1 (b09ccef) into master (c36220c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Continue to review full report at Codecov.

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

Codecov Report

Merging #1 (d9fdb6d) into master (eccb717) will increase coverage by 2.29%.
The diff coverage is 79.23%.

@@             Coverage Diff              @@
##             master       #1      +/-   ##
============================================
+ Coverage     72.15%   74.45%   +2.29%
- Complexity      399      678     +279
============================================
  Files            70       98      +28
  Lines          1232     2012     +780
  Branches        125      228     +103
============================================
+ Hits            889     1498     +609
- Misses          311      426     +115
- Partials         32       88      +56

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/seedu/address/MainApp.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...in/java/seedu/address/commons/core/LogsCenter.java
80.55% <ø> (+2.17%)
10.00 <0.00> (ø)

.../main/java/seedu/address/commons/util/AppUtil.java
100.00% <ø> (+11.11%)
5.00 <0.00> (ø)

...ava/seedu/address/commons/util/CollectionUtil.java
100.00% <ø> (+12.50%)
5.00 <0.00> (ø)

...in/java/seedu/address/commons/util/ConfigUtil.java
100.00% <ø> (+25.00%)
2.00 <0.00> (ø)

...main/java/seedu/address/commons/util/FileUtil.java
80.95% <ø> (+3.67%)
9.00 <0.00> (ø)

...ava/seedu/address/logic/commands/ClearCommand.java
100.00% <ø> (ø)
2.00 <0.00> (ø)

...va/seedu/address/logic/commands/CommandResult.java
83.33% <0.00%> (-4.91%)
10.00 <0.00> (ø)

...java/seedu/address/logic/commands/HelpCommand.java
100.00% <ø> (ø)
2.00 <0.00> (ø)

...ss/logic/commands/exceptions/CommandException.java
100.00% <ø> (ø)
2.00 <0.00> (ø)

... and 112 more

Continue to review full report at Codecov.

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


bugfix for story preview

when next user story is visible by automatically and if you use iphone X and above, story cell's collectionview's top constraint is broken.
I fixed it
tested on ios 15
PR Details

Description

Motivation and Context

bugfix for story preview


Completion is not expanded

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Announcement

[X] I have checked Breaking change announcement.

Minimal reproducible full config
call plug#begin('~/.config/nvim/plugged')
Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-cmdline'
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-vsnip'
Plug 'hrsh7th/vim-vsnip'
call plug#end()

lua <<EOF
  -- Set up nvim-cmp.
  local cmp = require'cmp'

  cmp.setup({
    snippet = {
      -- REQUIRED - you must specify a snippet engine
      expand = function(args)
        vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
        -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
        -- require('snippy').expand_snippet(args.body) -- For `snippy` users.
        -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
      end,
    },
    window = {
      -- completion = cmp.config.window.bordered(),
      -- documentation = cmp.config.window.bordered(),
    },
    mapping = cmp.mapping.preset.insert({
	['<C-b>'] = cmp.mapping.scroll_docs(-4),
	['<C-f>'] = cmp.mapping.scroll_docs(4),
	['<C-Space>'] = cmp.mapping.complete(),
	['<C-e>'] = cmp.mapping.abort(),
	['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
    }),
    sources = cmp.config.sources({
      { name = 'nvim_lsp' },
      { name = 'vsnip' }, -- For vsnip users.
      -- { name = 'luasnip' }, -- For luasnip users.
      -- { name = 'ultisnips' }, -- For ultisnips users.
      -- { name = 'snippy' }, -- For snippy users.
    }, {
      { name = 'buffer' },
    })
  })

  -- Set configuration for specific filetype.
  cmp.setup.filetype('gitcommit', {
    sources = cmp.config.sources({
      { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
    }, {
      { name = 'buffer' },
    })
  })

  -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
  cmp.setup.cmdline({ '/', '?' }, {
    mapping = cmp.mapping.preset.cmdline(),
    sources = {
      { name = 'buffer' }
    }
  })

  -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
  cmp.setup.cmdline(':', {
    mapping = cmp.mapping.preset.cmdline(),
    sources = cmp.config.sources({
      { name = 'path' }
    }, {
      { name = 'cmdline' }
    })
  })

  -- Set up lspconfig.
  local capabilities = require('cmp_nvim_lsp').default_capabilities()
	require("lspconfig").tsserver.setup {
	  capabilities = capabilities,
	}
	require("lspconfig").lua_ls.setup {
	  capabilities = capabilities,
	}
EOF

Description
I'm probably doing something wrong but would appreciate any help.
When pressing enter to select a lsp completion the selected completion is not expanded.
If I select a snippet, rather than a completion, the snippet is expanded.
:CmpStatus looks fine I think

# ready source names
- buffer
- vsnip
- nvim_lsp:lua_ls

# unused source names
- path
- cmdline

Steps to reproduce
Type "req" in a lua file and select the completion for "require(modname)"
Expected behavior
Completion expanded to require("modname") after pressing enter
Actual behavior
Completion expanded to require after pressing enter
Additional context

NVIM v0.8.3
Build type: Release
LuaJIT 2.1.0-beta3

Expansion seems to work with the tsserver which is what I care most about. I just needed to pass the following setting to tsserver
``
settings = {
completions = {
completeFunctionCalls = true,
}
},


Pages don't load on IE11

Nothing loads on IE11.  Instead, a blank document is displayed.
URL tested: http://localhost:8000/
Open URL on Browserstack

Property
Value

Browser
Ie 11.0

Operating System
Windows 10

Resolution
1280x1338

Screenshot Attached
Screenshot URL

Click here to reproduce the issue on Browserstack

Updated Screenshot Attached


Guard against file truncation in CalcJobOutputFollower

We need to put  a bounds check on this line:
https://github.com/ispg-group/aiidalab-ispg/blob/54081f89ff186793cae8a754fb1746ccf29c9979/aiidalab_ispg/app/qeapp/widgets.py#L320
Same bug is present in QeApp CC @unkcpz

So you are worried about the lines being too many? What is the change you proposed?

Yes, if the file got truncated somehow than the code I linked to will raise an out-of-bounds error. We need to add a check to prevent that.
I'll prepare a PR for my app and ask you for review.


Helia adaptation to zarr files using hamt

Due to migration from ipfshttpclient to helia, zarr hamt functionality was not working as expected.
In this PR I merged "Zarr Library Updates" and "Adding support for hamt" and added changes to these to make it work with helia
This modifications makes possible to read zarr using hamt structure using helia.
The idea of this PR is to keep adding functionality and improving it codewise once everything related to zarr was working, including decryption.

Closing as the code is included in #6


feat(streaming): hash join fill cache when insert if pk is contained in join key

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
as title
Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features).
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)

LGTM, btw, another optimization is that, when pk is contained in join key, we can use get instead of iter to fetch the state. Have we done this optimization?

After we dedupe the pk from join key, the pk of the table should be join key alone. I assume in this case the iter and get have similar performance?

After we dedupe the pk from join key, the pk of the table should be join key alone. I assume in this case the iter and get have similar performance?

Yes, I have checked and we have not done that yet. we can do this optimization in the state table later.


when will the part of the tools for 10x genomics Chromium 3' be updated?

Hi ,thanks for developing such a good tool
and if convenient ,I am looking forward to the part for 10x genomics Chromium 3' library,and very curious about when it will be uploaded.
Thanks!

up !


Wrong interpretation of time strings

fromtime = "2023-01-31 12:01"
totime = "2023-02-10 12:00"
df = c.read(tags, fromtime, totime, 60)
tagreader 3.0.1 with pandas 1.5.0 reads the above correctly. After an update to tagreader 3.0.2 and pandas 2.0.1 it does not. totime is then interpreted as October 2, not February 10.
utils.py issues the following warning:
UserWarning: Parsing dates in %Y-%m-%d %H:%M format when dayfirst=True was specified. Pass dayfirst=False or specify a format to silence this warning.
date_stamp = pd.to_datetime(date_stamp, dayfirst=True)

Should already be fixed in #177 (merged, not released)

in the meantime could you check if the following works?
from datetime import datetime
import pandas as pd

fromtime = pd.to_datetime(datetime(2023, 1, 31, 12, 1, 0))
totime = pd.to_datetime(datetime(2023, 2, 10, 12, 0, 0))
df = c.read(tags, fromtime, totime, 60)

Closed in #177


Add revList

Sometimes you want it backwards; sometimes you just want it fast.
revList :: Fold a [a]
revList = Fold (flip (:)) [] id

Is this actually faster than fmap reverse list?

I imagine so. I think the right question is probably whether list is
faster than fmap reverse revList.
On Mar 1, 2015 11:17 AM, "Gabriel Gonzalez"<EMAIL_ADDRESS>wrote:

Is this actually faster than fmap reverse list?
—
Reply to this email directly or view it on GitHub
https://github.com/Gabriel439/Haskell-Foldl-Library/issues/33#issuecomment-76605751
.

Oops!  I forgot that since this is a left fold computing the reverse of the list is more efficient.  Yeah, then I'll accept this.  Could you write up a pull request?

Sure. I'll have to wait till I'm at a proper computer tonight.
On Mar 1, 2015 11:29 AM, "Gabriel Gonzalez"<EMAIL_ADDRESS>wrote:

Oops! I forgot that since this is a left fold computing the reverse of the
list is more efficient. Yeah, then I'll accept this. Could you write up a
pull request?
—
Reply to this email directly or view it on GitHub
https://github.com/Gabriel439/Haskell-Foldl-Library/issues/33#issuecomment-76608085
.

I found some time to add this myself, so don't worry.


[RFE] Enhanced Wait Options for Kube-Burner

Background
I was trying to test the performance of ArgoCD by creating multiple ArgoCD applications, each deploying multiple deployments across multiple namespaces. I am using kube-burner to create these ArgoCD applications. Additionally, I need kube-burner to wait and capture data until each application reaches the synced state.
Issue
When trying to utilise the create job wait options, I found that the status structure of kube-burner does not match the ArgoCD application status structure. As a result, when kube-burner decodes the application status, it results in an empty structure.
Suggestions:

Wait Options for Read Jobs
I propose adding wait options to read jobs so that kube-burner can monitor deployments created by ArgoCD and capture metric data until the deployments are in the running state. Here is an example

objects:
- kind: Deployment
  labelSelector: {kube-burner-job: cluster-density}
  apiVersion: apps/v1
  waitOption:
    forCondition: Ready

Enhanced Wait Options for Create Jobs
I also propose enhancing the create job wait options to support waiting for any kind of resource with a specified label. Here is an example

objects:
- kind: Application
  objectTemplate: argocd/template/application.yaml
  replicas: 1  # Deploy 100 ArgoCD applications
  waitOptions:
    kind: Deployment
    labelSelector: {kube-burner-job: cluster-density}
    forCondition: Ready

Thank you for considering these feature requests.

@Mangaal A PR is open for your request. Can you test and confirm if its working for your usecase?

I think we can close this issue, wdyt @Mangaal ?


Can't compile by clang

Such as the line 11 in code_gen.h, it should add template<> before class Evaluator<Addr>. And in cpp.cc, the variable cond type of is int, but ppCondStack_.push() need a bool type parameter. Casting a int to bool is not valid.
clang is so different with gcc?

I have made both clang++ and g++ happy :)
Pull down the latest the commit to make sure it works for you :)

I will switch to use clang for it gives much more constraints which helps to write better code

All is well, thanks for your work.


Improving creation of ballots (fixes #3103)

This speeds up the creation a lot. (26 candidates. Before 12 s, after 2 s)

Confirmed. Successfully tested with 22 candidates.

More things changed:

Just one autoupdate for mass creation of speakers when creating a ballot.
Just one autoupdate for mass deletion ('delete all speakers from list').

@FinnStutzenstein travis failed:
ERROR: test_remove_someone_else (tests.unit.agenda.test_views.ItemViewSetManageSpeaker)

@normanjaeckel Any Idea how to avoid the inform_changed_data in the test?
I tried with
@patch('openslides.utils.autoupdate.inform_changed_data')
...
mock_inform_changed_data.return_value = None
def side_effect(*args, **kwargs):
    print('Hello')
mock_inform_changed_data.side_effect = side_effect

But this does not work.

@normanjaeckel Ping.


Quick Fix / No code actions available

I remember I could generate type annotation with Cmd+.. And I don't have it anymore.
I don't have code actions available like described in the README. But I have it on JavaScript.

I could imagine this come from legacy configuration and/or other plugins conflicts.
I would like to know if I am the only one in this situation.
v. 0.25.0

in fact the issue here is that the new elm make does not support the --warn flag, and this is what elm-mode was using previously in order to have elm make print out the missing annotation so it could be inserted. Without support for that, there's no obvious alternative route to providing this functionality.

https://github.com/jcollard/elm-mode/issues/152#issuecomment-450596903


move rubocop into a separate stage in Travis-CI

Overview
This PR is pretty much a copy of https://github.com/rubygems/rubygems/pull/2510. It moves rubocop into a separate stage that is run before any tests are executed. This will allow for faster feedback and mean that we don't have to run rubocop on all our available instances in Travis.

@bundlerbot r+

Actually, I hate to say it since I feel so happy about it, but I think this is unintentional: CI is no longer running against 1.8.7... :kissing_smiling_eyes:.

@colby-swandale Just let me know, and I'll revert this if you think it's necessary, since I merged it :)


az copy --put-md5. MD5 hash is calculated and stored automatically.

Which version of the AzCopy was used?
10.8.0
Note: The version is visible when running AzCopy without any argument
AzCopy 10.8.0
Which platform are you using? (ex: Windows, Mac, Linux)
Windows
What command did you run?
azcopy copy 'local-file-path' 'https://storageaccountname.file.core.windows.net/file-share-name/file-name?SAS-token'
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
What problem was encountered?
Microsoft documentation says that MD5 hash is not calculated and not stored automatically if option --put-md5 is not specified.
https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-files
** However when file is uploaded into Azure Storage Container, Content-MD5 property of the uploaded has value**

How can we reproduce the problem in the simplest way?
Run command
azcopy copy 'local-file-path' 'https://storageaccountname.file.core.windows.net/file-share-name/file-name?SAS-token'
Check Content-MD5 property of the uploaded file in Azure Portal
Have you found a mitigation/solution?
No

Hi @abilous-ti, thanks for reaching out!
For smaller blobs (<256MB IIRC), the service computes it automatically for you.


Nginx deprecation, first step.

Nginx controller is deprecated for a while. While it would no longer be deployed to end-users in the future, we must provide a escape hatch and backwards-compatible way for users to run their own Ingress controllers while keeping the *.ingress.<shoot-name>.<project>.shoot.<domain> as an entry point.
I would recommend the following additional field DeployController to be added to the Nginx ingress configuration in the Shoot specification:
// NginxIngress describes configuration values for the nginx-ingress addon.
type NginxIngress struct {
	Addon `json:",inline"`
	// LoadBalancerSourceRanges is list of whitelist IP sources for NginxIngress
	// +optional
	LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
        // DeployController controls if the nginx-controller is deployed.
        // When set to "false" only the "addons-nginx-ingress-controller" Service is created.
        // Defaults to "true".
        // +optional
        DeployController *bool `json:"deployController,omitempty`
}

This new optional field deployController shall be defaulted to true, keeping the old behavior.
If end-user sets it to false, then only the addons-nginx-ingress-controller Service shall be deployed and correct NS record be created:
apiVersion: v1
kind: Service
metadata:
  name: addons-nginx-ingress-controller
  namespace: kube-system
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
spec:
  type: LoadBalancer
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-ingress
    component: controller
    release: addons

We'll change the reconciliation mode to addonmanager.kubernetes.io/mode: EnsureExists, allowing end-users to modify the service to their needs.
Example - user wants to deploy Ingress controller called foo:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: foo
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: foo-ingress-controller
  template:
    metadata:
      labels:
        app: foo-ingress-controller
    spec:
      containers:
      - name: foo
        image: foo-ingress:v1
        ports:
        - containerPort: 443

After the controller is running, addons-nginx-ingress-controller is edited:
apiVersion: v1
kind: Service
metadata:
  name: addons-nginx-ingress-controller
  namespace: kube-system
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
spec:
  type: LoadBalancer
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: foo-ingress-controller

The only down-side of this approach is that the end-user is required to run their ingress controller in the kube-system namespace.
Any feedback is welcomed.

The nginx controller was dedeprecated in the dashboard https://github.com/gardener/dashboard/pull/388, while it was disabled by default in the gardener core #837.
So at the moment it is a bit confusing, but as far as I know the deprecation is stopped atm.

This new optional field deployController shall be defaulted to true, keeping the old behavior.

Accordingly to gardener core, it the nginx controller is deprecated and the default should be false, not true.

Accordingly to gardener core, it the nginx controller is deprecated and the default should be false, not true.

This is not a backwards-compatible change.

We cannot provide backward-compatibility indefinitely, but we also don't want to leave our end users hanging in the air either.
However, it's not backward compatibility we break, if they still can select the nginx addon. Only if they don't, it's gone and then there is also no DNS record anymore, which is fair. When we remove it entirely, having only the DNS record is less then there was before (so that's already backward incompatible, I guess). Deploying other/any other software is not our core mission.
The plan is the following:

Allow end users to create DNS resources (for our https://github.com/gardener/external-dns-management) and thereby let us manage DNS for them if they wish to
Allow end users to create cert resources (at present we watch only ingress resources in the shoots)
Have a service marketplace and agent and generalise the topic of software deployment and update independent of Gardener fitting our fleet management plans (of which the plant resource was the first step - arguably we haven't made any progress here for internal reasons)

We decided to keep the nginx-ingress addon for now and don't deprecate/remove it soon. Meanwhile the shoot-dns-service extension arrived which allows end-users to deactivate our nginx/ingress controller and deploy their own with DNS support. Soon, also certificate support will be available.
Generally, the hub will help as well.


Add --log-response argument to serve

Addresses this issue. Miniflare 3 uses workerd to handle requests and needs a way to have nice output for requests.
--log-response will print out the response method, url, and status for each request made to workerd

recheck

Hi Joshua,
Per the contributing doc, it's really important to discuss what you want to do with the team before diving into writing code.
In this case, I suspect that simply writing text with some ad hoc formatting to the console may not be the best approach. Did you consider whether Miniflare could get this information through the inspector protocol instead? The inspector protocol already provides information about requests and responses in order to populate the network tab in the devtools. I think it might only be subrequests right now, but we already know we'd like to extend that to include incoming requests as well.
The inspector protocol would give Miniflare structured information with lots of detail, which it could then format as desired. Keeping this formatting out of workerd and in Miniflare would probably allow the DX team to iterate faster on it.
Separately, we know we need a better production logging strategy for workerd. But the needs of production logs are pretty different from the needs when developing with miniflare, so I don't think we should attempt to develop these in the same way.

I think that doing this in the miniflare proxy makes sense for now. You'll have a much easier time changing the formatting as desired there.
In workerd, we need to completely overhaul the logging at some point. This is one of the big TODOs in the readme. It's going to require some design thought, though.


Really big images

Hi, any idea if this model can process really big images? I have some images exported from pdf (9933x7016). The text is really small until you zoom into it about . I tried to play with parameters with no luck.
Any idea what mag_ratio and canvas_size really does?
Thanks!

Resize or split your image to smaller image

In general VGG model does not care how image big or small. Why? they does do "stride". So you just stride your image into smaller batch size. It does not affect actual quality.


Move responseClassifier from router block to client block

We should consider moving it into the client block since that’s probably a more appropriate place.
Next time we have to make a breaking config format change, we could do this at the same time.

Routers use response classifiers in several ways:

Clients use response classifiers to determine success/failure counts.
Routers use response classifiers to determine success/failure counts, and to determine whether a request is retryable.
Servers use response classifiers to determine success/failure counts.

We measure response classifications at all three places because they each have different values.  Specifically:

A client is connected to a single concrete cluster.
A router sends requests to logical names.  Retries occur in the router (and not the client) so that retries may occur across clusters (i.e. when weighted destinations are used).
Since a router may expose multiple servers, we track request counts (and success/failure) for each server.  Also, because retries happen in the router, server counts represent the original inbound request rate.

So, I think it's correct for classifiers to be configured on the router level so that requests are classified uniformly.

Thanks for the info!


Support to open last command in $EDITOR

Hi I'm starting to use usql I love it. Thank you.
It would be great if you could open the last entered command in an editor, save the command and execute it. Will look into it later this week.

Yes. I'm in the middle of writing a real line parser. With it, will come support for things like EDITOR, PAGER, and all the other Unix style stuff, as well as support for about 80% of what psql can do out of the box. Bear with me though, as this project is less than 1 week old, was originally only cobbled together to support xo and I didn't anticipate it getting as much attention as it has. That said, given that it's likely less than 1000 lines of code to support "everything" that psql does (thanks to the power of Go!), and it ends up having a single, approximately 3 megabyte binary for every single platform (OSX, Windows, Linux, etc.) that works correctly and consistently with "every" major SQL database it really makes a lot of sense to flesh it out and promote it from 'toy' to 'real tool'.

For reference, this is how I am creating databases using usql on Linux with MSSQL:
usql $DB -c "exec sp_configure 'contained database authentication', 1;"
usql $DB -c "reconfigure;"
usql $DB -c "drop login $NAME;"
usql $DB -c "drop database $NAME;"
usql $DB -c "create database $NAME containment=partial;"

usql $DB/$NAME -c "create login $NAME with password='$NAME', check_policy=off, default_database=$NAME;"
usql $DB/$NAME -c "create user $NAME for login $NAME with default_schema=$NAME;"
usql $DB/$NAME -c "create schema $NAME authorization $NAME;"
usql $DB/$NAME -c "exec sp_addrolemember 'db_owner', '$NAME';"

The above is the relevant parts from contrib/mscreate.sh script in the github.com/knq/xo project.

Soon. Very, very, soon. Please test out the latest version of usql, to test the pseudo-non-naive "parser".

$EDITOR is now along with the \e or \edit command. It works the same as psql:
$ ./usql pg://booktest:booktest@localhost/
Type "help" for help.

pg:booktest@localhost=> select * from authors
pg:booktest@localhost-> where name like '%'
pg:booktest@localhost-> ;
  author_id |      name
+-----------+----------------+
          1 | Unknown Master
(1 rows)

pg:booktest@localhost=> \p
select * from authors
where name like '%'
;
pg:booktest@localhost=> \e
pg:booktest@localhost-> \p
select * from authors a
inner join books b on a.author_id=b.author_id
limit 1
pg:booktest@localhost-> \g
  author_id |      name      | book_id | author_id | isbn | booktype |     title     | year |            available             | tags
+-----------+----------------+---------+-----------+------+----------+---------------+------+----------------------------------+------+
          1 | Unknown Master |       1 |         1 |    1 | FICTION  | my book title | 2016 | 2017-03-16T18:32:54.575785+07:00 | {}
(1 rows)

pg:booktest@localhost=>


Add references for GO:0075118 perturbation of host G protein-coupled receptor signal transduction pathway & GO:0075120 symbiont-mediated suppression of host G protein-coupled receptor signal transduction

GO:0075118 perturbation of host G protein-coupled receptor signal transduction pathway >> has no references and no annotations
GO:0075120 symbiont-mediated suppression of host G protein-coupled receptor signal transduction  >> has no references and no annotations

@genegodbold Do you have references for these?
Do we need a term to describe  symbiont-mediated activation of host G protein-coupled receptor signal transduction  >> has no references and no annotations?
Might correspond to PATHGO:0000279 | stimulates heterotrimeric GTPase activity in another organism?

The S1 subunit of pertussis toxin from Bordetella pertussis (P04977) "stimulates heterotrimeric GTPase in another organism" Or one could say that it qualifies for "symbiont-mediated activation of host heterotrimeric GTPase". But note that the effect of these things depends on whether the thing is suppressive or activating itself. The A subunit (S1) is an ADP-ribosyltransferase that targets host heterotrimeric Gi and Go proteins, preventing signaling from G protein coupled receptors (GPCRs) that activate these proteins. Since these proteins typically inhibit signaling from activated Gs subunits, this results in a potentiation of stimulatory G protein signaling and thus a prolongation of elevated cAMP levels in the cell [PMID:17562776]. Pertussis toxin activity is associated with an extensive upregulation of inflammatory genes at the peak of infection. It also increases the extent and duration of inflammatory responses and pathology in lungs of B. pertussis-infected mice [PMID:23027529].
Culture filitrate protein of 10 kDa (CFP10; EsxB) from Mycobacterium tuberculosis (P9WNK4; P9WNK5) activates host neutrophils, stimulating a transient release of calcium ion which is accompanied by neutrophil chemotaxis and production of reactive oxygen species (ROS). This occurs through an as-yet-unidentified but specific heterotrimeric GPCR. At very high concentrations, CFP-10 is able to permeabilize neutrophils [PMID:25332123].
Cholera toxin subunit CtxA from Vibrio cholerae (P01555; Q6U8A3): Once in the cytosol, the catalytic subunit ADP-ribosylates the heterotrimeric G protein, Gs-alpha, constitutively activating it. This, in turn, activates adenylate cyclase. In the lower gastrointestinal tract, higher levels of cAMP produce an imbalance in electrolyte movement in the epithelial cell--a decrease in sodium ion uptake and an increase in chloride ion expulsion. The net result is abundant fluid loss from the intestine and watery diarrhea. The process can dehydrate the person and cause circulatory system collapse if not rectified [PMID:15963708].


The language module doesn't always fit

Its contents just get replaced with ....

I'm guessing it's due to some recent commit making every button's min-size hardcoded 0.
Reproducible on the default config as well. I'm not sure why only the language button exhibits the issue, but everything else works fine.

I'm not sure why only the language button exhibits the issue, but everything else works fine.

That's because the language button is initialized with ellipsize = true. The mode button is the only other one to do so as well. Seems inconsistent indeed.
The default min-size property of buttons was just enough to fit two characters. So the issue existed already but has now become more apparent.

hi, i'm experiencing the same problem. is there a way to fix it temporarily using style.css? in my case the min-width parameter is ignored, is that normal?

@Alexays could a solution be to make the ellipsize parameter adjustable for the user?

why would that be preferable to initializing it with ellipsize = false, is there a reason someone would want this particular module (and I guess mode) to ellipsize and others not? also, could you point me to where this default initialisation happens? I can't find it.

this seems to be a duplicate of #952

@Alexays I don't think this is due to the recent 0.9.15 regression. The problem with the language module has been around for ages for me. I was just too lazy to open a bug report.

@pinselimo why would that be preferable to initializing it with ellipsize = false, is there a reason someone would want this particular module (and I guess mode) to ellipsize and others not?

I don't know, but I assume there is a reason for this default to be different to begin with. I would be absolutely fine with just changing it.

also, could you point me to where this default initialisation happens? I can't find it.

Ofc, here you go: https://github.com/Alexays/Waybar/blob/master/src/modules/sway/language.cpp#L21

Closed as reverted


Multi robot bridge

Add Astrobee to Astrobee communication. Implemented multi-robot DDS-ROS bridge.

Supported topics: GNC_EKF and GS_DATA
Bridge does not start on FSW launch by default. Trigger server is provided

this can be merged now since the release 0.14.3 finished and we're out of the code freeze :)


OID Shortener

The OID shortener object doesn't seem to be exposed. This means programs must truncate the full oid to an arbitrary length to get a 'short' SHA1.

Does this method solve your issue? https://docs.rs/git2/0.13.22/git2/struct.Object.html#method.short_id

Ah ok, thats a good place for it.
Since that method has the most documentation on the shortening behaviour that I've seen so far I have a semi-related question: There's no way to resolve the short id once the repository grows enough that it is ambiguous, right? I was thinking that you could maybe look at the history and assume the short id is the oldest of the ambiguous commits or something, but I haven't seen anything like that elsewhere.


Client-side update card upon input changes or button presses (statically pre-loaded, cascading dropdowns, etc)

Some examples would be a dropdown that has an "Add new" option, when you select that, want to show a text box for adding a new item

Or in surveys, when they select "Dissatisfied", you might want to have an input appear that asks them why they're dissatisfied, all client-side

Another example someone mentioned in the Build 2019 focus group was if the user checks a checkbox, they then want to make some other fields required, so changing those other inputs to be isRequired.

Another example is having an "Add new row" button that client-side adds a new input row when clicked

Link to feature: https://adaptivecards.productboard.com/feature-board/planning/features/1772148

@paulcam206 assigning to you for driving. thanks!


Adds suins testnet

Closing this as we've open sourced at https://github.com/MystenLabs/suins-contracts


Update Remove-AzureADServicePrincipalPolicy.md

updated example1

Docs Build status updates of commit 2d5522e:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/working-with-licenses.md
:warning:Warning

Details

docs-conceptual/azureadps-2.0-preview/working-with-licenses.md
:warning:Warning

Details

azureadps-2.0-preview/AzureAD/Remove-AzureADServicePrincipalPolicy.md
:white_check_mark:Succeeded

docs-conceptual/azureadps-2.0/working-with-licenses.md

Line 14: [Warning-h1-not-first] Markdown content is not allowed before H1.
Line 15: [Warning-h1-missing] H1 is required. Use a single hash (#) followed by a space to create your top-level heading.

docs-conceptual/azureadps-2.0-preview/working-with-licenses.md

Line 14: [Warning-h1-not-first] Markdown content is not allowed before H1.
Line 15: [Warning-h1-missing] H1 is required. Use a single hash (#) followed by a space to create your top-level heading.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Hi @pciasto
Per the read me file:
Please be aware that if you have any updates to automatically generated reference content, you should create an issue and not a PR.  The issue will then be created into a bug and triaged accordingly.  We do this because the reference content must mirror the *dll-help.xml file and subsequent updates to the reference content may overwrite any changes made through the repo.  Capturing it in the source code ensures that this does not occur.  Any PR with changes to automatically generated reference content will be closed.
Automatically generated reference content is any of the content under this Reference node, such as Get-AzureADUser
This only applies to reference content and not conceptual content.  Pull requests for changes to conceptual content are accepted and encouraged.  An example of the conceptual content is the Overview or a scenario such as importing data.
Thank you!
Bill


buildkit: 0.8.1 -> 0.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/moby/buildkit/releases.
meta.description for buildkit is: "Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit"
meta.homepage for buildkit is: "https://github.com/moby/buildkit"
meta.changelog for buildkit is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.8.2 with grep in /nix/store/6gs02lwjx5a7x0l6viprsn1kkqr281p7-buildkit-0.8.2

directory tree listing: https://gist.github.com/7bfab2532380e6d808e09b277d268bb1

du listing: https://gist.github.com/38efeb44b2ded91faae40adf7a50b78f

Rebuild report (if merged into master) (click to expand)

7 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
buildkit
nerdctl

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6gs02lwjx5a7x0l6viprsn1kkqr281p7-buildkit-0.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A buildkit https://github.com/r-ryantm/nixpkgs/archive/8d2c4ed7f29393f5a785a87c0c897dd65b5ca921.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/6gs02lwjx5a7x0l6viprsn1kkqr281p7-buildkit-0.8.2
ls -la /nix/store/6gs02lwjx5a7x0l6viprsn1kkqr281p7-buildkit-0.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

buildkit
nerdctl

Maintainer pings
cc @vdemeester @marsam for testing.

@GrahamcOfBorg eval

@GrahamcOfBorg eval
@GrahamcOfBorg build buildkit


Get prime numbers

Write a function that takes an int and return a list of prime numbers up to this limit.
this should have benchmark test as well

Fixed with c5d891503b7a171f10833070ff0538dd202d3c26


WIP: Add timestamp to Status "Fetch"

#40

You were on the right track -- I took the liberty of pushing a fix (well, to make it compile, anyway).

After adding a parameter to Fetch (i.e. the timestamp), you can't just test for Fetched via == any longer ... you have to do pattern matching, or use the little isFetched convenience function I added.

This wasn't really a problem, but you had UpdateDataFromServer taking a Tuple2, which isn't really necessary -- it can just take two parameters without the tuple.

As far as the getJson goes, you were basically on the right track, but it's hard to keep all of the manipulation straight -- especially the precedence. So, what I often do is use let to give things names, and use explicit parentheses with the lambdas -- otherwise, I can't keep track of what the precedence actually is.

@rgrempel thank you! this is really great :)
As getCurrentTime is a task, wouldn't we need to do andThen after it as a good practice (eventhough we know its a sync task)

Task.map is also async -- that is, it also only gets applied after the Task actually completes. The only reason to use Task.andThen would be if you need to chain yet another Task. Which isn't needed here -- all you have to do is construct the Action, which is sync (at that point -- since you now have all the ingredients).

Task.map is also async

:+1:

Merged, thanks!


Correct hyperlink documentation

Correct hyperlink documentation

TODO

[ ] Use cargo fmt
[ ] Add necessary tests
[ ] Add changelog entry
[ ] Update default config/theme in README (if applicable)
[ ] Update man page at lsd/doc/lsd.md (if applicable)

Woops, good catch. Thanks.

Codecov Report

Merging #667 (63f978b) into master (a58e2fd) will increase coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #667      +/-   ##
==========================================
+ Coverage   87.79%   87.90%   +0.11%
==========================================
  Files          41       41
  Lines        4481     4481
==========================================
+ Hits         3934     3939       +5
+ Misses        547      542       -5

Impacted Files
Coverage Δ

src/meta/filetype.rs
81.30% <0.00%> (-1.87%)
:arrow_down:

src/meta/name.rs
89.59% <0.00%> (-0.75%)
:arrow_down:

src/meta/symlink.rs
74.13% <0.00%> (+5.17%)
:arrow_up:

src/meta/access_control.rs
93.65% <0.00%> (+9.52%)
:arrow_up:

Continue to review full report at Codecov.

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


Provide example of using an output to define two matrixes

Why:
Closes: #17748

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[ ] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline (this link will be available after opening the PR).

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[ ] For content changes, I have completed the self-review checklist.

@jsoref Thanks so much for opening a PR! I'll get this triaged for review ✨

So,  https://github.com/harttle/liquidjs/blob/a7da93ff0f2c1c66f9c85b45ffcc1326c23254c7/src/parser/tokenizer.ts#L402 doesn't conform to the parser here: https://github.com/github/docs/blob/5f0b25c962f68549b756be6b72b890cb16d1d102/src/content-linter/lib/linting-rules/liquid-syntax.js#L94

Fwiw, I filed #33504 to improve the error handling of the liquid linter...

Hey @jsoref thanks for the example! @jc-clark it looks like this isn't getting rendered properly on the website:

at first i thought the lone $ was sugar for referencing a step with an id of the same name, but looks like it's just omitting the full example.

Ah! Thanks for pointing this out @jtoar. I see what's happening. I added this to our team's bug fixes to address soon.
The issue is in the implementation of the Liquid {% raw %} tags in the example itself. These {% raw %} tags help the docs website render the GitHub Actions context notation ${{ }} correctly. We can fix this up.

Getting liquid to cooperate is incredibly frustrating. I only touch it a couple of times a year, and I inevitably trip on things sigh.
Offhand, it looks like at least two lines of the code were damaged by me trying to "tighten" the {% raw %}/{% endraw %} scope.
    outputs:
      colors: $

and
        env:
          color: $


NA: multi-recv support and switch NA OFI to using non-tagged unexpected messages

I tested this on summit with the mochi-quintain program and immediately got a segfault starting the bedrock service:
(gdb) where
#0  0x0000200000f37c5c in rxm_ep_rma_common () from /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/libfabric-1.15.1-be2ejuogia7chog7yczwb26nyie6kzkl/lib/libfabric.so.1
#1  0x0000200000e6af68 in fi_writemsg (ep=<optimized out>, msg=<optimized out>, flags=<optimized out>)
    at /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/libfabric-1.15.1-be2ejuogia7chog7yczwb26nyie6kzkl/include/rdma/fi_rma.h:136
#2  0x0000200000e6b504 in na_ofi_rma_post (ep=<optimized out>, rma_info=rma_info@entry=0x3d205ef8, context=context@entry=0x3d206090)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/na/na_ofi.c:4864
#3  0x0000200000e6f1a0 in na_ofi_rma_common (na_ofi_class=0x3d00ef00, context=<optimized out>, cb_type=cb_type@entry=NA_CB_PUT, callback=<optimized out>, arg=arg@entry=0x3d205d70,
    fi_rma_op=fi_rma_op@entry=0x200000e6af40 <fi_writemsg>, fi_rma_op_string=fi_rma_op_string@entry=0x200000e86418 "fi_writemsg", fi_rma_flags=fi_rma_flags@entry=268435456,
    na_ofi_mem_handle_local=<optimized out>, na_ofi_mem_handle_local@entry=0x3cf74480, local_offset=<optimized out>, na_ofi_mem_handle_remote=0x3cf74290, remote_offset=<optimized out>, remote_offset@entry=0,
    length=<optimized out>, length@entry=39, na_ofi_addr=na_ofi_addr@entry=0x3d02f9e0, remote_id=<optimized out>, remote_id@entry=0 '\000', na_ofi_op_id=na_ofi_op_id@entry=0x3d205ea0)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/na/na_ofi.c:4816
#4  0x0000200000e6f824 in na_ofi_put (na_class=<optimized out>, context=<optimized out>, callback=<optimized out>, arg=0x3d205d70, local_mem_handle=0x3cf74480, local_offset=<optimized out>,
    remote_mem_handle=<optimized out>, remote_offset=0, length=39, remote_addr=0x3d02f9e0, remote_id=0 '\000', op_id=0x3d205ea0)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/na/na_ofi.c:7104
#5  0x000020000048bdec in NA_Put (op_id=0x3d205ea0, remote_id=0 '\000', remote_addr=0x3d02f9e0, data_size=39, remote_offset=<optimized out>, remote_mem_handle=<optimized out>, local_offset=<optimized out>,
    local_mem_handle=<optimized out>, arg=<optimized out>, callback=<optimized out>, context=<optimized out>, na_class=<optimized out>)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/na/na.h:1156
#6  hg_bulk_na_put (na_class=<optimized out>, context=<optimized out>, callback=<optimized out>, arg=<optimized out>, local_mem_handle=<optimized out>, local_offset=<optimized out>,
    remote_mem_handle=<optimized out>, remote_offset=<optimized out>, data_size=39, remote_addr=0x3d02f9e0, remote_id=0 '\000', op_id=0x3d205ea0)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/mercury_bulk.c:471
#7  0x000020000048d9e8 in hg_bulk_transfer_na (hg_bulk_op_id=0x3d205d70, size=39, local_offset=0, local_flags=1 '\001', local_mem_handles=0x3d323a60, local_count=<optimized out>,
    local_segments=<optimized out>, origin_offset=0, origin_flags=130 '\202', origin_mem_handles=0x3cf623d0, origin_count=<optimized out>, origin_segments=<optimized out>, origin_id=0 '\000',
    na_origin_addr=0x3d02f9e0, op=HG_BULK_PUSH) at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/mercury_bulk.c:2143
#8  hg_bulk_transfer (core_context=<optimized out>, callback=<optimized out>, arg=<optimized out>, op=<optimized out>, origin_addr=<optimized out>, origin_id=origin_id@entry=0 '\000',
    hg_bulk_origin=<optimized out>, origin_offset=0, hg_bulk_local=<optimized out>, local_offset=<optimized out>, local_offset@entry=0, size=<optimized out>, size@entry=39, op_id=<optimized out>,
    op_id@entry=0x1) at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/mercury_bulk.c:1981
#9  0x000020000049198c in HG_Bulk_transfer (context=<optimized out>, callback=<optimized out>, arg=<optimized out>, op=<optimized out>, origin_addr=<optimized out>, origin_handle=<optimized out>,
    origin_offset=<optimized out>, local_handle=<optimized out>, local_offset=0, size=39, op_id=0x1)
    at /tmp/robl/spack-stage/spack-stage-mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/spack-src/src/mercury_bulk.c:2755
#10 0x000020000043d0f4 in margo_bulk_itransfer_internal (req=0x20000b7dfda0, size=39, local_offset=0, local_handle=0x3d323990, origin_offset=0, origin_handle=0x3cf62300, origin_addr=0x3d009aa0,
    op=HG_BULK_PUSH, mid=0x3d2c4010) at src/margo-core.c:1376
#11 margo_bulk_transfer (mid=0x3d2c4010, op=<optimized out>, origin_addr=0x3d009aa0, origin_handle=0x3cf62300, origin_offset=0, local_handle=0x3d323990, local_offset=0, size=39) at src/margo-core.c:1393
#12 0x00002000003f27c0 in ssg_group_refresh_recv_ult (handle=0x3cf7d960) at src/ssg-rpc.c:769
#13 _wrapper_for_ssg_group_refresh_recv_ult (handle=0x3cf7d960) at src/ssg-rpc.c:794
#14 0x00002000004fcda0 in ABTD_ythread_func_wrapper () from /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1
#15 0x0000200000507138 in ABTD_ythread_context_func_wrapper ()
   from /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1
#16 0x00002000004fd508 in init_and_switch_fcontext () from /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1

Pretty sure this segfault is related to the multi-receive, as I was running bedrock services
Building mercury with this line added to our spack package.py
version('2.2.0-multi_recv', git='https://github.com/soumagne/mercury.git', branch='multi_recv', preferred=False)
To double check, I tried against mercury-2.2.0 and it behaves as expected.

weird ok thanks for the heads-up. multi-recv should not affect bulk in any way but it's also possible that I messed something up, I will double check.

Still on summit:  you don't need to spin up bedrock to verify this.  You can use the margo-p2p-bw or margo-p2p-latency tests .   I didn't get a core file but I did get a big backtrace and signal 11:
[a01n18:3191987] *** Process received signal ***
[a01n18:3191987] Signal: Segmentation fault (11)
[a01n18:3191987] Signal code: Address not mapped (1)
[a01n18:3191987] Failing at address: 0x34
[a01n18:3191987] [ 0] linux-vdso64.so.1(__kernel_sigtramp_rt64+0x0)[0x2000000504d8]
[a01n18:3191987] [ 1] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/libfabric-1.15.1-be2ejuogia7chog7yczwb26nyie6kzkl/lib/libfabric.so.1(+0x87c5c)[0x200000cb7c5c]
[a01n18:3191987] [ 2] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libna.so.4(+0xaf68)[0x200000beaf68]
[a01n18:3191987] [ 3] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libna.so.4(+0xb504)[0x200000beb504]
[a01n18:3191987] [ 4] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libna.so.4(+0xf1a0)[0x200000bef1a0]
[a01n18:3191987] [ 5] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libna.so.4(+0xf824)[0x200000bef824]
[a01n18:3191987] [ 6] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libmercury.so.2(+0xbdec)[0x20000020bdec]
[a01n18:3191987] [ 7] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libmercury.so.2(+0xd9e8)[0x20000020d9e8]
[a01n18:3191987] [ 8] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mercury-2.2.0-multi_recv-fhmmuoy6ws567wceindam6i3hfulaztv/lib/libmercury.so.2(HG_Bulk_transfer+0xbc)[0x20000021198c]
[a01n18:3191987] [ 9] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mochi-margo-0.10-guiofwwzs3h7helg5x2tbqy7zlhqm2us/lib/libmargo.so.0(margo_bulk_transfer+0xe4)[0x20000015d0f4]
[a01n18:3191987] [10] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/mochi-ssg-0.5.3-jxw6yf2mwr3po4barw6n6d2bfll3r6li/lib/libssg.so.0(_wrapper_for_ssg_group_refresh_recv_ult+0x440)[0x2000001127c0]
[a01n18:3191987] [11] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1(+0x2cda0)[0x20000027cda0]
[a01n18:3191987] [12] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1(+0x37138)[0x200000287138]
[a01n18:3191987] [13] /autofs/nccs-svm1_home1/robl/src/spack/opt/spack/linux-rhel8-power9le/gcc-11.1.0/argobots-main-n4hzycs2l22ebjwj2iha2w5bdat66b2e/lib/libabt.so.1(init_and_jump_fcontext+0x0)[0x20000027d508]

this is a test that runs fine in our nightly tests on x86 (cooley)

Thanks I will have a look.

I was wrong in my last post.  we do /not/ test multi-recive in our nightly tests on cooley.   Cooly (x86) segfaults with multi-recieve too, so it's not a ppc vs x86 thing.    In chat, Phil wondered if perhaps libfabric 1.16.1 fixes anything:  I tried again with libfabric-1.16.1 but that also triggered a segfault.  similar backtraces
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/libfabric-1.16.1-slijutv5vdeefr7denbtmtkb3p4ilaj2/lib/libfabric.so.1(+0x64154)[0x7f5e274e9154]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/libfabric-1.16.1-slijutv5vdeefr7denbtmtkb3p4ilaj2/lib/libfabric.so.1(+0x64332)[0x7f5e274e9332]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mercury-develop-multi_recv-34vyd4pmgjxl7rrzulbygsctrbhp23by/lib/libna.so.4(+0x82f5)[0x7f5e2773e2f5]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mercury-develop-multi_recv-34vyd4pmgjxl7rrzulbygsctrbhp23by/lib/libna.so.4(+0xd0b9)[0x7f5e277430b9]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mercury-develop-multi_recv-34vyd4pmgjxl7rrzulbygsctrbhp23by/lib/libna.so.4(+0xd59a)[0x7f5e2774359a]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mercury-develop-multi_recv-34vyd4pmgjxl7rrzulbygsctrbhp23by/lib/libmercury.so.2(+0xb717)[0x7f5e28829717]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mercury-develop-multi_recv-34vyd4pmgjxl7rrzulbygsctrbhp23by/lib/libmercury.so.2(HG_Bulk_transfer+0xa2)[0x7f5e2882b892]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mochi-margo-0.10-s62uqtbnlpbhhwjpd65qhirkqhwtxavf/lib/libmargo.so.0(margo_bulk_transfer+0x9e)[0x7f5e28c6f8ee]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/mochi-ssg-0.5.3-dbxhw2tjjil2yfxj2rbpj7lyfleg643i/lib/libssg.so.0(_wrapper_for_ssg_group_refresh_recv_ult+0x357)[0x7f5e28e958c7]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/argobots-1.1-joalawb6eftxjugxps5elczpybsa2u6n/lib/libabt.so.1(+0x17b7a)[0x7f5e2860db7a]
/home/robl/src/spack/opt/spack/linux-rhel7-haswell/gcc-8.2.0/argobots-1.1-joalawb6eftxjugxps5elczpybsa2u6n/lib/libabt.so.1(+0x17d01)[0x7f5e2860dd01]

ok well also right now even with that branch, multi-recv is not being used unless you explicitly request it through HG_Init_opt() so I would not expect that's the issue. Do you see that issue only with verbs or also with tcp ? (sorry haven't tried the margo test yet but hopefully today)

so far have only seen with verbs, not with tcp -- segfaulting test no longer segfaults with "tcp"

@roblatham00 sorry for the delay in getting to that segfault, there were a bunch of other things that needed to be cleaned up in that branch. Feel free to try it again with verbs, everything should be fixed. Just note that now, multi-recv will be enabled by default when supported. If for any reason you'd want to disable it, you'd have to set no_multi_recv to 1 as part of the HG init options.

Thanks the new branch works well on Summit now.   I collected some "mochi-quintain" data -- without a progress thread there's no change in latency.  With a progress thread and dedicated argobots pools there is a big reduction in the long tail latency times.

This is with one provider on one summit node, 32 client nodes each with 42 threads.

oh ok nice, that's interesting, just a supposition but sounds like the high latency could have been caused by the overhead of having some messages arriving before we had a buffer pre-posted for them? i.e. treated as unexpected by the underlying provider and then memcpied into our buffer. Or it could have also been caused by the fact of having too many recvs posted.... just the two things I can think of right now to explain the difference.


[WIP] upgrade Math.js to v6.6.0 and Rollup-based build

hey @josdejong , this is for #3.
with this PR, running rollup -c produces these warnings:
./index.js → ./dist/mathjs-expression-parser.js...
(!) `this` has been rewritten to `undefined`
https://rollupjs.org/guide/en/#error-this-is-undefined
node_modules\typed-function\typed-function.js
23:     root.typed = factory();
24:   }
25: }(this, function () {
      ^
26:
27:   function ok () {
(!) Plugin rollup-plugin-cjs-es: node_modules\mathjs\es\plain\number\relational.js is not loaded.
created ./dist/mathjs-expression-parser.js in 2.9s

to fix typed-function.js i removed its umd wrapper & made it export default create(); at the bottom.
relational.js is an empty file, so that warning can probably be ignored.

the resulting minified file is quite large - 122KB (certainly not 30 KiB!). without diving into the actual file yet, i think this in part due to many transient commonjs dependencies - many with UMD wrappers that cannot be dead-code-eliminated (tree-shaken, if you will). it might be worth trying to reduce these deps by either switching to ES alternatives or just absorbing the [often small] deps into some local /libs and tweaking them for ES exports.
perhaps you can take a look at the non-minified dist build and spot anything obvious/large that should not be included in the parser-only bits.

something else to consider it to make Math.js depend on mathjs-expression-parser rather than the other way around. this would reduce the risk of accidentally pulling in unwanted bits into the parser.

Thanks for all your work Leon! I tried out your PR, and it bundles fine, but I can't run both examples (node.js and browser), is that still work in progress?

the resulting minified file is quite large - 122KB (certainly not 30 KiB!).

This 30 KiB is the minified and gzipped size. So if you compress it in a tar.gz file it's about 30KiB. So this zipped size of 122KB is to be expected. So the dead code elimination works, else the file would be way bigger :).
The typed-function library is indeed also still an old-fashioned UMD library (the source is currently simply one file with UMD wrapper around the source). It would be nice to address that too, but that's a separate topic (unless it's really blocking for this issue).

is that still work in progress?

honestly, i was hoping that i was doing something wrong, because 122KB is much larger than i was looking for. i thought it would be 30k minified and i could shave 50-60% via Rollup & DCE, but from looking at the bundle code, there'd have to be extensive changes to get the size down any significant amount :(
i found this [1] which may serve my purposes better, is 0-dep and 2k minified. i might need to add function/param handling to it, but that seems do-able.
feel free to take over and finish up this PR.
thanks for your help!
[1] https://github.com/gumm/inpostfix

Sounds good. Yes, you do have more lightweight parsers. For example https://github.com/bugwheels94/math-expression-evaluator is very neat too.
Will have a look in the future. It may also be that this library is not needed that much since mathjs supports tree shaking now and it's easier to cherry pick what you need.

Hey @josdejong @leeoniya how we can only import parser (or math.parse function) and make sure tree shaking removes as much code as possible? I tried out to import 'create' and 'parse' only but that is importing basically whole lib again... Since I only want expression parser, do you recommend using math-expression-evaluator instead, and are there some missing functionalities there compared to mathjs parser? Thanks!

@skosito the following page describes how it works and what to expect from tree shaking, see bottom of the page: https://mathjs.org/docs/custom_bundling.html
The expression parser only is still quite large. If you need something more lightweight you can indeed use math-expression-evaluator for example.


Doesn't seem to work when using nvm

Hi. I'm using nvm to manage my node versions but when I install impl I cannot run it.
Nathaniels-MBP:~ Nathaniel$ nvm --version
0.25.2
Nathaniels-MBP:~ Nathaniel$ node --version
v0.12.3
Nathaniels-MBP:~ Nathaniel$ npm --version
2.9.1
Nathaniels-MBP:~ Nathaniel$ npm install -g impl
<EMAIL_ADDRESS>/Users/Nathaniel/.nvm/versions/node/v0.12.3/lib/node_modules/impl
Nathaniels-MBP:~ Nathaniel$ impl
-bash: impl: command not found

I cd'd into my impl folder inside my nvm node_modules folder and this is the folder structure I have.
Nathaniels-MBP:impl Nathaniel$ pwd
/Users/Nathaniel/.nvm/versions/node/v0.12.3/lib/node_modules/impl
Nathaniels-MBP:impl Nathaniel$ find .
.
./.DS_Store
./CHANGES.md
./lib
./lib/impl.js
./LICENSE
./package.json
./README.md

Let me know if I can help you any other way.

Hah, thanks for having a look. It's still only the reader right now, so the README is lying to you, sorry. You can read source into a data structure, but I still need to perform code generation and macro expansion upon that code. Maybe before code gen...
impl isn't even on NPM yet I'm afraid. It will be released as 1.0.0 on there once it can execute even if the "standard library" is pretty empty. The bin that is executed and aliased to impl doesn't do anything yet, but it will pipe the given source through the reader (which is done) then fire that through eval before spitting out JavaScript.
I should have the first full working version in a few weeks. It'd be cool to get a repl working too, shouldn't be hard once I have eval working.

TL;DR: It will work with NVM... when it exists... :D

Feel free to check out how the reader works though and critique it. I quite like that it parses the entire source code in one run through the string, but maybe you'll have some thoughts on it.

Oh sorry, I saw your fib example on Twitter and was a bit confused as to how it worked so I thought I'd try to use it and convert it to JavaScript and then see how it works from there.

Ah, I apologise for the confusion, I'm just glad I got it to parse / read the source. Equivalent JavaScript would be the following, although I hope to get around the tail recursion problem in Impl:
function fib(n) {
  if (n < 2) {
    return 1
  } else {
    return fib(n - 2) + fib(n - 1)
  }
}


How to modify the code of eval.py

Hi author, your project is very wonderful and I have a small question to ask you.
Not long ago, I used the mmsegmentation, it comes from [OpenMMLab].
Here are the result of eval including mmsegmentation and your project.

I wanted to present the eval result in the way of mmsegmentation, please give some advice.

Hi, about result printing format, you could check and modify the print_iou function regarding your need.


Using newer versions of Python and nodejs to fix Docker build failures

Running docker compose run test would fail. One of the required Python libraries is celery[redis]==5.3.1 which is not available on Python 3.7 or older.
The 7.x repository from NodeSource does not work with newer versions of Debian that the python containers are based on. I also had to install nodejs instead of just npm or it would fail. The nodejs package also installs npm.
I chose Python 3.8 since it is the lowest working version that supports that version of celery and Node.js 18 since it is the latest LTS release, and the tests pass when using it.

coverage: 75.427%. remained the same when pulling a9e3736a291e66c56efb06d79d2174589c4c77a3 on Tamerz:fix-docker-compose-test into ed460f3103e4fa5327f72510b43d0d1512b97e9a on Netflix:master.


Fixed #30803 -- Allowed comma separators for miliseconds in parse_datetime(), parse_time() and parse_duration().

This is a continuation to complete https://github.com/django/django/pull/11818

+1

@farhaanbukhsh I squashed commits, pushed minor edits, updated docs and added two tests.

@farhaanbukhsh I squashed commits, pushed minor edits, updated docs and added two tests.

Thanks a lot, I learnt a lot of things working on this PR. 😄

Merged in 42b23d1e79b21ddd8abd7216a6771f105dd7062c and 1f817daa20110987bf155fc6c942a8a14720a66b.


Add FourChannelIE.

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information

inb4 add 4chan boards aswell

Nope, I won't add coomer sites

Closing this as discussed on discord.
Note to any users following this PR: The branch will still be up on my fork.


[w-table] Small fix to mobile table with pagination display.

Looks like mobile table with pagination is broken.

With this commit it looks better and footer UI fits mobile.

Hi @Hexagon-Dev, thanks for the PR.
Since the pagination was in progress the layout was not finished, but now this part of the code and the associated layout is complete and it should solve your layout issue. in version 3.9.2.
Please check the documentation for details https://antoniandre.github.io/wave-ui/w-table#pagination, and note that you can also use the pagination slot to override the layout if you need.


Fixes to guide based on changes in AAD App Registrations

Modifying the APIM OAuth guide based on new changes implemented in the Azure Portal to how app registrations work.  Additionally updated the text to clarify that the next steps should focus on adding OAuth to the back-end API and not implementing another app to circumvent APIM.

@niematron : Thanks for your contribution! The author, @miaojiang, has been notified to review your proposed change.

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

@niematron Apologize for the delay in reviewing this Pull Request, this article has been modified already to incorporate alot of your feedback and now has a merge conflict so it can not be merged.  I am going to request this PR to be closed, if you feel there are additional updates to this article I encourage you to submit another pull request. #please-close


Make codenarc plugin support the configuration cache

This issue is about making the codenarc core Gradle plugin support the configuration cache.
Upon completion, all configuration and tasks provided by the codenarc plugin are compatible with the configuration cache.

Fixed in https://github.com/gradle/gradle/pull/14628, will be in Gradle 6.8


fix some typos

What problem does this PR solve?
Problem Summary:
Fix some typos.
What is changed and how it works?
Proposal: xxx
What's Changed:
Related changes

Need to cherry-pick to the release branch

Check List
Tests

No code

Side effects
N/A
Release note

No release note.

/lgtm

LGTM

/merge


Water is rendered very prominently in front of fog

Not sure if this existed in 1.16, but I reproduced it in 1.17.

looks like a bug however 1.17 is not supported atm.


Create ETH Denver Propaganda

Shirts
Stickers
Buttons
Patches
Flyers
Posters

Eventually put all this stuff up on Shopify too

Think shirts and stickers are most important. The other stuff would be cool but not super important right now.

Dope! These look great. Well done ser 🖖


Choosing a static network connection.

How can I make sure that the stream does not switch to new connections?
I have wi-fi connected and sound is transmitted through this connection. If I connect the LAN wire, then the sound disappears.

You probably want to use interface metrics. See here: https://github.com/duncanthrax/scream/issues/119

Mmm, thanks.

When the metric changes, then another software stops working, which uses the second connection. = (


Exclude companion object from report if it contains only constants

Describe the bug
Same as for regular object, companion object with only should be excluded from report
Expected behavior
MyInterface should be excluded from report
Reproducer
interface MyInterface {
    companion object {
        const val constant = "foo"
    }
}

Reports

Environment

Kover Gradle Plugin version: 0.7.6, 0.8.0-Beta

Fixed in 0.8.0


fix: internal server error on exchange query

Fixes #115
@pfeairheller I just did the same thing you did in ExchangeResourceEnd from #116. This happened on both ExchangeResourceEnd and ExchangeQueryCollectionEnd.

@m00sey I would have, but I could not find an example of a test that verified the same fix here: https://github.com/WebOfTrust/keria/pull/116/files#diff-c01bb1f6f142fd2e0b1a4f6afc37afabd7c247b268ee85d8e3c1f0f649bc22f9R169 on the ExchangeResourceEnd get method.
I can try to see if I can understand the current test_exchanging test. It would be great if it was split up into smaller pieces.

@m00sey I tried to add a test here but I could not figure out how to add attachments to an exchange message in the test.
https://github.com/lenkan/keria/blob/103d8c9f97afa5bbdef72887414f4c795ca9a79a/tests/peer/test_exchanging.py#L149-L189
Do you have any pointers?

I'll merge this and then submit a PR with a test.


langchain callback support PALM2 GCP

Feature request
As of now callbacks are provisioned for OPEN AI which gives completion tokens, prompt tokens and total cost. Similar feature is needed for VertexAI Chat Models of GCP.
Motivation
This is an important feature as this abstraction is needed for GCP
Your contribution
i can test and validate

I am also facing the same issue. Please let me know

Would also love to have this feature

Would be good to have this as a general vertex API model feature, not just palm.


fix: don't panic when migrating without existing config

resolved by threshold for DB prefix that we filter out

Yeah, I think a db migration should pass on an empty database one way or the other, even if running it was unnecessary.

Successfully created backport PR for releases/v0.4:

#5721


Support hibernation

If at all possible on Linux. I've read mixed opinions. Probably also hardware dependent. Had no luck so far on a Framework laptop.
Some resources:
https://fedoramagazine.org/hibernation-in-fedora-36-workstation/

Had some luck with hibernation in NixOS on the Framework. Most issues arise from confusion about which state to use ("hybrid sleep" vs. "standby then hibernate") and some kernels that work, some that don't. This is a messy feature in Linux still and I have my doubts about cross platform compatibility.

The swap must be as big as your RAM for hibernation to work.


Related Jira tickets referenced in branch commits incorrectly having their deployment status updated

Deploying a merged branch in GitHub is incorrectly reporting all the JIRA tickets mentioned in the branch commits, including commits that were reverted using 'git revert'.
Example scenario:

new branch with name 'release/v1.1'
add a commit with message='JIRA-0001'
add a commit with message='JIRA-0002'
revert commit for ticket JIRA-0001, this creates a new commit with message='Revert JIRA-0001'
Create PR with title='release/v1.1' and body='JIRA-0002'
merge branch
deploy merged branch

expected behaviour: only JIRA-0002 reported as deployed
actual behaviour: JIRA-0001 and JIRA-0002 reported as deployed
Is there a way to exclude JIRA-0001 from the deployment status update? Thanks

There isn't a way to exclude a ticket id at this very moment, but that is a good suggestion.  The problem is, git doesn't really have a definitive way to know if a commit is a revert commit or not other than searching for a revert keyword in the commit message.
Let me talk about this to the team :)

Any updates on this?


Fix traffic history state not being reset

This fixes an issue where the traffic history state was not reset between episodes.

This was not necessary.


Writing schedule with async await syntax

Is this:
limiter.schedule(fn)
.then((result) => { /* ... */ } )
.catch((error) => {
  if (error instanceof Bottleneck.prototype.BottleneckError) {
    /* ... */
  }
})

The same as this?
try {
 await limiter.schedule(fn)
} catch (error) {
  if (error instanceof Bottleneck.prototype.BottleneckError) {
    /* ... */
  }
}

I just want the function to complete successfully, so if I can write it all in that syntax that would be nice. Just want to know if that is not recommended etc

Almost, this is the exact same thing:
try {
 const result = await limiter.schedule(fn)
} catch (error) {
  if (error instanceof Bottleneck.prototype.BottleneckError) {
    /* ... */
  }
}

Async/Await syntax uses Promises under the hood. You can use await on any function returning a Promise, and you can use .then() on any async function, this is just a part of JavaScript, it's not special to Bottleneck.
One thing that's nice about async/await is that it makes it really easy to see where all your failures go (the catch block). In Promise code, your synchronous exceptions might go to a different place than your rejected Promises. That's why I personally prefer writing code using async/await.

Please let me know if you have other questions.


Rich text link edit drawer has two close buttons

Bug Report

Other Details
Payload version: 1.6.11

Good call. We're on this.
Will be fixed on Monday!