alignment issue for team members

Well since the name of winner can be of any length so current podium's winner are not correctly aligned.
So the task is to fix that so team member are perfectly aligned as they should be.

@meisabhishekpatel plz assign this to me

Please add readme in order i setup the project
On Wed, 9 Oct 2024 at 12:48 PM, Abhishek Patel @.***>
wrote:

Assigned #1 https://github.com/ContriHUB/CodeSangam/issues/1 to
@jatin31195 https://github.com/jatin31195.
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/CodeSangam/issues/1#event-14567399248, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLRNE3U2EJEQRXBTCGTZ2TKDZAVCNFSM6AAAAABPNRXVCSVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGU3DOMZZHEZDIOA
.
You are receiving this because you were assigned.Message ID:
@.***>

@jatin31195  if solve this without readme you bonus points

if you still can't do it ping me I'll create a readme for you.

@jatin31195 I am updating the readme so no bonus for you.

Unassign the project make go many things are used i dont even have knowlege
of these
On Wed, 9 Oct 2024 at 9:31 PM, Abhishek Patel @.***>
wrote:

@jatin31195 https://github.com/jatin31195 I am updating the readme so
no bonus for you.
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/CodeSangam/issues/1#issuecomment-2402729679,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLQMGZUSJHY7EO3YJYDZ2VHNLAVCNFSM6AAAAABPNRXVCSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG4ZDSNRXHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@waquar003 do you want to work on this issue now ?

No, sorry.
On Thu, 10 Oct 2024 at 1:35 AM, Abhishek Patel @.***>
wrote:

@waquar003 https://github.com/waquar003 do you want to work on this
issue now ?
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/CodeSangam/issues/1#issuecomment-2403332905,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLRD4ECIEPWTRMP427DZ2WD7FAVCNFSM6AAAAABPNRXVCSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBTGMZTEOJQGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@jatin31195 read the message and "issues" carefully.

ok i don't want to work on this remove this from my currently active issue

@jatin31195 get you mind straight. Okay

@meisabhishekpatel Sir, I would like to work on this issue.

@meisabhishekpatel sir, do i have to take care of responsivenes also, or just in dektop .

@Ayush5071 yes

remember it's a bonus issue.

Yes, sir I'll try, main thing is podium component file is big and complex 🙂
I'll do my best to get it resolved.

@meisabhishekpatel sir,PR request send.

@meisabhishekpatel sir please, see the PR Request i have sended

My issue assignment request has been accepted. @meisabhishekpatel, could you please confirm if I should start working on this issue or if @Ayush5071 has already completed the task?

@kaurpreetman you can start too, @Ayush5071 has not solved the issue yet

I have been assigned the issue. I will be working on it now.

@meisabhishekpatel I have made a PR.

the issue closed now


Add Iterable.takeUntil() or similar

The method:
{Element*} takeUntil(Boolean stopping(Element element))

would be similar to takeWhile, with the following differences:

The passed in function would return true to signal the end of the stream, rather than false
The element that caused the "stop" would be included in the resultant stream (takeWhile discards the "final" element).

This is useful if your goal is to take all elements up to and including the "element you are looking for". found could also be used as the name for the passed in function.

Although I understand why you want this I personally feel it's wrong to use takeUntil for this. Logically the only difference between a takeWhile and a takeUntil should be the fact that the stop condition is inverted. I think people might find it hard to remember which of the two is the one that includes and which is the one that excludes the element at the point the stop condition is met.
I'd rather have a boolean argument inclusive or a different name for the method itself, ie takeWhileInclusive (personally I prefer being verbose but clear).

Yeah, I agree that takeUntil does not imply inclusion of the stopper.
There's a similar discussion here, with the following names suggested:

takeUntil
takeUntilInclusive
takeWhileInclusive
skipAfter
terminateAfter

Can this wait till 1.3?

Yes. (OTOH if someone can think of a decent name for it, it could be implemented in 5 mins.) In the absence of such a name I will reassign it.

The other option would be to introduce a delay() method that takes a first value and a function that together work to return each value one invocation "late", eg seq.takeWhile(delay(true, (c)=>c!=',')). Just brilliant ;)

@quintesse interesting idea...

IMO delay is too complicated to obviate the need for the unnamed function, but very cool @quintesse!
I almost adopted it for my project, but terminateAfter(p) can return the nonempty {Element+}, and takeWhile(delay(true, p)) can't.

I second that. As for names, what about these:

Iterable.takeWhile, Iterable.takeUntil
Iterable.skipWhile, Iterable.skipUntil

The convention would be that methodes with *While are inclusive and methods with *Until are exclusive.
(I have no idea what would be the use cases for skipAfter and terminateAfter -- to me it seems like an alias to takeUntil)

@luolong sure, we could do that but to me that just means that people will continuously look up the docs to see what was the difference again between the two.
We had this (very long) discussion with span() and measure() and even though I've done work on the implementation of those two I still confuse them (and even worse when using x..y vs x:y because you won't even get documentation hints).
Now if this was a common convention in other languages and everybody was accustomed to the idea perhaps.... maybe, just maybe, we could make a comparison with while loops vs do-until loops and make it easier to remember that way. Hmmm.

Relevant Perl manual:

Lists may be assigned to only when each element of the list is itself legal to assign to:
($a, $b, $c) = (1, 2, 3);
($map{'red'}, $map{'blue'}, $map{'green'}) = (0x00f, 0x0f0, 0xf00);

An exception to this is that you may assign to undef in a list. This is useful for throwing away some of the return values of a function:
($dev, $ino, undef, undef, $uid, $gid) = stat($file);

As of Perl 5.22, you can also use (undef)x2 instead of undef, undef . (You can also do ($x) x 2 , which is less useful, because it assigns to the same variable twice, clobbering the first value assigned.)

The final element of a list assignment may be an array or a hash:
    ($a, $b, @rest) = split;
    my($a, $b, %rest) = @_;

You can actually put an array or hash anywhere in the list, but the first one in the list will soak up all the values, and anything after it will become undefined. This may be useful in a my() or local().

Sorry, wrong thread. I deleted my comment.


docs: add full NodeJS documentation in the README.md file

ideal to add also documentation for NodeJS not only for Yarn.

yes! I do that!

I've assigned you to the task @luislucena16

this is done! I've moved docker to another issue! please mark this as In Review


[Question] GUI Clients for WinGet

While WinGet is great for professionals, people not so familiar with the command line often prefer GUI clients.
My question is: Are third party GUI clients for WinGet allowed? Are there any plans to provide a first party client for WinGet?

A couple of different projects have already been released providing either a GUI or web-based UI. I think the challenge is how frequently we need to make potentially breaking changes to the client as we evolve towards a 1.0 release. We don't currently (as of 0.1) have a non command line UI on the backlog.

Without cmdlets, a 1.0 release is less than interesting to IT Pros. WHY won't the team admit their mistakes, refactor the code, and move on with a product that IT pros could love. I like the idea of a good package manager that can help organisations manage packages - this tool is not (yet) it.  Unless the intention is to just produce another power toy for some developers to play with.


ICPC: warning #1098: the qualifier on this friend declaration is ignored

Description
Compiling test-alt-string_cpp11 yields a warning with ICPC.
[8/137] Building CXX object tests/CMakeFiles/test-alt-string_cpp11.dir/src/unit-alt-string.cpp.o
/__w/json/json/tests/src/unit-alt-string.cpp(164): warning #1098: the qualifier on this friend declaration is ignored
      friend bool ::operator<(const char* /*op1*/, const alt_string& /*op2*/) noexcept;
                  ^

Reproduction steps
Run CI - see https://github.com/nlohmann/json/runs/7580471440?check_suite_focus=true
Expected vs. actual results
Expected: no warning.
Actual: warning
Minimal code example
No response
Error messages
[8/137] Building CXX object tests/CMakeFiles/test-alt-string_cpp11.dir/src/unit-alt-string.cpp.o
/__w/json/json/tests/src/unit-alt-string.cpp(164): warning #1098: the qualifier on this friend declaration is ignored
      friend bool ::operator<(const char* /*op1*/, const alt_string& /*op2*/) noexcept;
                  ^

Compiler and operating system
Intel 2<IP_ADDRESS>11109, Ubuntu 20.04.3 LTS
Library version
develop
Validation

[X] The bug also occurs if the latest version from the develop branch is used.
[X] I can successfully compile and run the unit tests.

Removing the :: seems to fix the issue.

Removing the :: seems to fix the issue.

I'll create a PR.


Sqlalchemy scope fix

also solves #38 issue that might be triggered by timed out or broken shared session

This change is

Coverage increased (+0.9%) to 89.648% when pulling 0b0ba5cb42f8f9652971edd12e52c922e25a155c on sqlalchemy-scope-fix into b4e82e401f22d6d6e827df9bf9979bd8f0539780 on master.


[SPARK-46282][PYTHON][DOCS] Rename "Spark SQL" page to "DataFrame API"

What changes were proposed in this pull request?

This PR proposes to rename "Spark SQL" page to "DataFrame API".
This includes updating the title and any relevant references within the documentation to better highlight the centrality of the DataFrame API in PySpark.
This also includes adding SQL Reference related descriptions and links to the pyspark.sql.SparkSession.sql API to make it easier for users to use SQL supported by Spark.
Why are the changes needed?

The change is needed to more accurately represent the content of the page, which primarily focuses on the DataFrame API – a key aspect of PySpark. Renaming the page to "DataFrame API" emphasizes its importance and utility in the PySpark ecosystem, making the documentation more intuitive and aligned with the common usage and understanding of PySpark's core functionalities.
Does this PR introduce any user-facing change?

No API changes, but user-facing documentation will be updated:
Main

API Reference

SparkSession.sql

How was this patch tested?

Manually build docs.
Was this patch authored or co-authored using generative AI tooling?

No.

Let me close this ticket for now as it seems to be need further discussion.


Upload large attachments to Dropbox / Box / Google Drive

Would be nice to have a support for dropbox attachment like dropbox for gmail https://chrome.google.com/webstore/detail/dropbox-for-gmail/dpdmhfocilnekecfjgimjdeckachfbec?hl=en-US&utm_source=chrome-ntp-launcher
This will be very useful if you have to send big file

Hi @gspe — thanks for filing this. This would definitely be a cool plugin.

Yes that will be perfect, even for Google Drive attachments

I'm also for it. This is a must, nowadays.

A good idea @gspe, I agree with it!

:+1: iCloud Drive/iCloud Photo attachment integration would be nice as well

Since Nylas Mail is open source, it would be great to also support an open source solution like Nextcloud. :) We simply use WebDAV as an open standard for the API.


Restaurant page

In this project I did:

Install webpack and configured it in the repository
Create HTML elements using Javascript
Append all elements to  div#content.
Set up the restaurant site to the contact and menu pages

Hey @Torres-ssf, thanks for the review. I have made the recommended changes. Kindly let me know if there is any other change to be made.

Thanks @shloch for the approval


Azure OpenMPI Environment

What does this PR do?

Adds a new AzureOpenMPIEnvironment cluster environment #14014
The added local tests for AzureOpenMPIEnvironment pass, but it has not yet been tested on Azure to make sure the environment is properly detected.

Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes? (if necessary)
[ ] Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] Did you list all the breaking changes introduced by this pull request?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

@awaelchli

@awaelchli I've been testing this on Azure and the new AzureOpenMPIEnvironment environment is detected and behaves as expected with the exception of single node multi-gpu setups. For some reason, when testing with 1 node and 2 gpus I get errors related to master port regardless of what value I set it to. I tried statically setting master port either in the code or by setting the environmental variable MASTER_PORT. I also tried using the find_free_network_port() function from the lightning environment).
Azure does not set the [AZ_BATCH_MASTER_NODE](https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables#environment-variables variable in a single node setting so you have to find another way to set the main port. This is what the error messages look like:
Driver 0
[W socket.cpp:401] [c10d] The server socket has failed to bind to [::]:6105 (errno: 98 - Address already in use).
[W socket.cpp:401] [c10d] The server socket has failed to bind to ?UNKNOWN? (errno: 98 - Address already in use).
[E socket.cpp:435] [c10d] The server socket has failed to listen on any local network address.

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
    fn(i, *args)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/strategies/launchers/multiprocessing.py", line 129, in _wrapping_function
    self._strategy._worker_setup(process_idx)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/strategies/ddp_spawn.py", line 181, in _worker_setup
    init_dist_connection(
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py", line 374, in init_dist_connection
    torch.distributed.init_process_group(torch_distributed_backend, rank=global_rank, world_size=world_size, **kwargs)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/distributed/distributed_c10d.py", line 595, in init_process_group
    store, rank, world_size = next(rendezvous_iterator)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/distributed/rendezvous.py", line 232, in _env_rendezvous_handler
    store = _create_c10d_store(master_addr, master_port, rank, world_size, timeout)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/distributed/rendezvous.py", line 160, in _create_c10d_store
    return TCPStore(
RuntimeError: The server socket has failed to listen on any local network address. The server socket has failed to bind to [::]:6105 (errno: 98 - Address already in use). The server socket has failed to bind to ?UNKNOWN? (errno: 98 - Address already in use).

Driver 1:
Initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2
Initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2

-- Process 1 terminated with the following error:
Traceback (most recent call last):
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
    fn(i, *args)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/strategies/launchers/multiprocessing.py", line 130, in _wrapping_function
    results = function(*args, **kwargs)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 741, in _fit_impl
    results = self._run(model, ckpt_path=self.ckpt_path)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1118, in _run
    self.__setup_profiler()
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1745, in __setup_profiler
    self.profiler.setup(stage=self.state.fn._setup_fn, local_rank=local_rank, log_dir=self.log_dir)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 2218, in log_dir
    dirpath = self.strategy.broadcast(dirpath)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/pytorch_lightning/strategies/ddp_spawn.py", line 245, in broadcast
    torch.distributed.broadcast_object_list(obj, src, group=_group.WORLD)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/distributed/distributed_c10d.py", line 1869, in broadcast_object_list
    broadcast(object_sizes_tensor, src=src, group=group)
  File "/opt/miniconda/envs/ptldev/lib/python3.8/site-packages/torch/distributed/distributed_c10d.py", line 1187, in broadcast
    work = default_pg.broadcast([tensor], opts)
RuntimeError: [1] is setting up NCCL communicator and retreiving ncclUniqueId from [0] via c10d key-value store by key '0', but store->get('0') got error: Broken pipe

This may be a broader issue as I get these issues whether I use an MPIConfiguration or a PytorchConfiguration and whether I use this new Azure environment or not. Here is my code for reference:

import torch, os, sys
from torch.utils.data import DataLoader, Dataset
#from deepspeed.ops.adam import FusedAdam
#from azureml.core import Run, Workspace
from pytorch_lightning import LightningModule, Trainer, LightningDataModule, seed_everything
from pytorch_lightning.loggers import MLFlowLogger
from pytorch_lightning.plugins.environments import AzureOpenMPIEnvironment
#from pytorch_lightning.strategies import DeepSpeedStrategy
from argparse import ArgumentParser

device = 'gpu' if torch.cuda.is_available() else 'cpu'

print(f"device = {device}")
divider_str="-"*40

def get_env_display_text(var_name):
    var_value = os.environ.get(var_name, "")
    return f"{var_name} = {var_value}"

def display_environment(header='Environmental variables'):
    """
    Print a few environment variables of note
    """
    variable_names = [
        "PL_GLOBAL_SEED",
        "PL_SEED_WORKERS",
        "AZ_BATCH_MASTER_NODE",
        "AZ_BATCHAI_MPI_MASTER_NODE",
        "MASTER_ADDR",
        "MASTER_ADDRESS",
        "MASTER_PORT",
        "RANK",
        "NODE_RANK",
        "LOCAL_RANK",
        "GLOBAL_RANK",
        "WORLD_SIZE",
        "NCCL_SOCKET_IFNAME",
        "OMPI_COMM_WORLD_RANK",
        "OMPI_COMM_WORLD_LOCAL_RANK",
        "OMPI_COMM_WORLD_SIZE",
        "OMPI_COMM_WORLD_LOCAL_SIZE",
        "OMPI_COMM_WORLD_NODE_RANK",
        "OMPI_UNIVERSE_SIZE"
    ]

    var_text = "\n".join([get_env_display_text(var) for var in variable_names])
    print(f"\n{header}:\n{divider_str}\n{var_text}\n{divider_str}\n")

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.save_hyperparameters()
        self.model = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.model(x)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("train_loss", loss, on_step=True, on_epoch=True)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("valid_loss", loss)

    def configure_optimizers(self):
        return torch.optim.AdamW(self.model.parameters())
        #return FusedAdam(self.model.parameters())

    def setup(self, stage=None) -> None:
        # prevents hanging
        if stage != "fit":
            return

class DataModule(LightningDataModule):
    def __init__(self):
        super().__init__()
        self.num_workers = os.cpu_count()
        print(f"num_workers set to {self.num_workers}")

    def setup(self, stage=None) -> None:
        self._dataloader = DataLoader(
            RandomDataset(32, 64),
             num_workers=self.num_workers,
             batch_size=1,
             pin_memory=True
             )

    def train_dataloader(self):
        return self._dataloader

    def test_dataloader(self):
        return self._dataloader

    def val_dataloader(self):
        return self._dataloader

if __name__ == "__main__":
    parser = ArgumentParser()
    parser.add_argument("--num_nodes", default = 1, type=int)
    parser.add_argument("--devices", default = 1, type=int, help='Number of devices per node')
    args = parser.parse_args()

    seed_everything(102938, workers = True)

    model = BoringModel()
    dm = DataModule()

    #os.environ['MASTER_PORT'] = "6105"
    display_environment("__main__")

    trainer = Trainer(
        num_nodes=args.num_nodes,
        accelerator=device,
        devices=args.devices,
        precision=16,
        limit_train_batches=2,
        limit_val_batches=2,
        log_every_n_steps=1,
        logger=False,
        enable_checkpointing=False,
        num_sanity_val_steps=0,
        max_epochs=2,
        enable_model_summary=False,
        #strategy = "deepspeed_stage_3",
        #plugins=[AzureOpenMPIEnvironment(devices=args.devices)],
        # strategy=DDPStrategy(
        #     cluster_environment = AzureOpenMPIEnvironment(devices=args.devices)
        # ),
        # strategy=DeepSpeedStrategy(
        #     stage = 3,
        #     cluster_environment = AzureOpenMPIEnvironment(devices=args.devices)
        # ),
    )

    # extract cluster environment
    trainer_cluster_environment = trainer._accelerator_connector.cluster_environment
    print(f"trainer cluster environment: {trainer_cluster_environment}")
    print(f"Was Azure OpenMPI environment used? {type(trainer_cluster_environment) == AzureOpenMPIEnvironment}")

    trainer.fit(model, datamodule=dm)

    print(f"""trainer.local_rank: {trainer.local_rank}
trainer.global_rank : {trainer.global_rank}
trainer.world_size : {trainer.world_size}
""")

Environment:
* CUDA:
	- GPU:
		- Tesla K80
		- Tesla K80
		- Tesla K80
		- Tesla K80
	- available:         True
	- version:           11.3
* Lightning:
	- lightning:         2022.8.18
	- lightning-cloud:   0.5.3
	- torch:             1.11.0
	- torchaudio:        0.11.0
	- torchmetrics:      0.9.3
	- torchvision:       0.12.0
* Packages:
	- absl-py:           1.2.0
	- accelerate:        0.12.0
	- adal:              1.2.7
	- aiobotocore:       2.3.4
	- aiohttp:           3.8.1
	- aioitertools:      0.10.0
	- aiosignal:         1.2.0
	- anyio:             3.6.1
	- argcomplete:       2.0.0
	- asgiref:           3.5.2
	- async-timeout:     4.0.2
	- attrs:             22.1.0
	- azure-common:      1.1.28
	- azure-core:        1.25.0
	- azure-graphrbac:   0.61.1
	- azure-identity:    1.10.0
	- azure-mgmt-authorization: 2.0.0
	- azure-mgmt-containerregistry: 10.0.0
	- azure-mgmt-core:   1.3.0
	- azure-mgmt-keyvault: 10.1.0
	- azure-mgmt-resource: 21.1.0
	- azure-mgmt-storage: 20.0.0
	- azure-storage-blob: 12.9.0
	- azureml-core:      1.44.0
	- azureml-dataprep:  4.2.2
	- azureml-dataprep-native: 38.0.0
	- azureml-dataprep-rslex: 2.8.1
	- azureml-dataset-runtime: 1.44.0
	- azureml-defaults:  1.44.0
	- azureml-inference-server-http: 0.7.4
	- azureml-mlflow:    1.44.0
	- backports.tempfile: 1.0
	- backports.weakref: 1.0.post1
	- bcrypt:            3.2.2
	- botocore:          1.24.21
	- brotlipy:          0.7.0
	- cachetools:        5.2.0
	- certifi:           2022.6.15
	- cffi:              1.15.0
	- charset-normalizer: 2.0.4
	- click:             8.1.3
	- cloudpickle:       2.1.0
	- commonmark:        0.9.1
	- configparser:      3.7.4
	- contextlib2:       21.6.0
	- croniter:          1.3.5
	- cryptography:      37.0.1
	- databricks-cli:    0.17.1
	- datasets:          2.4.0
	- deepdiff:          5.8.1
	- deepspeed:         0.7.0
	- dill:              <IP_ADDRESS>
	- distro:            1.7.0
	- dnspython:         2.2.1
	- docker:            5.0.3
	- dotnetcore2:       3.1.23
	- email-validator:   1.2.1
	- entrypoints:       0.4
	- fastapi:           0.79.0
	- filelock:          3.8.0
	- flask:             2.1.3
	- flask-cors:        3.0.10
	- frozenlist:        1.3.1
	- fsspec:            2022.7.1
	- fusepy:            3.0.1
	- gitdb:             4.0.9
	- gitpython:         3.1.27
	- google-api-core:   2.8.2
	- google-auth:       2.10.0
	- google-auth-oauthlib: 0.4.6
	- googleapis-common-protos: 1.56.4
	- grpcio:            1.47.0
	- gunicorn:          20.1.0
	- h11:               0.13.0
	- hjson:             3.1.0
	- httptools:         0.4.0
	- huggingface-hub:   0.8.1
	- humanfriendly:     10.0
	- idna:              3.3
	- importlib-metadata: 4.12.0
	- importlib-resources: 5.9.0
	- inference-schema:  1.4.2
	- isodate:           0.6.1
	- itsdangerous:      2.1.2
	- jeepney:           0.8.0
	- jinja2:            3.1.2
	- jmespath:          1.0.0
	- joblib:            1.1.0
	- json-logging-py:   0.2
	- jsonpickle:        2.2.0
	- jsonschema:        4.12.1
	- knack:             0.9.0
	- lightning:         2022.8.18
	- lightning-cloud:   0.5.3
	- markdown:          3.4.1
	- markupsafe:        2.1.1
	- mkl-fft:           1.3.1
	- mkl-random:        1.2.2
	- mkl-service:       2.4.0
	- mlflow-skinny:     1.28.0
	- msal:              1.18.0
	- msal-extensions:   1.0.0
	- msrest:            0.7.1
	- msrestazure:       0.6.4
	- multidict:         6.0.2
	- multiprocess:      0.70.13
	- ndg-httpsclient:   0.5.1
	- ninja:             <IP_ADDRESS>
	- numpy:             1.22.3
	- oauthlib:          3.2.0
	- opencensus:        0.11.0
	- opencensus-context: 0.1.3
	- opencensus-ext-azure: 1.1.6
	- ordered-set:       4.1.0
	- orjson:            3.7.12
	- packaging:         21.3
	- pandas:            1.4.3
	- paramiko:          2.11.0
	- pathspec:          0.9.0
	- pillow:            9.0.1
	- pip:               20.0.2
	- pkginfo:           1.8.3
	- pkgutil-resolve-name: 1.3.10
	- portalocker:       2.5.1
	- protobuf:          3.19.4
	- psutil:            5.9.1
	- py-cpuinfo:        8.0.0
	- pyarrow:           9.0.0
	- pyasn1:            0.4.8
	- pyasn1-modules:    0.2.8
	- pycparser:         2.21
	- pydantic:          1.9.2
	- pydeprecate:       0.3.2
	- pygments:          2.13.0
	- pyjwt:             2.4.0
	- pynacl:            1.5.0
	- pyopenssl:         22.0.0
	- pyparsing:         3.0.9
	- pyrsistent:        0.18.1
	- pysocks:           1.7.1
	- python-dateutil:   2.8.2
	- python-dotenv:     0.20.0
	- python-multipart:  0.0.5
	- pytz:              2022.2.1
	- pyyaml:            6.0
	- requests:          2.27.1
	- requests-oauthlib: 1.3.1
	- responses:         0.18.0
	- rich:              12.5.1
	- rsa:               4.9
	- s3fs:              2022.7.1
	- scikit-learn:      1.1.2
	- scipy:             1.9.0
	- secretstorage:     3.3.3
	- sentencepiece:     0.1.97
	- setuptools:        61.2.0
	- six:               1.16.0
	- sklearn:           0.0
	- smmap:             5.0.0
	- sniffio:           1.2.0
	- sqlparse:          0.4.2
	- starlette:         0.20.4
	- starsessions:      1.3.0
	- tabulate:          0.8.10
	- tensorboard:       2.10.0
	- tensorboard-data-server: 0.6.1
	- tensorboard-plugin-wit: 1.8.1
	- threadpoolctl:     3.1.0
	- torch:             1.11.0
	- torchaudio:        0.11.0
	- torchmetrics:      0.9.3
	- torchvision:       0.12.0
	- tqdm:              4.64.0
	- traitlets:         5.3.0
	- typing-extensions: 4.1.1
	- ujson:             5.4.0
	- urllib3:           1.26.9
	- uvicorn:           0.17.6
	- uvloop:            0.16.0
	- watchgod:          0.8.2
	- websocket-client:  1.3.3
	- websockets:        10.3
	- werkzeug:          2.2.2
	- wheel:             0.37.1
	- wrapt:             1.14.1
	- xxhash:            3.0.0
	- yarl:              1.8.1
	- zipp:              3.8.1
* System:
	- OS:                Linux
	- architecture:
		- 64bit
		- ELF
	- processor:         x86_64
	- python:            3.8.13
	- version:           #38-Ubuntu SMP Sun Mar 22 21:27:21 UTC 2020

Building from the base docker image : mcr.microsoft.com/azureml/openmpi4.1.0-cuda11.3-cudnn8-ubuntu20.04

@jessecambon Thanks for investigating this. Unfortunate that the edge case is single-node behavior. Does your Azure OpenMPI environment get selected correctly when running on single node too?

@awaelchli could we port this to lite?

We added an environment to handle MPI here: #16570. The Azure version could rely on this as well.


No match found for location with path "/"

Environment
"nuxt": "^3.11.0",
"@nuxtjs/i18n": "^8.2.0",
Reproduction
this is the export default defineNuxtConfig({
    ['@nuxtjs/i18n',
      {
        strategy: "prefix",
        lazy: false,
        langDir: "lang/",
        fallbackLocale: ['en', 'nl','fr','fa'],
        detectBrowserLanguage: {
          fallbackLocale: ['en', 'nl','fr','fa'],
          useCookie: true,
          cookieKey: lang_cookie_name,
          cookieSecure: true,
          redirectOn: 'root',
          alwaysRedirect: true
        },

Describe the bug
the bug is in npm run dev get the error [Vue Router warn]: No match found for location with path "/".
this is very annoying when nuxt goes to npm run generate.
Additional context
this is very annoying when nuxt goes to npm run generate.
Logs
[Vue Router warn]: No match found for location with path "/"

Here is the reproduction.
Strategy prefix won't generate / path and it will only generate locales path. this will cause warnings inside terminal/console.

Same issue here 🙋🏾

Same issue


Lost all assessments after an upgrade to a new feature release of Windows 11

🐛 Bug Report
I lost all assessments when launching CSET after an upgrade to the latest version of W11 and a few reboots. Now CSET launches with 0 assessments in its history.
In addition, I made a backup of one assessment, its import process takes forever (never finishes).
CSET version: <IP_ADDRESS>
To Reproduce
Steps to reproduce the behavior: unknown
Expected behavior
The assessments should remain after Windows upgrades.
Any helpful log output
Paste the results here:

fixed after another reboot.


聊天功能出现错误

如下图，刚配置好API_KEY和配置BASE_URL，其他没有做过操作

使用中转地址或者OPENAI官方地址都会有这个错误。
macOS 版本 15.1
以下是日志：

2024-12-10 17:30:06.300664 INFO: package:ChatMcp/page/layout/chat_page/chat_page.dart:130: tools:
{}
2024-12-10 17:30:06.792327 SEVERE: package:ChatMcp/page/layout/chat_page/chat_page.dart:272: Error: Exception: Failed to get response: DioException [bad response]: This exception was thrown because the response has a status code of 400 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 400 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
#0      OpenAIClient.chatCompletion (package:ChatMcp/llm/openai_client.dart:67)

#1      BaseLLMClient.checkToolCall (package:ChatMcp/llm/base_llm_client.dart:21)

#2      _ChatPageState._handleSubmitted (package:ChatMcp/page/layout/chat_page/chat_page.dart:135)

目前发现安装后首次会有这个问题, 重启可以解决, 我研究研究咋解决

问题已修复, 可下载 chatmcp-macos-chat-execption-fixed 试试

谢谢这么快反应。但是我的401还是存在，是不是因为我用的第三方代理的，而这里是写死的啊？final String baseUrl = 'https://api.openai.com/v1/chat/completions'; 谢谢！

@zhouad @iGeeky  果然是 api 传递的有问题, fixed
chatmcp-macos-fixed-custorm-api.zip

api的问题解决了，但是还是报了400的错误

api的问题解决了，但是还是报了400的错误

可以看下日志，复制参数然后自己postman里调用一下试试，三方的接口不确定参数是否都支持，要排查一下

2024-12-11 13:50:34.680802 INFO: package:ChatMcp/provider/mcp_server_provider.dart:111: mcp_server path: /Users/zhouad/Documents/mcp_server.json
2024-12-11 13:50:34.694505 FINE: package:ChatMcp/page/layout/chat_page/chat_page.dart:48: Using API Key: [HIDDEN]
2024-12-11 13:50:34.696794 FINE: package:ChatMcp/page/layout/chat_page/chat_page.dart:52: llmClient init success
2024-12-11 13:50:34.733220 INFO: package:ChatMcp/provider/mcp_server_provider.dart:116: 配置文件内容: {
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"/Users/zhouad/Downloads/test.db"
],
"env": {}
},
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
],
"env": {}
}
}
}
2024-12-11 13:50:34.743596 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:40: 启动进程: uvx mcp-server-sqlite --db-path /Users/zhouad/Downloads/test.db
2024-12-11 13:50:34.754612 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:50: 进程启动状态：PID=41774
2024-12-11 13:50:34.755128 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"initialize","id":"init-1","params":{"protocolVersion":"2024-11-05","capabilities":{"roots":{"listChanged":true},"sampling":{}},"clientInfo":{"name":"DartMCPClient","version":"1.0.0"}}}
2024-12-11 13:50:36.692885 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:171: 初始化请求响应: {"jsonrpc":"2.0","method":"","id":"init-1","result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"sqlite","version":"0.1.0"}}}
2024-12-11 13:50:36.693030 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
2024-12-11 13:50:36.693091 INFO: package:ChatMcp/mcp/mcp.dart:19: 初始化响应: {"jsonrpc":"2.0","method":"","id":"init-1","result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"sqlite","version":"0.1.0"}}}
2024-12-11 13:50:36.693182 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"tools/list","id":"tool-list-1"}
2024-12-11 13:50:36.695171 INFO: package:ChatMcp/mcp/mcp.dart:22: 工具列表响应: {"jsonrpc":"2.0","method":"","id":"tool-list-1","result":{"tools":[{"name":"read-query","description":"Execute a SELECT query on the SQLite database","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"SELECT SQL query to execute"}},"required":["query"]}},{"name":"write-query","description":"Execute an INSERT, UPDATE, or DELETE query on the SQLite database","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"SQL query to execute"}},"required":["query"]}},{"name":"create-table","description":"Create a new table in the SQLite database","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"CREATE TABLE SQL statement"}},"required":["query"]}},{"name":"list-tables","description":"List all tables in the SQLite database","inputSchema":{"type":"object","properties":{}}},{"name":"describe-table","description":"Get the schema information for a specific table","inputSchema":{"type":"object","properties":{"table_name":{"type":"string","description":"Name of the table to describe"}},"required":["table_name"]}},{"name":"append-insight","description":"Add a business insight to the memo","inputSchema":{"type":"object","properties":{"insight":{"type":"string","description":"Business insight discovered from data analysis"}},"required":["insight"]}}]}}
2024-12-11 13:50:36.695283 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:40: 启动进程: uvx mcp-server-fetch
2024-12-11 13:50:36.699197 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:50: 进程启动状态：PID=41795
2024-12-11 13:50:36.699399 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"initialize","id":"init-1","params":{"protocolVersion":"2024-11-05","capabilities":{"roots":{"listChanged":true},"sampling":{}},"clientInfo":{"name":"DartMCPClient","version":"1.0.0"}}}
2024-12-11 13:50:38.420898 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:171: 初始化请求响应: {"jsonrpc":"2.0","method":"","id":"init-1","result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"mcp-fetch","version":"1.1.1"}}}
2024-12-11 13:50:38.421071 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
2024-12-11 13:50:38.421134 INFO: package:ChatMcp/mcp/mcp.dart:19: 初始化响应: {"jsonrpc":"2.0","method":"","id":"init-1","result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"mcp-fetch","version":"1.1.1"}}}
2024-12-11 13:50:38.421215 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"tools/list","id":"tool-list-1"}
2024-12-11 13:50:38.423973 INFO: package:ChatMcp/mcp/mcp.dart:22: 工具列表响应: {"jsonrpc":"2.0","method":"","id":"tool-list-1","result":{"tools":[{"name":"fetch","description":"Fetches a URL from the internet and optionally extracts its contents as markdown.\n\nAlthough originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.","inputSchema":{"description":"Parameters for fetching a URL.","properties":{"url":{"description":"URL to fetch","format":"uri","minLength":1,"title":"Url","type":"string"},"max_length":{"default":5000,"description":"Maximum number of characters to return.","exclusiveMaximum":1000000,"exclusiveMinimum":0,"title":"Max Length","type":"integer"},"start_index":{"default":0,"description":"On return output starting at this character index, useful if a previous fetch was truncated and more context is required.","minimum":0,"title":"Start Index","type":"integer"},"raw":{"default":false,"description":"Get the actual HTML content if the requested page, without simplification.","title":"Raw","type":"boolean"}},"required":["url"],"title":"Fetch","type":"object"}}]}}
2024-12-11 13:50:38.424077 INFO: package:ChatMcp/provider/mcp_server_provider.dart:119: mcp_server count: 2
2024-12-11 13:50:45.626098 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"tools/list","id":"tool-list-1"}
2024-12-11 13:50:45.628386 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"tools/list","id":"tool-list-1"}
2024-12-11 13:50:45.632566 INFO: package:ChatMcp/page/layout/chat_page/chat_page.dart:147: tools:
{
"sqlite": [
{
"name": "read-query",
"description": "Execute a SELECT query on the SQLite database",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "SELECT SQL query to execute"
}
},
"required": [
"query"
]
}
},
{
"name": "write-query",
"description": "Execute an INSERT, UPDATE, or DELETE query on the SQLite database",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "SQL query to execute"
}
},
"required": [
"query"
]
}
},
{
"name": "create-table",
"description": "Create a new table in the SQLite database",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "CREATE TABLE SQL statement"
}
},
"required": [
"query"
]
}
},
{
"name": "list-tables",
"description": "List all tables in the SQLite database",
"inputSchema": {
"type": "object",
"properties": {}
}
},
{
"name": "describe-table",
"description": "Get the schema information for a specific table",
"inputSchema": {
"type": "object",
"properties": {
"table_name": {
"type": "string",
"description": "Name of the table to describe"
}
},
"required": [
"table_name"
]
}
},
{
"name": "append-insight",
"description": "Add a business insight to the memo",
"inputSchema": {
"type": "object",
"properties": {
"insight": {
"type": "string",
"description": "Business insight discovered from data analysis"
}
},
"required": [
"insight"
]
}
}
],
"fetch": [
{
"name": "fetch",
"description": "Fetches a URL from the internet and optionally extracts its contents as markdown.\n\nAlthough originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.",
"inputSchema": {
"description": "Parameters for fetching a URL.",
"properties": {
"url": {
"description": "URL to fetch",
"format": "uri",
"minLength": 1,
"title": "Url",
"type": "string"
},
"max_length": {
"default": 5000,
"description": "Maximum number of characters to return.",
"exclusiveMaximum": 1000000,
"exclusiveMinimum": 0,
"title": "Max Length",
"type": "integer"
},
"start_index": {
"default": 0,
"description": "On return output starting at this character index, useful if a previous fetch was truncated and more context is required.",
"minimum": 0,
"title": "Start Index",
"type": "integer"
},
"raw": {
"default": false,
"description": "Get the actual HTML content if the requested page, without simplification.",
"title": "Raw",
"type": "boolean"
}
},
"required": [
"url"
],
"title": "Fetch",
"type": "object"
}
}
]
}
2024-12-11 13:50:46.782210 INFO: package:ChatMcp/mcp/stdio/stdio_client.dart:116: 写入数据: {"jsonrpc":"2.0","method":"tools/call","id":"tool-call-1733896246781","params":{"name":"read-query","arguments":{"query":"SELECT * FROM products WHERE price > 100"},"_meta":{"progressToken":0}}}
2024-12-11 13:50:46.937949 SEVERE: package:ChatMcp/page/layout/chat_page/chat_page.dart:291: Error: Exception: Stream completion failed: DioException [bad response]: This exception was thrown because the response has a status code of 400 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 400 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
#0      OpenAIClient.chatStreamCompletion (package:ChatMcp/llm/openai_client.dart:147)

#1      _ChatPageState._handleSubmitted (package:ChatMcp/page/layout/chat_page/chat_page.dart:258)

日志见上面

@zhouad 下载最新版试试呢, 这个看着不是最新的日志

In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
}, {role: user, content: 显示products中所有记录}, {role: assistant, tool_calls: [{id: call_read-query, type: function, function: {name: read-query, arguments: {"query":"SELECT * FROM products;"}}}]}, {role: tool, content: [{type: text, text: [{'id': 1, 'name': 'Widget', 'price': 19.99}, {'id': 2, 'name': 'Gadget', 'price': 29.99}, {'id': 3, 'name': 'Gizmo', 'price': 39.99}, {'id': 4, 'name': 'Smart Watch', 'price': 199.99}, {'id': 5, 'name': 'Wireless Earbuds', 'price': 89.99}, {'id': 6, 'name': 'Portable Charger', 'price': 24.99}, {'id': 7, 'name': 'Bluetooth Speaker', 'price': 79.99}, {'id': 8, 'name': 'Phone Stand', 'price': 15.99}, {'id': 9, 'name': 'Laptop Sleeve', 'price': 34.99}, {'id': 10, 'name': 'Mini Drone', 'price': 299.99}, {'id': 11, 'name': 'LED Desk Lamp', 'price': 45.99}, {'id': 12, 'name': 'Keyboard', 'price': 129.99}, {'id': 13, 'name': 'Mouse Pad', 'price': 12.99}, {'id': 14, 'name': 'USB Hub', 'price': 49.99}, {'id': 15, 'name': 'Webcam', 'price': 69.99}, {'id': 16, 'name': 'Screen Protector', 'price': 9.99}, {'id': 17, 'name': 'Travel Adapter', 'price': 27.99}, {'id': 18, 'name': 'Gaming Headset', 'price': 159.99}, {'id': 19, 'name': 'Fitness Tracker', 'price': 119.99}, {'id': 20, 'name': 'Portable SSD', 'price': 179.99}]}], name: read-query, tool_call_id: call_read-query}], stream: true} DioException [bad response]: This exception was thrown because the response has a status code of 400 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 400 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
#0      OpenAIClient.chatStreamCompletion (package:ChatMcp/llm/openai_client.dart:152)

#1      _ChatPageState._handleSubmitted (package:ChatMcp/page/layout/chat_page/chat_page.dart:258)

还是会报错

@zhouad 可以试试新版本


domain is gone

status: NXDOMAIN

oh dear.

Ok should be fixed, ty for heads up.

what a shitty dev
On Wed, Nov 4, 2015 at 7:52 AM, r0nk<EMAIL_ADDRESS>wrote:

Ok should be fixed, ty for heads up.
—
Reply to this email directly or view it on GitHub
https://github.com/r0nk/simplecpu/issues/29#issuecomment-153771410.


Segfault in thrift proxy

Title: We're seeing a recurring segfault in the thrift proxy, stacktrace below. We're actively working on diagnosing and reproducing.
Description:
Segfaulting occurs some time after starting (up to about 15 minutes) when running Thrift for ingress traffic. We're running from commit 7ed6d2187df94c4cb96f7dccb8643bf764af2ccb (April 4th).
Repro steps:
Working on it. @fishcakez @rgs1 and I are actively debugging.
Config:
Listeners:
[
  {
    "@type": "type.googleapis.com/envoy.api.v2.Listener",
    "address": {
      "socket_address": {
        "address": "<IP_ADDRESS>",
        "port_value": 8000
      }
    },
    "filter_chains": [
      {
        "filters": [
          {
            "name": "envoy.filters.network.thrift_proxy",
            "typed_config": {
              "@type": "type.googleapis.com/envoy.config.filter.network.thrift_proxy.v2alpha1.ThriftProxy",
              "route_config": {
                "name": "routes_service",
                "routes": [
                  {
                    "match": {
                      "method_name": ""
                    },
                    "route": {
                      "cluster": "local_service"
                    }
                  }
                ]
              },
              "stat_prefix": "ingress_service",
              "thrift_filters": [
                {
                  "name": "envoy.filters.thrift.router",
                  "typed_config": {}
                }
              ]
            }
          }
        ],
        "tls_context": {
          "common_tls_context": {
            "tls_certificate_sds_secret_configs": [
              {
                "name": "certificate_chain",
                "sds_config": {
                  "api_config_source": {
                    "api_type": "GRPC",
                    "grpc_services": [
                      {
                        "envoy_grpc": {
                          "cluster_name": "local_sds"
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "validation_context_sds_secret_config": {
              "name": "certificate_authority",
              "sds_config": {
                "api_config_source": {
                  "api_type": "GRPC",
                  "grpc_services": [
                    {
                      "envoy_grpc": {
                        "cluster_name": "local_sds"
                      }
                    }
                  ]
                }
              }
            }
          },
          "require_client_certificate": true
        }
      }
    ],
    "name": "ingress_service"
  }
]

cluster config
[
  {
    "@type": "type.googleapis.com/envoy.api.v2.Cluster",
    "circuit_breakers": {
      "thresholds": [
        {
          "max_connections": 16384,
          "max_pending_requests": 16384,
          "max_requests": 16384,
          "priority": "DEFAULT"
        }
      ]
    },
    "connect_timeout": "0.25s",
    "lb_policy": "ROUND_ROBIN",
    "load_assignment": {
      "cluster_name": "local_service",
      "endpoints": [
        {
          "lb_endpoints": [
            {
              "endpoint": {
                "address": {
                  "socket_address": {
                    "address": "<IP_ADDRESS>",
                    "port_value": 8020
                  }
                }
              }
            }
          ]
        }
      ]
    },
    "name": "local_service",
    "type": "STATIC"
  }
]

Call Stack + Last Logs:
...
[2019-04-05 23:04:16.193][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state FieldBegin, 2 bytes available
[2019-04-05 23:04:16.193][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state StructEnd, 1 bytes available
[2019-04-05 23:04:16.193][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state FieldEnd, 1 bytes available
[2019-04-05 23:04:16.195][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state FieldBegin, 1 bytes available
[2019-04-05 23:04:16.197][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state StructEnd, 0 bytes available
[2019-04-05 23:04:16.197][19][trace][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:338] thrift: state MessageEnd, 0 bytes available
[2019-04-05 23:04:16.197][19][debug][thrift] [external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:446] thrift: framed transport ended
[2019-04-05 23:04:16.199][19][trace][connection] [external/envoy/source/common/network/connection_impl.cc:376] [C116] writing 239 bytes, end_stream false
[2019-04-05 23:04:16.199][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:81] Caught Segmentation fault, suspect faulting address 0x0
[2019-04-05 23:04:16.201][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:69] Backtrace (use tools/stack_decode.py to get line numbers):
[2019-04-05 23:04:16.201][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #0: __restore_rt [0x7f9a1d6b5390] ??:0
[2019-04-05 23:04:16.205][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #1: Envoy::Extensions::NetworkFilters::ThriftProxy::ConnectionManager::ResponseDecoder::transportEnd() [0x736533] external/envoy/source/extensions/filters/network/thrift_proxy/conn_manager.cc:221
[2019-04-05 23:04:16.207][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #2: Envoy::Extensions::NetworkFilters::ThriftProxy::Decoder::onData() [0x73ab1a] external/envoy/source/extensions/filters/network/thrift_proxy/decoder.cc:447
[2019-04-05 23:04:16.209][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #3: Envoy::Extensions::NetworkFilters::ThriftProxy::ConnectionManager::ResponseDecoder::onData() [0x732d7e] external/envoy/source/extensions/filters/network/thrift_proxy/conn_manager.cc:176
[2019-04-05 23:04:16.213][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #4: Envoy::Extensions::NetworkFilters::ThriftProxy::ConnectionManager::ActiveRpc::upstreamData() [0x737eab] external/envoy/source/extensions/filters/network/thrift_proxy/conn_manager.cc:636
[2019-04-05 23:04:16.215][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #5: Envoy::Extensions::NetworkFilters::ThriftProxy::Router::Router::onUpstreamData() [0x72c8af] external/envoy/source/extensions/filters/network/thrift_proxy/router/router_impl.cc:309
[2019-04-05 23:04:16.217][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #6: Envoy::Tcp::ConnPoolImpl::ActiveConn::onUpstreamData() [0x9bc849] external/envoy/source/common/tcp/conn_pool.cc:426
[2019-04-05 23:04:16.219][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #7: Envoy::Tcp::ConnPoolImpl::ConnReadFilter::onData() [0x9bc900] bazel-out/k8-opt/bin/external/envoy/source/common/tcp/_virtual_includes/conn_pool_lib/common/tcp/conn_pool.h:86
[2019-04-05 23:04:16.223][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #8: Envoy::Network::FilterManagerImpl::onContinueReading() [0x8aa5cc] external/envoy/source/common/network/filter_manager_impl.cc:57
[2019-04-05 23:04:16.226][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #9: Envoy::Network::ConnectionImpl::onReadReady() [0x8a6e7a] external/envoy/source/common/network/connection_impl.cc:263
[2019-04-05 23:04:16.229][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #10: Envoy::Network::ConnectionImpl::onFileEvent() [0x8a758a] external/envoy/source/common/network/connection_impl.cc:473
[2019-04-05 23:04:16.231][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #11: Envoy::Event::FileEventImpl::assignEvents()::{lambda()#1}::_FUN() [0x8a12da] external/envoy/source/common/event/file_event_impl.cc:65
[2019-04-05 23:04:16.233][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #12: event_process_active_single_queue.isra.31 [0xbd0fb9] event.c:?
[2019-04-05 23:04:16.235][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #13: event_process_active [0xbd14ef] event.c:?
[2019-04-05 23:04:16.656][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #14: event_base_loop [0xbd30f8] ??:?
[2019-04-05 23:04:17.052][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #15: Envoy::Event::DispatcherImpl::run() [0x8a097a] external/envoy/source/common/event/dispatcher_impl.cc:168
[2019-04-05 23:04:17.453][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #16: Envoy::Server::WorkerImpl::threadRoutine() [0x89b89e] bazel-out/k8-opt/bin/external/envoy/source/common/common/_virtual_includes/minimal_logger_lib/common/common/logger.h:274
[2019-04-05 23:04:17.853][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #17: Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::{lambda()#1}::_FUN() [0xdab295] external/envoy/source/common/common/posix/thread_impl.cc:40
[2019-04-05 23:04:18.256][19][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #18: start_thread [0x7f9a1d6ab6ba] ??:0

cc @zuercher

we're speculating that the line numbers in stack_decode.py is off by ~3

@dnoe Do you know know accurate stack_decode.py would be for an optimized build?

It should work, but the end result may not be as easy to understand as it would be for a debug build. The optimized builds do include symbols but once the optimizer has done its work the source to binary relationship is a little less clear than it is in a debug/fastbuild compilation. I wouldn't be surprised to see line numbers off by a few, or other things like a call that you think you be in the stack has been inlined or optimized away entirely.

Thanks @dnoe, we'll repro the segfault on a debug build to get better line numbers

We think we have an understanding of what's going on:

 ConnectionManager::ResponseDecoder::transportEnd() gets called from Decoder::OnData() in https://github.com/envoyproxy/envoy/blob/master/source/extensions/filters/network/thrift_proxy/decoder.cc#L447. But it really doesn't know if the connection has been closed, so it calls connection().write() regardless: https://github.com/envoyproxy/envoy/blob/master/source/extensions/filters/network/thrift_proxy/conn_manager.cc#L219
Decoder::OnData() gets called without the end_stream parameter from Router::onUpstreamData() in https://github.com/envoyproxy/envoy/blob/master/source/extensions/filters/network/thrift_proxy/router/router_impl.cc#L308

So the apparent fix is to pass end_stream down and avoid the write() call, when the connection has been remotely closed.
@zuercher: does this sound reasonable? We'll come up with a patch to test this out with our live repro, we can discuss unit tests after that.
cc: @fishcakez

Hmm, maybe something like:
[10:21:55] ~/src/envoy (issue-6496) $ git diff
diff --git a/source/extensions/filters/network/thrift_proxy/conn_manager.cc b/source/extensions/filters/network/thrift_proxy/conn_manager.cc
index 1b5d51e43..53f0cf049 100644
--- a/source/extensions/filters/network/thrift_proxy/conn_manager.cc
+++ b/source/extensions/filters/network/thrift_proxy/conn_manager.cc
@@ -204,6 +204,11 @@ FilterStatus ConnectionManager::ResponseDecoder::transportEnd() {

   ConnectionManager& cm = parent_.parent_;

+  // Maybe there was a remote close.
+  if (cm.read_callbacks_->connection().state() == Network::Connection::State::Closed) {
+    // We probably should bump a stat here.
+    return FilterStatus::StopIteration;
+  }
+
   Buffer::OwnedImpl buffer;

will be enough... Will try it out tomorrow.

Ok, this passes @fishcakez's tests with prod traffic:
diff --git a/source/extensions/filters/network/thrift_proxy/conn_manager.cc b/source/extensions/filters/network/thrift_proxy/conn_manager.cc
index 1b5d51e43..b5cb43af9 100644
--- a/source/extensions/filters/network/thrift_proxy/conn_manager.cc
+++ b/source/extensions/filters/network/thrift_proxy/conn_manager.cc
@@ -87,6 +87,9 @@ void ConnectionManager::dispatch() {

 void ConnectionManager::sendLocalReply(MessageMetadata& metadata, const DirectResponse& response,
                                        bool end_stream) {
+  if (read_callbacks_->connection().state() == Network::Connection::State::Closed) {
+    return;
+  }
   Buffer::OwnedImpl buffer;

   const DirectResponse::ResponseType result = response.encode(metadata, *protocol_, buffer);
@@ -204,6 +207,11 @@ FilterStatus ConnectionManager::ResponseDecoder::transportEnd() {

   ConnectionManager& cm = parent_.parent_;

+  if (cm.read_callbacks_->connection().state() == Network::Connection::State::Closed) {
+    complete_ = true;
+    throw EnvoyException("thrift downstream gone");
+  }
+
   Buffer::OwnedImpl buffer;

I'll clean it up, add tests, etc...


How do I test using Waypoint?

I'm using this library a lot in a few apps, I haven't found a good example on how to test my components that use this. Say I want to simply write a test that asserts a specific function gets called when Waypoint scrolls into view. Are there any examples on the web I can look at?

I'd like to know this as well. At the moment, I'm calling the onChange method directly, like so:
act(() => {
      wrapper
        .find(Waypoint)
        .prop('onPositionChange')
        .call(null, { currentPosition: 'inside' });
    });

wrapper.update();
expect(/*something to happen*/);


Remove unused import

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/218/ for details

No pylint warnings for pull request 6112:

Unit test changes for pull request 6112:

WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testUnsupportedFormat changed from error to success
WMCore_t.Database_t.ResultSet_t.ResultSetTest:testFullResultSet was added. Status is success
WMCore_t.Services_t.pycurlFileUpload_t.PyCurlRESTServer:testFileUpload changed from error to success
nose.failure.Failure:runTest was deleted. Prior status was error
WMCore_t.Database_t.ResultSet_t.ResultSetTest:test1000Binds was added. Status is success
WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testSupportedFormat changed from error to success

@ticoann please merge. This was just another import that no longer existed and was holding up two passing(!) tests.


[skip travis] update yq

n/t

There's also the Dockerfile, might as well do that too.

searching all files shows there's actually 5 occurences of 3.1.2.  not sure which ones need to be changed.


Add permissions check for istioctl analyze

Adds a permissions pre-check to istioctl analyze. If the user doesn't have permissions on any resource, it will be treated as disabled and any analyzers that depend on it will be skipped over. An error-level log message is also printed.
See https://github.com/istio/istio/issues/18177 and https://github.com/istio/istio/pull/19890 for further context.

@sushicw: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
dbbd4e50d1792cf01eab8edbd8e541d64aba53cb
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@sushicw: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
7dccd881c3b96955f53f62c7040facf0cb203239
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@sushicw: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
7dccd881c3b96955f53f62c7040facf0cb203239
link
/test lint_istio

integ-new-install-k8s-tests_istio
7dccd881c3b96955f53f62c7040facf0cb203239
link
/test integ-new-install-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@sushicw: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-istioio-k8s-tests_istio
6dc86f2b65f1075997585c97e4fb8df170af754d
link
/test integ-istioio-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-istioio-k8s-tests_istio

@sushicw: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-istioio-k8s-tests_istio
6dc86f2b65f1075997585c97e4fb8df170af754d
link
/test integ-istioio-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-istioio-k8s-tests_istio

@sushicw: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-istioio-k8s-tests_istio
6dc86f2b65f1075997585c97e4fb8df170af754d
link
/test integ-istioio-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Add documentation for e2e-flow sample usecase

Signed-off-by: Akash Nayak<EMAIL_ADDRESS>

The added documentation can be viewed at https://akash-nayak.github.io/move2kube/tutorials/e2e-flow/.

@Akash-Nayak Is there a way to have the terminal ui as text while visually similar to the terminal output? If we add a lot of images, the repo size willl increase quite a bit.
Are you aware of any such formatting tool for markdown?

@Akash-Nayak Is there a way to have the terminal ui as text while visually similar to the terminal output? If we add a lot of images, the repo size willl increase quite a bit.
Are you aware of any such formatting tool for markdown?

Yes sure, adding too many images will definitely increase the repo size and make the loading of webpage slow, as there are more demos to be added as well. I am not aware of such formatting tool for markdown but will check for it.

@Akash-Nayak Is there a way to have the terminal ui as text while visually similar to the terminal output? If we add a lot of images, the repo size willl increase quite a bit.
Are you aware of any such formatting tool for markdown?

Yes sure, adding too many images will definitely increase the repo size and make the loading of webpage slow, as there are more demos to be added as well. I am not aware of such formatting tool for markdown but will check for it.

I have made some changes in the documentation.

Updated the Prerequisites: Updated move2kube installation command, added the steps to install the dependencies including the installation through installdeps.sh, and added Helm v3 in the dependencies.
Removed all the images of the terminal output and added text in place of it.
Added the steps (in form of ordered list) for deployment to K8s cluster.
For running pushimages.sh, specified the requirement of login to the docker registry.


Add creationInfo to named individuals

Add creationInfo to named individuals, so it will pass the validation.
To fix #153
--
Generated spdx-model.ttl:
@prefix ns1: <https://spdx.org/rdf/3.0.1/terms/Core/> .
@prefix ns7: <https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/>

ns1:_SpdxOrganization a owl:NamedIndividual,
        ns1:Organization ;
    rdfs:comment "SPDX Project"@en ;
    ns1:creationInfo _:_CreationInfo ;
    ns1:spdxId <https://spdx.org/> .

ns1:NoAssertionElement a owl:NamedIndividual,
        ns1:Element ;
    rdfs:comment """An Individual Value for Element representing a set of Elements of unknown
identify or cardinality (number)."""@en ;
    ns1:creationInfo _:_CreationInfo .

ns1:NoneElement a owl:NamedIndividual,
        ns1:Element ;
    rdfs:comment """An Individual Value for Element representing a set of Elements with
cardinality (number/count) of zero."""@en ;
    ns1:creationInfo _:_CreationInfo .

ns7:NoAssertionLicense a owl:NamedIndividual,
        ns7:IndividualLicensingInfo ;
    rdfs:comment """An Individual Value for License when no assertion can be made about its actual
value."""@en ;
    owl:sameAs <https://spdx.org/rdf/3.0.1/terms/Licensing/NoAssertion> ;
    ns1:creationInfo _:_CreationInfo .

ns7:NoneLicense a owl:NamedIndividual,
        ns7:IndividualLicensingInfo ;
    rdfs:comment """An Individual Value for License where the SPDX data creator determines that no
license is present."""@en ;
    owl:sameAs <https://spdx.org/rdf/3.0.1/terms/Licensing/None> ;
    ns1:creationInfo _:_CreationInfo .

_:_CreationInfo a ns1:CreationInfo ;
    ns1:created "2024-09-13T00:00:00Z"^^xsd:dateTimeStamp ;
    ns1:createdBy ns1:_SpdxOrganization ;
    ns1:specVersion "3.0.1"^^xsd:string .

No, this is not the right way to add the SPDX Individual Organization.
It should be added to the model / Core / Individuals.

Does it mean it is possible for the user to use the _SpdxOrganization individual?

The intention of the current code is to hide the _SpdxOrganization from the public spec documentation. This is also partly reflected in the naming by using a prefix _.
But if we like to advertise the _SpdxOrganization (probably with a new name "SpdxOrganization") in the public spec, can remove that part of the code and create another PR in spdx-3-model instead.

@bact, please don't spend time implementing stuff without first having reached consensus on how this should be done. I feel bad seeing all this work implementing alternatives where only one of them will be merged...
To your points:

we will have an individual referring to the SPDX organization in our model
the RDF generation of all individuals will be using this (hard-wired as creator)

But please, ignore the spec-parser code and don't make any PRs.
Due to tomorrow's deadline I will not be merging anything (since it might not match what I am currently using). I will be doing any necessary changes to whatever I have and I will push these sometime next week.

Thank you for review. I sometimes have hard time to describe what I have in my mind, so some code can help myself saying it more concretely and hopefully help others well, for them to decide if the idea is a no or a go or something needs to be revise. Please reject things that doesn't make sense or not fit into the time frame.

I have removed the _SpdxOrganization from this PR (to use one in the model)
Retain the hard-wired  CreationInfo here

Understand your point on deadline. Feel free to close this PR if you already implemented it.

Just FYI - @JPEWdev is investigating an alternative approach where we separate the ontology from the SHACL.  It looks like if we do this, the validation will pass since the individual definitions will be in the OWL document.
This alternative approach would require some changes to some of our code generation tools, but may be a cleaner approach.

The identifier for the creationInfo needs to be more than simply "_:CreationInfo".
It needs to be specific to the particular release (something like ":v3.0.1CreationInfo",
In future versions of SPDX there may be multiple different predefined named individuals that were defined in different releases. Their creationInfo details need to be kept distinct and integrous.
A future version 3.1.0 would keep the ":v3.0.1CreationInfo" (and its use within predefined named individuals defined in 3.0.1) and add a new ":_v3.1.0CreationInfo" to be used by any new predefined named individuals if there are any added in 3.1.0.

@sbarnum Splitting the files is (AFAICT) the expected way that the validation tools handle this. They all(?) allow separate aregument for the shapes graph vs the ontology, where objects in the shapes graph are are validated, but objects in the ontology are not validated.
Splitting the shapes and ontology graphs into separate files is going to be the cleanest solution that aligns with the validation tools, and we can still easily generate a combined "model" graph if that is what OMG needs (I'm not sure if they care about the shape graph or not)

Nevermind. After playing around a little, I think I misunderstood what the validation tools were doing, so we probably need to add the creationinfo

The identifier for the creationInfo needs to be more than simply "_:CreationInfo". It needs to be specific to the particular release (something like ":v3.0.1CreationInfo", In future versions of SPDX there may be multiple different predefined named individuals that were defined in different releases. Their creationInfo details need to be kept distinct and integrous. A future version 3.1.0 would keep the ":v3.0.1CreationInfo" (and its use within predefined named individuals defined in 3.0.1) and add a new ":_v3.1.0CreationInfo" to be used by any new predefined named individuals if there are any added in 3.1.0.

@sbarnum would you recommend

_:_V3_0_1_CreationInfo or
_:_CreationInfoV3_0_1 ?

(We cannot use . inside the name)

The identifier for the creationInfo needs to be more than simply "_:CreationInfo".
It needs to be specific to the particular release (something like ":v3.0.1CreationInfo",
In future versions of SPDX there may be multiple different predefined named individuals that were defined in different releases. Their creationInfo details need to be kept distinct and integrous.
A future version 3.1.0 would keep the ":v3.0.1CreationInfo" (and its use within predefined named individuals defined in 3.0.1) and add a new ":_v3.1.0CreationInfo" to be used by any new predefined named individuals if there are any added in 3.1.0.

With this requirement. We may need to have information inside the model file about which version of SPDX that a particular individual is introduced in? @sbarnum @goneall

I've implemented a simpler patch for this, in #159

Close after email discussions and a separate tech call on 2024-12-05. Please look at PR #159 instead.


error TS1110: Type expected

Getting a error TS1110: Type expected from https://github.com/pmb0/nestjs-unleash/blob/master/src/unleash-strategies/strategy/flexible-rollout.ts#L14 when starting up my nest application.  I'm not familiar with this syntax, is there something in the typescript compiler settings that need to be turned on in order to get this module to compile?

Updating Typescript to version 4 fixed the issue.


caching for the ClientStore so we don't have to query too deep

Make a clientStore that returns the BatchID so it can be recursively merged.

partially closed by #547


PHP Version

Q
A

Bug?
no

New Feature?
no

Framework
Laravel

Framework version
5.x.y

Package version
1.x.y

PHP version
5.x.y

Actual Behaviour
Describe the behaviour you're experiencing. Do not just copy and paste a random error message and expect help.
Expected Behaviour
Describe the behaviour you're expecting.
Steps to Reproduce
List all the steps needed to reproduce the issue you're having. Make sure to include code (affected models, configurations),
any screenshots and/or other resources that may help us understand what's going on.
Possible Solutions
If you have any ideas on how to solve the issue, add them here, otherwise you can omit this part.

Hi @immense055 it seems like you have no actually filled in the issue template at all, so I have no idea what the problem is. Please lodge an issue where you actually replace the template with your specific problem.


devos: only format modified lines in git pre-commit hook

In my git committing workflow, I strive to make atomic commits, sometimes staging only single lines in a file.
The current git pre-commit hook is not aware of this, it just stages the whole modified *.nix file, even if it was only partly staged before.
This PR is an attempt to fix this and only format lines that were modified by leveraging git stash.
Feedback welcome!

I've been trying to verify the described behavior but am still seeing the entire file being reformatted upon commit even after only staging part of the file with magit or git add -p. Are you able to put together a demo or provide some testing steps?

Did you test this with a *.nix file? If so, and it doesn't work for you, I'll try to put together a test case :+1:

Yeah, still running into the old behavior.
This is, for context, with the current version of examples/devos copied to a separate location and turned into its own git repo since the hooks won't work otherwise (that's a whole nother issue...)
But actually, I'm wondering if the shell script syntax fixed in #480 is causing a problem here too... I'll try testing both together.

@teutat3s I just tested this again, still no luck. I put together an asciicast to demo the process.
Rough summary:
# setup
cp -R digga/examples/devos ./devos-testing
cd devos-testing
git init # to set up hooks
git add . && git commit -m 'init'

# verification of correct hook version from this PR
# asciicast only shows this for a second but you can pause
bat $DEVSHELL_GIT_HOOKS_DIR/bin/pre-commit

# add a bunch of dumb formatting in three separate locations
vim flake.nix

# stage only one hunk of the three
git add -p

# verify index contents
git diff --staged

git commit -v -m 'testing'

# shows that all hunks have been committed
# only one of the hunks should have been committed
git status

AFAICT, this has been fixed by https://github.com/divnix/digga/pull/491


return errors to server

Codecov Report

Merging #46 into master will decrease coverage by 0.87%.
The diff coverage is 11.11%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   62.62%   61.75%   -0.88%
==========================================
  Files          17       17
  Lines         396      400       +4
==========================================
- Hits          248      247       -1
- Misses        134      139       +5
  Partials       14       14

Impacted Files
Coverage Δ

dumper/dump.go
66.66% <ø> (-4.77%)
:arrow_down:

dumper/worker.go
0% <0%> (ø)
:arrow_up:

adapter/sql.go
75.86% <50%> (ø)
: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 7282820...3d42b12. Read the comment docs.


[dv] Split long lines in mem_bkdr_if.sv

These were over 100 characters; break the function declaration to make
things fit the style guide.
A note: I don't think our style guide has any official guidance about how to break long function declarations like this. I think this option looks reasonably nice, but I'm not particularly wedded to it!

Fine with me.


Reconnect on unicorn USR2

When restarting unicorn with the USR2 signal, a new master is created and workers are forked off. In my config/unicorn.rb, before switching to readthis, I had Rails.cache.reconnect to reconnect to redis after forking. I believe this was an implementation of the redis-store gem, which you aren't using here.
How would you suggest I reconnect the unicorn worker to the redis-based cache with readthis? Thanks!

@justindowning: You don't need to force redis to reconnect, it will automatically reconnect when it encounters inheritance errors. There is a test for this exact use case in the redis-rb repository: fork_safety_test.rb
readthis uses connection_pool to manage multiple connections. While it would be technically possible to iterate over each connection in the pool and force a reconnect, it isn't necessary. In fact, the connection pool documentation even mandates that connections be self repairing!

There is no provision for repairing or checking the health of a connection; connections should be self-repairing. This is true of the Dalli and Redis clients.

So, good news all around. You don't need to do anything!

Great to hear! Thanks for the quick and thorough response! :green_heart:


[nethost] update to latest version 2021.12

Fix #14867
Update [nethost] to the latest version 2021.12
Note: No feature needs to test.

Closing this PR since it seems that no progress is being made. Please reopen if work is still being done.


[RNMaps 0.11] iOS GGMaps - showsUserLocation supported?

Hi!
I would like to know if this is supported right now.
I set the option "showsUserLocation" on the MapView component but it doesn't seems to work.
Thx

Hey did you fix this? WHat did you do? I can't make mine work.

I added the functionality to the package :)
https://github.com/airbnb/react-native-maps/pull/721
I think it is now on version 0.10.4: https://github.com/airbnb/react-native-maps/blob/master/CHANGELOG.md#0104-october-31-2016
The only thing to do is to keep the property on your tag. Just like on Android


Revisiting numpy dependency

@fwkoch, @varyag00, @rowanc1: What are your thoughts on the viability of removing the numpy dependency from properties and putting it in something like properties_array? The numpy dependency is a major deployment hurdle for lightweight web environments.
Thanks!

Sounds like a pretty good idea - array is already built with easily swappable wrapper. I could see changing the default wrapper to list (or tuple or something), but make np.ndarray easy to opt into (maybe through properties_math? or maybe a different solution?).

@bsmithyman Let me know what you think of this PR: https://github.com/3ptscience/properties/pull/84

Array is now moved to math.py.
Other basic properties don't depend on numpy any more.
math properties are only imported if numpy and vectormath are available.
pip install properties does NOT install numpy (or vectormath), you must explicitly pip install properties[math]
A similar framework can now be used for image properties. ie pip install properties[image] also installs pypng allowing ImagePNG to be imported
For a full installation of all available properties, pip install properties[full]

That is super cool. Just looking at how it works now.

https://github.com/3ptscience/properties/pull/84


Replace all Apple glyph names with their HTML code

In this PR:

added a keyboard shortcut for fix-its hint
replace all Cmd/Alt/Ctrl/Shift/etc with apple glyphs ⌘ ⌥ ⌃ ⇧ etc..

I haven't found a way to have glyphs shown between backticks so I decided to bold them all. Let me know what you all think.

Thanks @codedbypm ! 🎉 💯  I think this looks great.
The only thing is that the section "Quick reference for Apple glyphs HTML codes" is very prominent, a feels a bit awkward.
What if we put that at the very bottom of the page, or in its own page?

Thanks @codedbypm ! 🎉 💯 I think this looks great.
The only thing is that the section "Quick reference for Apple glyphs HTML codes" is very prominent, a feels a bit awkward.
What if we put that at the very bottom of the page, or in its own page?
EDIT: Oh actually, what about putting the HTML code cheat sheet in the contributing guide?
https://github.com/Xcode-Tips/xcode-tips.github.io/blob/main/.github/CONTRIBUTING.md

I share your same opinion about that reference.
My assumption is this: PRs containing the symbol names cmd or shift etc.. should not be accepted unless they use the glyphs. This is for the sake of having a consistent document.
If you share my same assumption, then we need the reference somewhere to ease the job to contributors.
I initially put it at the very top of the README.md but in a comment block, thus visible only if you edit the file :D
But let me know. I'm fine to put it at the bottom too or on another page. I don't have a big preference here.

PRs containing the symbol names cmd or shift etc.. should not be accepted unless they use the glyphs. This is for the sake of having a consistent document.

totally agree!

I like the idea of putting it in the CONTRIBUTING.md

Let's go with this!
Let's also add a note to the steps: "Please use Apple Glyphs when mentioning keyboard shortcuts." 😊

Please review


update(content):productive type specs

Changed the name from $expressive-heading-03 to $productive-heading-03

fixed type hierarchy

added a bit of content

And yes @alisonjoseph it was removed on purpose. Caption should only be used in the expressive set. Product uses label for similar instances.


Client-Side crash when selecting an empty slot (1.9)

When I switch to an empty slot on the inventory bar, the client crashes.
Crash report:  http://pastebin.com/raw/FdvPSjMq

Will be fixed in the next release (within 24 hours) thank you for the report. Reading the crash report it seems like it would occur when the main hand has an item that is not damageable and the off hand is empty. Not sure if that's the case but I'll work on a fix soon.


feat: export Manager types

Manager Types is the unique file that is not exported
closes #41

Ty for PR. I will merge it later, cause i also need to build it locally and deploy on npm

closing PR cause #44 is more complete


Add pattern when searching for CFS configurations

Description
At the moment, when we pass a CFS configuration to any of the commands in manta, it has to be a name that matches perfectly the desired configuration. I would like it to be so we can use a regex to the name to match multiple configurations; this could be useful for example when deleting configurations that are named similarly (like image-xxxx-r0.0.1 and runtime-xxxx-r0.0.1).
 Which version did yo use? I can't reproduce it in master branch
use case 2:
Yes this is very useful indeed. I have q question:
Do you want to use globbing or regex style to define the patterns?. I assume this functionality would need to be consistent and expanded across other entities (CFS sessions, BOS sessiontemplates, IMS images) at least for searching

This is an example:
New pattern argument added to the get configuration command, manta will filter CFS configuration names following glob strategy
$ manta g c --help`
Get information from Shasta CFS configuration

Usage: manta get configuration [OPTIONS]

Options:
  -n, --name <CONFIGURATION_NAME>
          configuration name
  -p, --pattern <CONFIGURATION_NAME_PATTERN>
          Glob pattern for configuration name
  -m, --most-recent
          Only shows the most recent (equivalent to --limit 1)
  -l, --limit <VALUE>
          Filter records to the <VALUE> most common number of CFS configurations created
  -o, --output <FORMAT>
          Output format.


flutter run crashed

Steps to Reproduce

flutter create crash
cd crash
sed -i.bak 's/FLUTTER_BUILD_NAME/MARKETING_VERSION/' ios/Runner/Info.plist
flutter run -d $some_ios_device

Launching lib/main.dart on iPhone 8 in debug mode...
Running Xcode build...
 ├─Assembling Flutter resources...                           6.3s
 └─Compiling, linking and signing...                         5.7s
Xcode build done.                                           13.3s

Sending crash report to Google.
Crash report sent (report ID: 252d15f09024e23d)
Oops; flutter has exited unexpectedly.
Crash report written to /private/tmp/crash/flutter_01.log;
please let us know at https://github.com/flutter/flutter/issues.

Logs
/private/tmp/crash/flutter_01.log:
Flutter crash report; please file at https://github.com/flutter/flutter/issues.

## command

flutter run -d 18CC5E7D-255D-4967-AD8C-41F742B318C2

## exception

ProcessException: ProcessException: Process exited abnormally:
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The application's Info.plist does not contain CFBundleShortVersionString.
Ensure your bundle contains a CFBundleShortVersionString.
  Command: /usr/bin/xcrun simctl install 18CC5E7D-255D-4967-AD8C-41F742B318C2 /private/tmp/crash/build/ios/iphonesimulator/Runner.app

#0      RunResult.throwException (package:flutter_tools/src/base/process.dart:141:5)
#1      _DefaultProcessUtils.run (package:flutter_tools/src/base/process.dart:275:19)
<asynchronous suspension>
#2      SimControl.install (package:flutter_tools/src/ios/simulators.dart:148:29)
#3      IOSSimulator._setupUpdatedApplicationBundle (package:flutter_tools/src/ios/simulators.dart:454:31)
<asynchronous suspension>
#4      IOSSimulator.startApp (package:flutter_tools/src/ios/simulators.dart:354:15)
#5      FlutterDevice.runHot (package:flutter_tools/src/resident_runner.dart:450:54)
#6      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#7      _rootRunUnary (dart:async/zone.dart:1134:38)
#8      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#11     Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#12     Future._completeWithValue (dart:async/future_impl.dart:524:5)
#13     _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:32:15)
#14     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:290:13)
#15     ApplicationPackageFactory.getPackageForPlatform (package:flutter_tools/src/application_package.dart)
#16     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#17     _rootRunUnary (dart:async/zone.dart:1134:38)
#18     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#19     _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#20     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#21     Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#22     Future._completeWithValue (dart:async/future_impl.dart:524:5)
#23     _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:32:15)
#24     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:290:13)
#25     BuildableIOSApp.fromProject (package:flutter_tools/src/application_package.dart)
#26     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#27     _rootRunUnary (dart:async/zone.dart:1134:38)
#28     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#29     _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#30     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#31     Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#32     Future._completeWithValue (dart:async/future_impl.dart:524:5)
#33     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:554:7)
#34     _rootRun (dart:async/zone.dart:1126:13)
#35     _CustomZone.run (dart:async/zone.dart:1023:19)
#36     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#37     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
#38     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#39     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#40     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#41     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:175:5)

flutter doctor -v
flutter doctor -v
[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.14.6 18G95, locale en-US)
    • Flutter version 1.12.13+hotfix.8 at /Users/issactrotts/Downloads/flutter
    • Framework revision 0b8abb4724 (2 days ago), 2020-02-11 11:44:36 -0800
    • Engine revision e1e6ced81d
    • Dart version 2.7.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/issactrotts/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /Users/issactrotts/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (2 available)
    • Issac’s iPad • df3231597eaa32ea3a2fc564ee6fb64c01587d52 • ios • iOS 13.3.1
    • iPhone 8     • 18CC5E7D-255D-4967-AD8C-41F742B318C2     • ios •
      com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)

• No issues found!

Duplicate of #50744


Same labels and predictions, non-zero loss

import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Input, Dense, Flatten
from tensorflow.keras.models import Model

#%%#######################################################
ipt = Input(batch_shape=(128, 28, 28, 1))
x   = Flatten()(ipt)
out = Dense(10, activation='softmax')(x)
model = Model(ipt, out)
model.compile('adam', 'categorical_crossentropy')

#%%#######################################################
x = np.random.uniform(0, 1, model.input_shape)
pred = model(x, training=True)  # =False also works
loss = model.compiled_loss(pred, pred)

print(tf.__version__)
print(loss)

2.3.0-dev20200531  # Colab; also reproduced in 2.2.0, Win-10
tf.Tensor(1.9904033, shape=(), dtype=float32)

What's the deal?

This is expected behavior - my mishap.


Fetch Fishes, Bugs and Sea Creatures

Value Description / Statement
As a user
I want to see all fishes of Animal Crossing displayed as a list of CritterCards on a FishPage,  all bugs of Animal Crossing as a list of CritterCards on a BugPage and all sea creatures of the game as a list of CritterCards on a SeaCreaturePage. So that I can look up all information about the critters I can catch in the game.  The cards should be clickable so I can get more details in the DetailedCrittersCard on overlay.
Description

Acceptance Criteria

[ ]  there should be a FishPage
[ ]  there should be a BugPage
[ ]  there should be a SeaCreaturePage
[ ]  fishes, bugs and sea creatures should be displayed as a list of CritterCards on the given page.
[ ] a picture of the given critter should be displayed on the CritterCard
[ ] the critter's name should be displayed on the card as a heading
[ ] the location, where to find it, should be displayed on the CritterCard
[ ] the size of the shadow should be displayed on the CritterCard
[ ] the cards should be clickable
[ ] there should be a DetailedCrittersCard on overlay likewise the DetailedVillagerCard
[ ] the DetailedCrittersCard should display name, availability, location, rarity, shadow, price, price-cj

( bookmarks shown in description picture will be implemented by me when I implement the logic for bookmarks )
Tasks

[ ] create a new branch
[ ] fetch data for fishes, sea creatures and bugs from ACNH API
[ ] create component CrittersCard
[ ] create component DetailedCrittersCard
[ ] if needed create separate card components like FishCard , DetailedFishCard and so on
[ ] create FishPage
[ ] create  SeaCreaturePage
[ ] create BugsPage

Complexity
low - medium

Looks really good and nice to me!
I think, this is really a big user story, maybe you should think again about the three categories: Fishes, Beetles and Sea Creatures, into single userstories :) But it's just a suggestion ^^

I know what you mean, and I thought about it... in this case I will try it. I think there  will a lot of repetition in this US. My other US are not so big. Thank you for reviewing!

Chaosfuchs, I changed my mind :) . Thank you! ;)


Can you add a test URL to the block list?

Hello,
Working to update: https://github.com/polkadot-market/phishing
To make it run on the new Reddit Devvit platform so it can be deployed to whichever subreddit needs it.
I need to test it but I don't want to use a known spam domain to test with.
Can we add something like:
https://pretend-bad-site.local
or similar?
Thanks

Hello,
Working to update: https://github.com/polkadot-market/phishing
To make it run on the new Reddit Devvit platform so it can be deployed to whichever subreddit needs it.
I need to test it but I don't want to use a known spam domain to test with.
Can we add something like:
https://pretend-bad-site.local
or similar?
Thanks

Sorry, but shouldn't be a real site what is added?

No, imagine you are testing hand grenades, you would probably want a fake hand grenade to test with so it doesn't blow up in your face.
I have to copy a URL to a known bad site onto my clipboard and post it on my test subreddit. That puts me at risk.
Other developers will likely encounter the same thing.

A test URL would be useful as it is safer to test with a URL that isn't a known scam link. Both for the person testing and anyone that might encounter a failed test.
It should be a fake site because otherwise it's possible (although incredibly unlikely) we block someone that doesn't deserve to be blocked. Ideally it would be a completely unique URL not encountered elsewhere (or even valid).

A test URL would be useful as it is safer to test with a URL that isn't a known scam link. Both for the person testing and anyone that might encounter a failed test.
It should be a fake site because otherwise it's possible (although incredibly unlikely) we block someone that doesn't deserve to be blocked. Ideally it would be a completely unique URL not encountered elsewhere (or even valid).

Done here https://github.com/polkadot-js/phishing/pull/4800
Once someone merge it, you can test it.


fix pkg location init

Motivation
fix pkg location init while creating function pkg.

retest this please

@rdhabalia seems like there is a unit test failure

retest this please

retest this please

@rdhabalia looks like the failure of unittest is genuine

retest this please

retest this please

looks like the failure of unittest is genuine

yes, test-case was giving home dir as a download dir which was not accessible.

retest this please

retest this please


pkg/achclient: ignore 404's when deleting ACH files

Codecov Report

Merging #223 into master will increase coverage by 0.03%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master     #223      +/-   ##
==========================================
+ Coverage   53.96%   53.99%   +0.03%
==========================================
  Files          31       31
  Lines        4277     4280       +3
==========================================
+ Hits         2308     2311       +3
  Misses       1498     1498
  Partials      471      471

Impacted Files
Coverage Δ

transfers.go
59.15% <0%> (ø)
:arrow_up:

pkg/achclient/files.go
32.75% <100%> (+3.66%)
: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 2d5b353...59736d6. Read the comment docs.