text:
[On Cuda] Tensor::randn fails to generate random floats for odd no: of samples

I've run the sample code, with different shapes, mentioned in Readme file (https://github.com/huggingface/candle/blob/main/README.md#get-started)
use candle_core::{Device, Tensor};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let device = Device::Cpu;

    let a = Tensor::randn(0f32, 1., (4, 5), &device)?; // This will generate random values
    let b = Tensor::randn(0f32, 1., (5, 3), &device)?; // This will error out

    let c = a.matmul(&b)?;
    println!("{c}");
    Ok(())
}

It will error out during runtime with the message: Cuda(Curand(CurandError(CURAND_STATUS_LENGTH_NOT_MULTIPLE))).
It works if I change to CPU. After digging deeper into cudarc library, found that a pseudorandom generator is used for generating floats and cudarand supports only even number of output samples for  pseudorandom generator.
How can I generate odd number of samples ?

One workaround is to index the tensor b and reshape:
#[cfg(test)]
mod tests {

    use candle_core::{Device, IndexOp, Tensor};

    #[test]
    fn it_works() -> Result<(), Box<dyn std::error::Error>> {
        let device = Device::new_cuda(0)?;
        let a = Tensor::randn(0f32, 1., (4, 5), &device)?; // This will generate random values
        let b = Tensor::randn(0f32, 1., (5, 4), &device)?; // This is OK
        let b_ = b.i((.., 0..3))?.reshape((5,3))?; // Reshape is needed
        println!("b_ shape: {:?}", b_.shape());
        let c = a.matmul(&b_)?;
        println!("{a}");
        println!("{b}");
        println!("{c}");
        Ok(())
    }
}

Result:
b_ shape: [5, 3]
[[-1.8936,  0.9397,  1.0709, -0.0135, -0.2310],
 [-0.4147, -0.1733,  0.3322,  0.1012,  0.4609],
 [-0.5161,  0.1109, -0.1549,  2.1302,  0.7367],
 [-0.3432,  1.0344,  1.1740,  0.8580,  0.8757]]
Tensor[[4, 5], f32, cuda:0]
[[-0.4003,  0.7206, -0.9397, -0.0915],
 [ 2.3167,  1.5755, -0.7861,  0.1864],
 [ 0.2528, -0.8081, -0.5926, -1.3103],
 [-1.9073,  0.8630,  0.1234, -1.7610],
 [ 0.4231, -0.7811, -0.2071, -0.2975]]
Tensor[[5, 4], f32, cuda:0]
[[ 3.1338, -0.5808,  0.4523],
 [-0.1496, -1.1131,  0.2461],
 [-3.3269,  1.1909,  0.5999],
 [ 1.5647,  0.4901, -1.2617]]
Tensor[[4, 3], f32, cuda:0]

Since the underlying cuRAND only supports even numbers, maybe candle can hide the workaround in the randn API.

Right, I've actually just merged #793 that should hopefully fix this (at the expense of generating an additional value when the number of elements is odd).

Closing as hopefully fixed now, but please re-open if you run into any more issues.

authors: GeauxEric LaurentMazare akhildevelops

repo: huggingface/candle


text:
Spanish translation of Chapter 5

¡Hi! This is the spanish translation for chapter 5 according to issue #38.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

source: gharchive/pull-request

authors: HuggingFaceDocBuilderDev camartinezbu

repo: huggingface/course

license_type: permissive

license_source: github-api


text:
Replace deprecated typing

Since Python 3.9 (this project is in Python 3.9.15), some typing hints are deprecated.
This PR replaces deprecated type hints.

Codecov Report
Patch coverage: 100.00% and project coverage change: -4.44% :warning:

Comparison is base (f24b758) 90.50% compared to head (e40e7ba) 86.06%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1805      +/-   ##
==========================================
- Coverage   90.50%   86.06%   -4.44%
==========================================
  Files         222       87     -135
  Lines       13641     3187   -10454
==========================================
- Hits        12346     2743    -9603
+ Misses       1295      444     -851

Flag
Coverage Δ

jobs_cache_maintenance
?

jobs_mongodb_migration
85.92% <100.00%> (ø)

libs_libcommon
?

services_admin
87.44% <100.00%> (ø)

services_api
?

services_rows
82.75% <100.00%> (ø)

services_search
79.16% <ø> (ø)

services_sse-api
94.32% <100.00%> (ø)

services_worker
?

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

Files Changed
Coverage Δ

services/search/src/search/routes/search.py
54.62% <ø> (ø)

...s/mongodb_migration/src/mongodb_migration/check.py
34.48% <100.00%> (ø)

...ngodb_migration/src/mongodb_migration/collector.py
100.00% <100.00%> (ø)

...ation/src/mongodb_migration/deletion_migrations.py
69.51% <100.00%> (ø)

..._20230511100700_queue_delete_indexes_with_force.py
76.00% <100.00%> (ø)

...30516101600_queue_delete_index_without_revision.py
73.07% <100.00%> (ø)

...bs/mongodb_migration/src/mongodb_migration/plan.py
100.00% <100.00%> (ø)

...he_add_partial_field_in_config_parquet_and_info.py
100.00% <100.00%> (ø)

..._cache_add_features_field_in_split_duckdb_index.py
100.00% <100.00%> (ø)

jobs/mongodb_migration/tests/test_plan.py
95.45% <100.00%> (ø)

... and 3 more

... and 135 files with indirect coverage changes

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

authors: albertvillanova codecov-commenter

repo: huggingface/datasets-server


text:
Unit 3 proposal updates

In Unit 3, in the description of Double Deep Q Networks, I thought that the descriptions of the respective roles of the DQN and of the Target Network were a bit confusing, which is why I am proposing an update that - I think - matches the pseudo-code provided in the Unit.
Maybe I am mistaken and just did not understand these paragraphs. Let me know.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

authors: HuggingFaceDocBuilderDev PierreCounathe

repo: huggingface/deep-rl-class


text:
[Docs Model UI] Gallery component

Follow up to https://github.com/huggingface/hub-docs/pull/1076#issuecomment-1791164555

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

repo: huggingface/hub-docs


text:
Add Space disk space info

Related discussion https://huggingface.slack.com/archives/C048K60MPNF/p1675778705684199

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Would it make sens to display that information in the pricing page instead, and maybe link to there from the docs?
It would avoid discrepancies between the docs and the actual prices / hardware specs, and keep moon-landing as the source of truth on that matter

WDYT @julien-c? You mentioned nicer in the docs that in /settings, but what about /pricing?

no strong opinion – we can also merge them here for now, and think about it later
i.E. i think on /pricing for instance "disk space" might be a bit too much info, so i think it makes sense here

Alright, merging ahead then!

authors: HuggingFaceDocBuilderDev SBrandeis julien-c osanseviero


text:
Update models-downloading.md

Update the file downloading function, I got this warning using cached_download:
file_download.py:629: FutureWarning: `cached_download` is the legacy way to download files from the HF hub, please consider upgrading to `hf_hub_download`

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

thanks @dveni!

authors: HuggingFaceDocBuilderDev dveni julien-c


text:
Issue detecting graphviz on macos

Describe the bug
When I run huggingface-cli env while having graphviz installed, I expect to see the version of graphviz showing up.
Reproduction
brew install graphviz
huggingface-cli env
Logs
$ huggingface-cli env

Copy-and-paste the text below in your GitHub issue.

- huggingface_hub version: 0.15.1
- Platform: macOS-14.1.1-arm64-arm-64bit
- Python version: 3.11.5
- Running in iPython ?: No
- Running in notebook ?: No
- Running in Google Colab ?: No
- Token path ?: /Users/rleone/.cache/huggingface/token
- Has saved token ?: True
- Who am I ?: remyleone
- Configured git credential helpers: 360000, osxkeychain
- FastAI: 2.7.13
- Tensorflow: 2.15.0
- Torch: 2.1.0
- Jinja2: 3.1.2
- Graphviz: N/A
- Pydot: 1.4.2
- Pillow: 9.4.0
- hf_transfer: 0.1.4
- gradio: 4.4.1
- numpy: 1.24.3
- ENDPOINT: https://huggingface.co
- HUGGINGFACE_HUB_CACHE: /Users/rleone/.cache/huggingface/hub
- HUGGINGFACE_ASSETS_CACHE: /Users/rleone/.cache/huggingface/assets
- HF_TOKEN_PATH: /Users/rleone/.cache/huggingface/token
- HF_HUB_OFFLINE: False
- HF_HUB_DISABLE_TELEMETRY: False
- HF_HUB_DISABLE_PROGRESS_BARS: None
- HF_HUB_DISABLE_SYMLINKS_WARNING: False
- HF_HUB_DISABLE_EXPERIMENTAL_WARNING: False
- HF_HUB_DISABLE_IMPLICIT_TOKEN: False
- HF_HUB_ENABLE_HF_TRANSFER: False

(base) (k8s|admin@cli-k8s-beautiful-proskuriakova-7b18357b-9c0a-46ea-af9a-5427d97f17c2:kubeflow)
# rleone @ rleone-macbook in ~ [15:08:58]
$ which dot
/opt/homebrew/bin/dot
(base) (k8s|admin@cli-k8s-beautiful-proskuriakova-7b18357b-9c0a-46ea-af9a-5427d97f17c2:kubeflow)
# rleone @ rleone-macbook in ~ [15:09:05]
$ dot --version
dot - graphviz version 9.0.0 (20230911.1827)

### System info

```shell
$ huggingface-cli env

Copy-and-paste the text below in your GitHub issue.

- huggingface_hub version: 0.15.1
- Platform: macOS-14.1.1-arm64-arm-64bit
- Python version: 3.11.5
- Running in iPython ?: No
- Running in notebook ?: No
- Running in Google Colab ?: No
- Token path ?: /Users/rleone/.cache/huggingface/token
- Has saved token ?: True
- Who am I ?: remyleone
- Configured git credential helpers: 360000, osxkeychain
- FastAI: 2.7.13
- Tensorflow: 2.15.0
- Torch: 2.1.0
- Jinja2: 3.1.2
- Graphviz: N/A
- Pydot: 1.4.2
- Pillow: 9.4.0
- hf_transfer: 0.1.4
- gradio: 4.4.1
- numpy: 1.24.3
- ENDPOINT: https://huggingface.co
- HUGGINGFACE_HUB_CACHE: /Users/rleone/.cache/huggingface/hub
- HUGGINGFACE_ASSETS_CACHE: /Users/rleone/.cache/huggingface/assets
- HF_TOKEN_PATH: /Users/rleone/.cache/huggingface/token
- HF_HUB_OFFLINE: False
- HF_HUB_DISABLE_TELEMETRY: False
- HF_HUB_DISABLE_PROGRESS_BARS: None
- HF_HUB_DISABLE_SYMLINKS_WARNING: False
- HF_HUB_DISABLE_EXPERIMENTAL_WARNING: False
- HF_HUB_DISABLE_IMPLICIT_TOKEN: False
- HF_HUB_ENABLE_HF_TRANSFER: False

Thanks it solved it. I was thinking that dependencies were somewhat installed from a different lib but it wasn't.

Glad to know your problem's fixed!

source: gharchive/issue

authors: Wauplin remyleone

license_source: bigquery


text:
Send user_agent in HEAD calls

It looks like for the past 14 months we were not sending the user agent in the HEAD call when downloading a file thanks to a change I made in https://github.com/huggingface/huggingface_hub/pull/1058...
Thanks @patrickvonplaten for reporting (private slack thread). This means we don't have user_agent (i.e. library_name/version + additional information like pipeline_class) in our stats when model files are already cached. This PR fixes it and adds a regression test for it.
cc @julien-c @osanseviero weird that we haven't found out about it before.
(also, deprecate http_user_agent -a completely unused method- + add get_hf_file_metadata to HfApi -it wasn't there before-)

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

authors: HuggingFaceDocBuilderDev Wauplin


text:
Bart and T5

What does this PR do?
Adds training support for:

BartForConditionalGeneration
T5ForConditionalGeneration

Evaluation for these models will come in another PR but some building blocks are already implemented here.
There are also examples for summarization and translation finetuning, but instructions on how to use them will also come in another PR.

🎉 looks good to me

authors: jimypbr michaelbenayoun

repo: huggingface/optimum-graphcore


text:
Tensor parallelism: saved model can't be loaded

After running finetuning using run_summarization.py for a couple of steps, the directory to which the model shards have been saved does not contain a config.json. Hence, the model stored can't be loaded using from_pretrained():`
OSError: PATH_TO_SAVED_MODEL_DIR does not appear to have a file named config.json.

Should the config.json be saved together with the shards?

You need to provide the parent directory instead. The parent directory contains all the config files.

authors: bocchris-aws michaelbenayoun

repo: huggingface/optimum-neuron


text:
Remove unused argument

What does this PR do?
Remove an unused argument in compute_loss_ort() from Trainer class.
@JingyaHuang (I can not add reviewers so I ping you!)
Before submitting

[x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Closing as corrected in https://github.com/huggingface/optimum/pull/189/

Sorry, I did not see this.

repo: huggingface/optimum


text:
[FEATURE] Additional metrics for ImageNet validation results

The results files for ImageNet, for example this one reports top-1, top-5 accuracy along with other measures. Can the total training time of each model also be added?
Inference times are available in other results files but without the exact number of training epochs. Without the training epochs for all the models, it is not straightforward to estimate the total training time per model.
This will be useful to study the performance versus training time resource consumption, for example.

@raghavian models have been trains on such a wide variety of compute resources across a long period of time, the effort to pull that information together would be too high relative to continuing library maintenance and ongoing feature development.

authors: raghavian rwightman

repo: huggingface/pytorch-image-models


text:
Explicit automatic alignment of header

My use case might be overly specific, but when writing/using vectorised code on mmap'd safetensors file header sometimes causes everything to have an odd-numbered pointer which breaks even 16 bit vectorisation. Is there a possibility that python bindings will get an option to save with an explicit alignment? Just padding the header should be enough for most use cases.

No it's not overly specific, actually there's already a PR for that.
https://github.com/huggingface/safetensors/pull/148
I was waiting for more need for it before merging, but it seems this is picking up in low level frameworks where alignment could really help speed up load times.

Also I love the project !
If you want pure rust ML framework I recommend https://github.com/coreylowman/dfdx (Still very early on, but there's at least a lot to inspire from IMO).
For instance I implemented https://github.com/Narsil/fast_gpt2 (without dfdx, more like your approach, but still stealing the mkl bindings from dfdx to get the performance ! )

Thank you, @Narsil! Yeah, doing math low level isn't that popular apart from people who know how to code and are on "sub-par" HW by today's standards. Also thanks for the mention of dfdx and your repo. I didn't even consider trying to use any BLAS lib.

isn't that popular apart from people who know how to code and are on "sub-par" HW by today's standards.

It's still the future in my eyes. The ML fields is somewhat settling and not experimenting as much as it used to, performance is becoming a real concern for anything at scale. And all the python solution for performance are way to clunky to beat compiled code.
This is a very personal view.

Closing because #148 is merged

authors: Narsil mrsteyk

repo: huggingface/safetensors


text:
trust_remote_code is not available in SageMaker Endpoint

System Info
Hi Team ,
As i can see there is not way i can set trust_remote_code option in sagemaker_endpoint.sh
#!/bin/bash

if [[ -z "${HF_MODEL_ID}" ]]; then
  echo "HF_MODEL_ID must be set"
  exit 1
fi
export MODEL_ID="${HF_MODEL_ID}"

if [[ -n "${HF_MODEL_REVISION}" ]]; then
  export REVISION="${HF_MODEL_REVISION}"
fi

if [[ -n "${SM_NUM_GPUS}" ]]; then
  export NUM_SHARD="${SM_NUM_GPUS}"
fi

if [[ -n "${HF_MODEL_QUANTIZE}" ]]; then
  export QUANTIZE="${HF_MODEL_QUANTIZE}"
fi

text-generation-launcher --port 8080

Information

[ ] Docker
[ ] The CLI directly

Tasks

[ ] An officially supported command
[ ] My own modifications

Reproduction
llm_model = HuggingFaceModel(
  role=role,
  image_uri=llm_image,
  env={
    'HF_MODEL_ID': hf_model_id,
    'HF_MODEL_QUANTIZE': json.dumps(use_quantization),
    'SM_NUM_GPUS': json.dumps(number_of_gpu)
  }
)

This gives error for Falcon-40b
Expected behavior
The endpoint should get created

@OlivierDehaene Hi, do I currently need to build this locally, or is this latest updated docker image uploaded to a public container repository that I can pull from?

We already working on releasing the new Image for SageMaker. I ll keep you posted here.

@austinmw @songfeng @OlivierDehaene
New image is now available. See Phil's latest blog post for how to deploy Falcon 7B & 40B - https://www.philschmid.de/sagemaker-falcon-llm

@Markus-Zeggel  The tgi 0.8.2 works for me. Also, make sure you update the sagemaker sdk or maybe create a new env from scratch.
trust_remote_code = True

env={
    'HF_MODEL_ID': hf_model_id,
    # 'HF_MODEL_QUANTIZE': json.dumps(use_quantization),
    'SM_NUM_GPUS': json.dumps(number_of_gpu),
    'HF_MODEL_TRUST_REMOTE_CODE': json.dumps(trust_remote_code)
}

Hi, I exactly followed the https://www.philschmid.de/sagemaker-falcon-llm tutorial. (The only difference is the instance type) However, I still get the error message

Loading tiiuae/falcon-7b-instruct requires you to execute the configuration file in that repo on your local machine. Make sure you have read the code there to avoid malicious use, then set the option trust_remote_code=True to remove this error.

I tried this config:
# TGI config
config = {
  'HF_MODEL_ID': "tiiuae/falcon-7b-instruct", # model_id from hf.co/models
# 'SM_NUM_GPUS': json.dumps(number_of_gpu), # Number of GPU used per replica
  'MAX_INPUT_LENGTH': json.dumps(1024),  # Max length of input text
  'MAX_TOTEL_TOKENS': json.dumps(2048),  # Max length of the generation (including input text)
  'HF_MODEL_TRUST_REMOTE_CODE': "true"
# 'HF_MODEL_QUANTIZE': "bitsandbytes", # comment in to quantize
}

Am I missing something?
Is this the correct image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-tgi-inference:2.0.0-tgi0.8.2-gpu-py39-cu118-ubuntu20.04 ?
Thanks!

@Markus-Zeggel  The tgi 0.8.2 works for me. Also, make sure you update the sagemaker sdk or maybe create a new env from scratch.
trust_remote_code = True

env={
    'HF_MODEL_ID': hf_model_id,
    # 'HF_MODEL_QUANTIZE': json.dumps(use_quantization),
    'SM_NUM_GPUS': json.dumps(number_of_gpu),
    'HF_MODEL_TRUST_REMOTE_CODE': json.dumps(trust_remote_code)
}

Hello,
would like to know if anybody actually managed to use SSE streaming in Sagemaker using this TGI server image. Thanks.

@gsaivinay sagemaker is currently not supporting SSE.

Apologies as I know this isn't the best place for it, but I wasn't sure where else to ask this... Is anyone aware if we can provide the scripts that Sagemaker needs ourselves rather than pulling from huggingface.co/models which occurs when you define 'HF_MODEL_ID'? We're behind a proxy so cannot do it directly from sagemaker. We have other models that work fine in the same environment, however we saw that the falcon-7b has a few python scripts in the HF repo (https://huggingface.co/tiiuae/falcon-7b/tree/main). The models that work fine do not have these python scripts which from other research seems to be why it pulls from HF...?

@Steven-N we created a blog post https://www.philschmid.de/sagemaker-llm-vpc

@philschmid, i tried with tiiuae/falcon-rw-1b on sagemaker==2.170.0, still get the following error
ValueError: Loading /opt/ml/model requires you to execute the configuration file in that repo on your local machine. Make sure you have read the code there to avoid malicious use, then set the option `trust_remote_code=True` to remove this error.

Code to reproduce.
import torch
from peft import PeftModel
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer

from huggingface_hub import snapshot_download
import sagemaker
import boto3
sess = sagemaker.Session()
# sagemaker session bucket -> used for uploading data, models and logs
# sagemaker will automatically create this bucket if it not exists
sagemaker_session_bucket=None
if sagemaker_session_bucket is None and sess is not None:
    # set to default bucket if a bucket name is not given
    sagemaker_session_bucket = sess.default_bucket()

try:
    role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client('iam')
    role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']

print(f"sagemaker role arn: {role}")
print(f"sagemaker session region: {sess.boto_region_name}")

MODEL_ID = "tiiuae/falcon-rw-1b"
CACHED_DIR = "../cache"
MERGE_MODEL_DIR = "merged_model_test"

model = AutoModelForCausalLM.from_pretrained(
    MODEL_ID,
    torch_dtype=torch.float16,
    low_cpu_mem_usage=True,
    # device_map="auto",
    trust_remote_code=True,
    cache_dir=CACHED_DIR,
)

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_ID,
    cache_dir=CACHED_DIR,
)

model.save_pretrained(MERGE_MODEL_DIR, safe_serialization=True)
tokenizer.save_pretrained(MERGE_MODEL_DIR, safe_serialization=True)
import os

parent_dir = os.getcwd()
# change to model dir
os.chdir(MERGE_MODEL_DIR)
# use pigz for faster and parallel compression
!tar -cf model.tar.gz --use-compress-program=pigz *
# change back to parent dir
os.chdir(parent_dir)

from sagemaker.s3 import S3Uploader

# upload model.tar.gz to s3
s3_model_uri = S3Uploader.upload(local_path=str(MERGE_MODEL_DIR + "/model.tar.gz"), desired_s3_uri=f"s3://{sess.default_bucket()}/test-model")

print(f"model uploaded to: {s3_model_uri}")

from sagemaker.huggingface import get_huggingface_llm_image_uri, HuggingFaceModel
import json

image_uri = get_huggingface_llm_image_uri("huggingface", version="0.8.2")
print(f"llm image uri: {image_uri}")

instance_type = "ml.g4dn.2xlarge"
health_check_timeout = 300
trust_remote_code = True

config = {
    "HF_MODEL_ID": "/opt/ml/model",  # path to where sagemaker stores the model
    "MAX_INPUT_LENGTH": json.dumps(2048),  # Max length of input text
    "MAX_TOTAL_TOKENS": json.dumps(3000),  # Max length of the generation (including input text)
    "HF_MODEL_TRUST_REMOTE_CODE": json.dumps(trust_remote_code)
}

# create HuggingFaceModel with the image uri
llm_model = HuggingFaceModel(
    role=role,
    image_uri=image_uri,
    model_data=s3_model_uri,
    env=config,
)

endpoint_name = sagemaker.utils.name_from_base("test")

predictor = llm_model.deploy(
    endpoint_name=endpoint_name,
    initial_instance_count=1,
    instance_type=instance_type,
    model_data_download_timeout=10 * 60,
    container_startup_health_check_timeout=10 * 60,
    wait=False,
)

print(predictor.endpoint_name)

falcon-rw-1b is a different model than the 7B or 40B model.

Hey team, I was able to reproduce the same error with using the new TGI 0.8.2 image with deployment of falcon-7b following this guide and setting the 'HF_MODEL_TRUST_REMOTE_CODE': json.dumps(True),.
The only difference was the Instance Size (ml.m5.2xlarge). I can't correlate if instance size is what raises the exception of trust_remote_code=true.

authors: Steven-N austinmw gsaivinay monuminu mrwadams philschmid razasaad songfeng yapweiyih

repo: huggingface/text-generation-inference


text:
Fix local installation after Rust 1.79 and transformers 4.41.2

I was trying to install text-generation-inference locally without Docker, and I encountered several problems while doing so. I collected all those problems and made the fixes here so that people do not encounter such tedious problems again.
Fixes # (issue)

The rust-toolchain.toml file was overriding Rust version to 1.78.0, making the installation fail as the inline const feature in rust requires 1.79.0.
Upgraded the transformers version.
Fixed the error: "str" has no attribute "logits" in rw.py when the model starts

Before submitting

[ X] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ X] Did you read the contributor guideline,
Pull Request section?

Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.
@OlivierDehaene
@Narsil

The rust-toolchain is already fixed on main (and you don't seem to fix it it seems).
Rw.py should be in it's own PR (and with a reproducer, no need for a test since we don't really maintain that hard non flash models, no custom kernels models anymore).
As for the transformers version you are simply modifying the benchmark calls which is an optional dependency, and the lockfile only points to an old version because some package seems to depend on an old version.
Regardless we never manually touch the lock file, only pyproject.toml so the solution would need to be in it.

authors: Narsil rYoussefAli


text:
chore: promote jx-aspnet-app-01 to version 0.0.2

this commit will trigger a pipeline to generate the actual kubernetes resources to perform the promotion which will create a second commit on this Pull Request before it can merge

jx-aspnet-app-01
Changes in version 0.0.2
Chores

release 0.0.2 (jenkins-x-bot)
add variables (jenkins-x-bot)

Other Changes
These commits did not use Conventional Commits formatted messages:

Update release.yaml (hughexp)

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

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

Test name
Commit
Details
Rerun command

verify
b39f949a1d17fe74fe66617312701be5af6c690e
link
/test verify

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 jenkins-x/lighthouse repository. I understand the commands that are listed here.


text:
Replace RR with RSpec Mocks

RSpec Mocks is widely used nowadays, and having to learn RR in order to write tests is becoming an obstacle to new contributors.

https://github.com/kjvarga/rr-to-rspec-converter can be of help.

repo: huginn/huginn

license: mit


text:
[BUG] 图片显示问题

Describe the bug 描述你遇到的错误
图片显示比例出现问题
使用原生 markdown  会出现这个问题，换成 shortcode {{< figure >}} 则没有这个问题
Expected behavior 期待的行为
fix
Screenshots 屏幕截图

Build Environment 构建环境
hugo v0.120.4
fixit v0.3.0
Preview Environment 预览环境
No response
Additional Information 补充信息
复现 demo

BUG 原因，Chrome (121.0.6167.85) 开始，给 img size="auto" 加了一个默认样式导致图片宽高比异常。

authors: Alfly Lruihao

repo: hugo-fixit/FixIt

license: MIT


text:
Gdk::Cursor.new_from_name must return Gdk::Cursor but it is returning (Gdk::Cursor | Nil)

Trying to create the following cursor:
Gdk::Cursor.new_from_name("pointer", nil)

Results in the aforementioned compile-time error.
The generated method:
    def self.new_from_name(name : ::String, fallback : Gdk::Cursor?) : self
      # gdk_cursor_new_from_name: (Constructor)
      # @fallback: (nullable)
      # Returns: (transfer full)

      # Handle parameters
      fallback = if fallback.nil?
                   Pointer(Void).null
                 else
                   fallback.to_unsafe
                 end

      # C call
      _retval = LibGdk.gdk_cursor_new_from_name(name, fallback)

      # Return value handling
      Gdk::Cursor.new(_retval, GICrystal::Transfer::Full) unless _retval.null?
    end

This seems to apply to other methods as well (which previously worked):

GdkPixbuf::Pixbuf.new_from_file
GdkPixbuf::Pixbuf.new_from_file_at_size


text:
Permitir ingresar el toolbox en formato xml string

Ember-blocky espera que los bloques del toolbox
se envíen como una lista o como una serie de diccionarios
con categorías y bloques.
Pero pilas-bloques usa un modelo distinto, construye
el toolbox usando objetos y produciendo un string
xml con todos los bloques en categorías.
Para que estas dos ideas puedan co-existir, sería útil que
ember-blockly admita un parámetro extra que permita definir
el toolbox usando una cadena xml con el toolbox completo, algo así:
{{ember-blockly toolbox="<xml>bal...</xml>'}}

De esta forma podríamos re-utilizar el armado del toolbox que viene
en pilas-bloques y vincular ember-blockly en ese proyecto también.

Ahora se puede especificar el toolbox como un string xml, usando la misma propiedad que define los bloques:
Este es un ejemplo de invocación para mostrar el componente:
{{ember-blockly blocks=blocks_array_or_xml_string withZoom=true withTrash=true}}

repo: hugoruscitti/ember-blockly


text:
Make it possible to define a bounding box for the component map

There are good use cases for a fixed map that displays data, but is not zoomable. This would make the components a bit closer to illustrations.

Related to #40. Should be able to tackle both at the same time. This particular setting would probably best be an option added to the component map, along with an option to set the center point and zoom level.

This exposes an API for setting center and zoom level. We can do bounds if we want as well, but the functionality is more or less equivalent and possibly more accessible. In the component context:
map.getOptions().centerCoordinates([50, 0]);
map.getOptions().zoomLevel(6);

authors: cncoleman esjewett

repo: humanitiesplusdesign/palladio


text:
Client - typo in gateway generate-certs message

version: development 1.13.0
There's typo in gateway generate-certs message
Steps:

Clone and install development branch Source or Docker
Start the Client
execute gateway generate-certs command
pay attention to the message

Actual:
pass phase
Expected:
pass phrase

Fixed by #6119

repo: hummingbot/hummingbot


text:
Is this repo dead?

Seems to be a long time since any dev work happened here.
Is this project dead?
Just asking so I know whether to allocate time/energy into learning the system in case it will never be updated again.
I understand maintaining software is not easy and I am am certainly not expecting anything, just more curious.
I saw Orca when it was first released and thought it was super interesting but didn't have the time to invest in it back then. Checking in again and it seems to be abandoned (which is fine, but perhaps mark if so it that is the case :) ).
Cheers for all your work so far.

It's still very much alive. The javascript implementation is complete, so I don't need to update it, the other implementations(uxn, cli, etc..) still change from time to time, but only rarely.
The Orca specification is frozen, the next time this repo will be modified is when the webmidi API changes.

authors: Venj-ADL neauoire

repo: hundredrabbits/Orca


text:
Backport fix for building unit-tests for gtest itself with Mingw

backport of bugfix for https://github.com/google/googletest/issues/708 from upstream googletest.
fix #9

https://ci.appveyor.com/project/andoks/googletest

Release: https://github.com/hunter-packages/googletest/releases/tag/1.8.0-hunter-p3
Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.860
https://travis-ci.org/ingenue/hunter/builds/155816959

https://ci.appveyor.com/project/andoks/googletest

Well, this test use Visual Studio:
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24213.1
-- The CXX compiler identification is MSVC 19.0.24213.1
-- Check for working C compiler using: Visual Studio 14 2015
-- Check for working C compiler using: Visual Studio 14 2015 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 14 2015
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works

MinGW still not working:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.860/job/2rvaic4wy6penu6w

I've saved this pull request in branch hunter.pr-10 and reverted hunter branch to the previous state.

Sorry, I'm not too familiar with appveyor, and obviously did not take enough time to set up building with MinGW properly.
It seems like even though the upstream PR was accepted, it still has not fixed all the issues with building with MinGW on windows (https://github.com/google/googletest/pull/721).
An in addition, I'm still running with self-patched hunter (#8), and did not test the cherry-pick locally.
If I submit another PR, I'll make sure to set up testing properly with Appveyour.

Here is the configuration with AppVeyor testing with MinGW: https://github.com/forexample/hunter-simple/blob/master/appveyor.yml. By the way you can send me pull request with working configuration (or may be even upstream).

authors: andoks ruslo

repo: hunter-packages/googletest


text:
Plans for the future

@hunterjm any plans in continuing this auto buyer for FIFA 18??

Most likely.

👍

What this programs needs is a scheduler that lets you configure at what times the program runs, for how many hours, at random times etc.
All of my accounts have been banned after some time, even with RPM=4.
The autobuyer has to mimic human behaviour better than with the current version.

I hope you keep going with this ab for fifa 18!

@hunterjm is there any chance to make this work on a mobile device? that would be great.

authors: Fotospecht hunterjm marlonespindola syros1977

repo: hunterjm/fifa-autobuyer


text:
🛑 Posthog is down

In c3bfa05, Posthog (https://posthog.craftstudios.eu/setup_admin) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Posthog is back up in 8398ce1.

repo: hupratt/upptime


text:
🛑 CV is down

In 80c3836, CV (https://minio-api.thekor.eu/rihab-f1492f08-f236-4a55-afb7-70ded209cb24/rihab/index.html) was down:

HTTP code: 0
Response time: 0 ms

Resolved: CV is back up in 8321561 after 50 minutes.


text:
Reading Order model integration simplification

Hello, I want to continue the discussion from here - https://huggingface.co/HURIDOCS/pdf-reading-order/discussions/1
Thanks for all of your work, I am exploring to integrate your code into my project but, need more simplification.
Any way to do this without Poppler and do this with some other pdf parsing framework. Is it possible for you to modularise part where its extract pdf stuff and then make a separate code specifically for adding results from segment model and all the other stuff into a pipeline for easy integration with different backbones for parsing. Or just make input as simple as list of segments in a page {contained text, bbox of segment, type of segment} and output as dict{bbox: order}; <did i miss anything else required?>
please share a sample jupyter notebook.
regards.

Thank you for your valuable suggestion. We understand the importance of interchangeability for the parser and appreciate your insight.
While making this change would require a significant time investment, it's not currently a top priority due to our ongoing commitments to supporting NGOs in other areas. However, we recognize the potential benefits and encourage you to explore this feature by creating a fork of the project.
The codebase is already structured to facilitate this change, particularly within the PdfFeatures class and its initialization. With some additional effort, you should be able to implement the interchangeable parser functionality in a repository fork.

authors: gabriel-piles mllife

repo: huridocs/pdf-document-layout-analysis


text:
Rewrite joy servo node in cpp

bump::minor
It was necessary due to performance issues with Python node.

Then I try to close gripper in RViz with gripper move group only left gripper joint is moving in simulation.
Screencast from 19.05.2023 23:24:14.webm

Done: #3 #4 #5

authors: delihus macstepien


text:
StructuredOutputParser - Allow users to get multiple items from response.

Allow users to choose the type in the schema (string | List[string])
Allow users to get multiple json objects (get JSON array) in the response. I achieved it by replacing the {{ }} -> [[ ]] as follows: prompt.replace("""{{   "ID": string  // IDs which refers to the sentences.   "Text": string  // Sentences that contains the answer to the question. }}""", """[[   "ID": string  // IDs which refers to the sentences.   "Text": string  // Sentences that contains the answer to the question. ]]""") And got a list of json objects with this method.

Very hacky, but this is what I did to have it return an array of objects.
output_parser = StructuredOutputParser.from_response_schemas(
    response_schemas=[
        ResponseSchema(
            name="country_code", description="two letter country code"
        ),
        ResponseSchema(name="city", description="city name"),
        ResponseSchema(
            name="places",
            description="""array of of 10 places in the following format: [
    {{ "name": string // name of the place',  "types": [string] // types of the place' }}
]
""",
        ),
    ]
)

format_instructions =output_parser.get_format_instructions()
format_instructions =format_instructions.replace(
    '"places": string', '"places": array of objects'
)

Which generates:
```json
{
        "country_code": string  // two letter country code
        "city": string  // city name
        "places": array of objects  // array of of 10 places in the following format: [
            { "name": string // name of the place',  "types": [string] // types of the place' }
        ]

}

I managed to achieve this by passing type to the ResponseSchema. Something like this
ResponseSchema(
            name="someList", description="description to model with the example: [{name: string, other: string}]", type="array(objects)"
        )

I managed to achieve this by passing type to the ResponseSchema. Something like this
ResponseSchema(
  name="someList", description="description to model with the example: [{name: string, other: string}]",
  type="array(objects)"
)

Is there a TypeScript equivalent of ResponseSchema for Langchain.js? It doesn't look like so, but it would be greatly helpful for the JS/TS community.

authors: IbraheemAlSaady berengamble keremnalbant patrick-ve


text:
What other data sets should be included in The Maker Map?

Possibilities:

3D printers (private/commercial)
Maker events
Hackerspaces (from the wiki, check for activity)
Things that already live on other maps?
???

Discuss.

I think including the locations of all fablabs worldwide would also be beneficial.
This data is already organised in the form of a map on fablabs.io

authors: bobthecow patkan


text:
How to setup batch_size?

There seems no where to set batch_size, as neither datablock nor singleblock class have an input entry for it.

Singleblock and datablock is a subclass of dataset so you can just put batch_size as argument to set batch_size
https://github.com/hycis/Mozi/blob/master/example/datablocks_example.py#L62 https://github.com/hycis/Mozi/blob/master/example/datablocks_example.py#L62

On 24 Jan 2017, at 11:44 AM, shakacs notifications@github.com wrote:
There seems no where to set batch_size, as neither datablock nor singleblock class have an input entry for it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/hycis/Mozi/issues/3, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWIiW6EKIZLKajmYZzTBaCryxoxqZkEks5rVXOggaJpZM4Lr1QH.

Thanks. The reason i post this issue is that when i tried to run the code in tourist, it throws "'Mnist' object has no attribute 'batch_size'", the same exception thrown once i tried to print the batch_size of a datablock object, and i traced into the source and found that only IterMatrix class has a member called batch_size. May be i got something wrong.

Yap, the dataset object itself contains the train, valid and test itermatrix, and dataset itself indeed does not have the attribute of batch_size. However you can call the batch_size by looking into the itermatrix, for example
dataset = Mnist(batch_size=32)
print(dataset.train.batch_size)

On 24 Jan 2017, at 12:13 PM, shakacs notifications@github.com wrote:
Thanks. The reason i post this issue is that when i tried to run the code in tourist, it throws "'Mnist' object has no attribute 'batch_size'", the same exception thrown once i tried to print the batch_size of a datablock object, and i traced into the source and found that only IterMatrix class has a member called batch_size. May be i got something wrong.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/hycis/Mozi/issues/3#issuecomment-274705250, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWIiVLEI-3rxz8CKYfKLkckV2bPLe0Vks5rVXpTgaJpZM4Lr1QH.

authors: hycis shakacs

repo: hycis/Mozi


text:
HOTFIX: remove second resource_modified call

Hotfix for #2191
As described in #2182

+1

authors: mjstealey pkdash

repo: hydroshare/hydroshare


text:
[WIP] 4535 Remove netcdf resource type

NOTE: This PR replaces another closed PR #4528
Pull Request Checklist:

[ ] Positive Test Case Written by Dev

[ ] Automated Testing

[ ] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

[Enter positive test case here]

METRIC
VALUE

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-4536

@sblack-usu I made a change as per your suggestion. Can you re-approve?

authors: hydrocheck pkdash


text:
🛑 Daisy - Voice Tools Bot Backend is down

In be9df94, Daisy - Voice Tools Bot Backend (https://voice-backend.hydev.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Daisy - Voice Tools Bot Backend is back up in 8a87e93 after 3 minutes.

repo: hykilpikonna/Uptime


text:
cURL Error #:Could not resolve host: tenant4.hubshake.localhost

Description
I always get this error when trying to CURL on the API from wordpress to laravel application.
 cURL Error #:Could not resolve host: tenant4.hubshake.localhost
..

Actual behavior
Right now it always showing me this error
cURL Error #:Could not resolve host: tenant4.hubshake.localhost
..
Expected behavior
It should got to the API and call the function in that API and perform the operation inside that function.
..

Information

hyn/multi-tenant version: 5.*
laravel version: 5.5.*
database driver and version: mysql
webserver software and version: xampp v3.2.2
php version: 7.1

tenancy.php config
<?php

/*
 * This file is part of the hyn/multi-tenant package.
 *
 * (c) Daniël Klabbers <daniel@klabbers.email>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @see https://laravel-tenancy.com
 * @see https://github.com/hyn/multi-tenant
 */

use Hyn\Tenancy\Database\Connection;

return [
    'models' => [
        /**
         * Specify different models to be used for the global, system database
         * connection. These are also used in their relationships. Models
         * used have to implement their respective contracts and
         * either extend the SystemModel or use the trait
         * UsesSystemConnection.
         */

        // Must implement \Hyn\Tenancy\Contracts\Customer
        'customer' => \Hyn\Tenancy\Models\Customer::class,

        // Must implement \Hyn\Tenancy\Contracts\Hostname
        'hostname' => \Hyn\Tenancy\Models\Hostname::class,

        // Must implement \Hyn\Tenancy\Contracts\Website
        'website' => \Hyn\Tenancy\Models\Website::class
    ],
    'website' => [
        /**
         * Each website has a short random hash that identifies this entity
         * to the application. By default this id is randomized and fully
         * auto-generated. In case you want to force your own logic for
         * when you need to have a better overview of the complete
         * tenant folder structure, disable this and implement
         * your own id generation logic.
         */
        'disable-random-id' => false,

        /**
         * The random Id generator is responsible for creating the hash as mentioned
         * above. You can override what generator to use by modifying this value
         * in the configuration.
         *
         * @warn This won't work if disable-random-id is true.
         */
        // 'random-id-generator' => Hyn\Tenancy\Generators\Uuid\ShaGenerator::class,
        'random-id-generator' => App\Tenancy\Generators\DBNameGenerator::class,

        /**
         * Enable this flag in case you're using a driver that does not support
         * database username or database name with a length of more than 32 characters.
         *
         * This should be enabled for MySQL, but not for MariaDB and PostgreSQL.
         */
        'uuid-limit-length-to-32' => env('LIMIT_UUID_LENGTH_32', false),

        /**
         * Specify the disk you configured in the filesystems.php file where to store
         * the tenant specific files, including media, packages, routes and other
         * files for this particular website.
         *
         * @info If not set, will revert to the default filesystem.
         */
        'disk' => null,

        /**
         * Automatically generate a tenant directory based on the random id of the
         * website. Uses the above disk to store files to override system-wide
         * files.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-directory' => true,

        /**
         * Automatically rename the tenant directory when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move files accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-directory' => true,

        /**
         * Automatically deletes the tenant specific directory and all files
         * contained within.
         *
         * @see
         * @info set to true to enable.
         */
        'auto-delete-tenant-directory' => false,

        /**
         * Time to cache websites in minutes. Set to false to disable.
         */
        'cache' => 10,
    ],
    'hostname' => [
        /**
         * If you want the multi tenant application to fall back to a default
         * hostname/website in case the requested hostname was not found
         * in the database, complete in detail the default hostname.
         *
         * @warn this must be a FQDN, these have no protocol or path!
         */
        'default' => env('TENANCY_DEFAULT_HOSTNAME'),
        /**
         * The package is able to identify the requested hostname by itself,
         * disable to get full control (and responsibility) over hostname
         * identification. The hostname identification is needed to
         * set a specific website as currently active.
         *
         * @see src/Jobs/HostnameIdentification.php
         */
        'auto-identification' => env('TENANCY_AUTO_HOSTNAME_IDENTIFICATION', true),

        /**
         * In case you want to have the tenancy environment set up early,
         * enable this flag. This will run the tenant identification
         * inside a middleware. This will eager load tenancy.
         *
         * A good use case is when you have set "tenant" as the default
         * database connection.
         */
        'early-identification' => env('TENANCY_EARLY_IDENTIFICATION', false),

        /**
         * Abort application execution in case no hostname was identified. This will throw a
         * 404 not found in case the tenant hostname was not resolved.
         */
        'abort-without-identified-hostname' => true,

        /**
         * Time to cache hostnames in minutes. Set to false to disable.
         */
        'cache' => 10,
    ],
    'db' => [
        /**
         * The default connection to use; this overrules the Laravel database.default
         * configuration setting. In Laravel this is normally configured to 'mysql'.
         * You can set a environment variable to override the default database
         * connection to - for instance - the tenant connection 'tenant'.
         */
        'default' => env('TENANCY_DEFAULT_CONNECTION'),
        /**
         * Used to give names to the system and tenant database connections. By
         * default we configure 'system' and 'tenant'. The tenant connection
         * is set up automatically by this package.
         *
         * @see src/Database/Connection.php
         * @var system-connection-name The database connection name to use for the global/system database.
         * @var tenant-connection-name The database connection name to use for the tenant database.
         */
        'system-connection-name' => env('TENANCY_SYSTEM_CONNECTION_NAME', Connection::DEFAULT_SYSTEM_NAME),
        'tenant-connection-name' => env('TENANCY_TENANT_CONNECTION_NAME', Connection::DEFAULT_TENANT_NAME),

        /**
         * The tenant division mode specifies to what database websites will be
         * connecting. The default setup is to use a new database per tenant.
         * In case you prefer to use the same database with a table prefix,
         * set the mode to 'prefix'.
         *
         * @see src/Database/Connection.php
         */
        'tenant-division-mode' => env('TENANCY_DATABASE_DIVISION_MODE', 'database'),

        /**
         * The database password generator takes care of creating a valid hashed
         * string used for tenants to connect to the specific database. Do
         * note that this will only work in 'division modes' that set up
         * a connection to a separate database.
         */
        // 'password-generator' => Hyn\Tenancy\Generators\Database\DefaultPasswordGenerator::class,
        'password-generator' => App\Tenancy\Generators\DefaultPasswordGenerator::class,

        /**
         * The tenant migrations to be run during creation of a tenant. Specify a directory
         * to run the migrations from. If specified these migrations will be executed
         * whenever a new tenant is created.
         *
         * @info set to false to disable auto migrating.
         *
         * @warn this has to be an absolute path, feel free to use helper methods like
         * base_path() or database_path() to set this up.
         */
        'tenant-migrations-path' => database_path('migrations/tenant'),

        /**
         * Seeds the newly created tenant database based on this Seeder.
         *
         * @info requires tenant-migrations-path to be in use.
         *
         * @warn specify a valid fully qualified class name.
         * @example App\Seeders\AdminSeeder::class
         */
        'tenant-seed-class' => false,

        /**
         * Automatically generate a tenant database based on the random id of the
         * website.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-database' => true,

        /**
         * Automatically rename the tenant database when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move databases accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-database' => true,

        /**
         * Automatically deletes the tenant specific database and all data
         * contained within.
         *
         * @info set to true to enable.
         */
        'auto-delete-tenant-database' => false,
    ],
    'folders' => [
        'config' => [
            /**
             * Merge configuration files from the config directory
             * inside the tenant directory with the global configuration files.
             */
            'enabled' => true,

            /**
             * List of configuration files to ignore, preventing override of crucial
             * application configurations.
             */
            'blacklist' => ['database', 'tenancy', 'webserver'],
        ],
        'routes' => [
            /**
             * Allows adding and overriding URL routes inside the tenant directory.
             */
            'enabled' => true,

            /**
             * Prefix all tenant routes.
             */
            'prefix' => null,
        ],
        'trans' => [
            /**
             * Allows reading translation files from a trans directory inside
             * the tenant directory.
             */
            'enabled' => true,

            /**
             * Will override the global translations with the tenant translations.
             * This is done by overriding the laravel default translator with the new path.
             */
            'override-global' => true,

            /**
             * In case you disabled global override, specify a namespace here to load the
             * tenant translation files with.
             */
            'namespace' => 'tenant',
        ],
        'vendor' => [
            /**
             * Allows using a custom vendor (composer driven) folder inside
             * the tenant directory.
             */
            'enabled' => true,
        ],
        'media' => [
            /**
             * Mounts the assets directory with (static) files for public use.
             */
            'enabled' => true,
        ]
    ]
];

webserver.php config
<?php

/*
 * This file is part of the hyn/multi-tenant package.
 *
 * (c) Daniël Klabbers <daniel@klabbers.email>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @see https://laravel-tenancy.com
 * @see https://github.com/hyn/multi-tenant
 */

return [

    /**
     * Apache2 is one of the most widely adopted webserver packages available.
     *
     * @see http://httpd.apache.org/docs/
     * @see https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu
     */
    'apache2' => [
        /**
         * Whether the integration with Apache2 is currently active.
         */
        'enabled' => false,

        /**
         * Define the ports of your Apache service.
         */
        'ports' => [
            /**
             * HTTP, non-SSL port.
             *
             * @default 80
             */
            'http' => 80,
            /**
             * HTTPS, SSL port.
             *
             * @default 443
             */
            'https' => 443
        ],

        /**
         * The generator taking care of hooking into the Apache services and files.
         */
        'generator' => \Hyn\Tenancy\Generators\Webserver\Vhost\ApacheGenerator::class,

        /**
         * The view that holds the vhost configuration template.
         */
        'view' => 'tenancy.generators::webserver.apache.vhost',

        /**
         * Specify the disk you configured in the filesystems.php file where to store
         * the tenant vhost configuration files.
         *
         * @info If not set, will revert to the default filesystem.
         */
        'disk' => null,

        'paths' => [

            /**
             * Location where vhost configuration files can be found.
             */
            'vhost-files' => [
                '/etc/apache2/sites-enabled/'
            ],

            /**
             * Actions to run to work with the Apache2 service.
             */
            'actions' => [
                /**
                 * Action that asserts Apache2 is installed.
                 */
                'exists' => '/etc/init.d/apache2',
                /**
                 * Action to run to test the apache configuration.
                 */
                'test-config' => 'apache2ctl -t',
                /**
                 * Action to run to reload the apache service.
                 */
                'reload' => 'apache2ctl graceful'
            ]
        ]
    ],

    /**
     * Nginx webserver support.
     *
     * @see http://nginx.org
     */
    'nginx' => [
        /**
         * Whether the integration with nginx is currently active.
         */
        'enabled' => false,

        /**
         * The php sock to be used.
         */
        'php-sock' => 'unix:/var/run/php/php7.0-fpm.sock',

        /**
         * Define the ports of your nginx service.
         */
        'ports' => [
            /**
             * HTTP, non-SSL port.
             *
             * @default 80
             */
            'http' => 80,
            /**
             * HTTPS, SSL port.
             *
             * @default 443
             */
            'https' => 443
        ],

        /**
         * The generator taking care of hooking into the nginx services and files.
         */
        'generator' => \Hyn\Tenancy\Generators\Webserver\Vhost\NginxGenerator::class,

        /**
         * The view that holds the vhost configuration template.
         */
        'view' => 'tenancy.generators::webserver.nginx.vhost',

        /**
         * Specify the disk you configured in the filesystems.php file where to store
         * the tenant vhost configuration files.
         *
         * @info If not set, will revert to the default filesystem.
         */
        'disk' => null,

        'paths' => [

            /**
             * Location where vhost configuration files can be found.
             */
            'vhost-files' => [
                '/etc/nginx/sites-enabled/'
            ],

            /**
             * Actions to run to work with the Nginx service.
             */
            'actions' => [
                /**
                 * Action that asserts nginx is installed.
                 */
                'exists' => '/etc/init.d/nginx',
                /**
                 * Action to run to test the nginx configuration.
                 */
                'test-config' => '/etc/init.d/nginx configtest',
                /**
                 * Action to run to reload the nginx service.
                 */
                'reload' => 'systemctl restart nginx'
            ]
        ]
    ]
];

Then that would be why.  Please read the article I linked.  A subdomain is a full domain, but with a bit of syntactic sugar.  It still needs to be explicitly defined somewhere, which you have not done yet

ahhh now I know.. thank you so much man...

No problem

repo: hyn/multi-tenant


text:
Use turbo-hash-map to avoid stringifying keys

Depends on https://github.com/mafintosh/turbo-hash-map/pull/3 to maintain browser compatibility.

Moved to protomux

authors: kasperisager mafintosh

repo: hypercore-protocol/hypercore-next


text:
[FEATURE] retry 组件中， CircuitBreaker 功能，FallbackRetryPolicy 能否直接支持通过 container 调用？

Is your feature request related to a problem? Please describe.
现有的  https://github.com/hyperf/retry/blob/master/src/Policy/FallbackRetryPolicy.php#L44 并不是调用的 container，而是通过 php 现有的 call_user_func 进行调用的。考虑到直接使用 call_user_func 可能性比较小，因此想着直接使用 container 进行调用
Describe the solution you'd like
如果 fallback 是 array 则直接通过 container 进行调用
public function end(RetryContext &$retryContext): bool
    {
        if (!isset($retryContext['retryExhausted'])) {
            return false;
        }

        if (!is_callable($this->fallback)) {
            return false;
        }

        $throwable = $retryContext['lastThrowable'] ?? null;
        $arguments = [$throwable];

        $retryContext['lastThrowable'] = $retryContext['lastResult'] = null;
        if (isset($retryContext['proceedingJoinPoint'])) {
            $arguments = array_merge($retryContext['proceedingJoinPoint']->getArguments(), $arguments);
        }

        try {
            if (!is_array($this->fallback)) {
                $retryContext['lastResult'] = call_user_func($this->fallback, ...$arguments);
            } else {
                $retryContext['lastResult'] = ApplicationContext::getContainer()->get(reset($this->fallback))->{end($this->fallback)}(...$arguments);
            }
        } catch (Throwable $throwable) {
            $retryContext['lastThrowable'] = $throwable;
        }

        return false;
    }

Describe alternatives you've considered
N
Additional context
N
感谢

/assign @Reasno

@Reasno 请问这个 ISSUE 怎么想？

@Reasno 请问这个 ISSUE 怎么想？

不是特别喜欢用同一个policy来实现两种用法，感觉加一个policy来走container更好，fallback的signature也不需要非用数组了，不太喜欢数组隐式表达，可以改成两个参数，显式调用。

closed because of #2465

authors: Reasno huangzhhui yansongda

repo: hyperf/hyperf


text:
kill two todos in deleteContainer operation

Also clean up glog trailing newline a bit in cli/container.go.

@laijs updated.

LGTM

authors: bergwolf laijs

repo: hyperhq/runv


text:
Make OpenSSL an optional dependency

It can be tricky to install OpenSSL, especially on Windows. It would be nice if it were an optional dependency.

Closed via #577

authors: nstoddard seanmonstar

repo: hyperium/hyper


text:
Allow custom error types in RPC methods

Feature Request
Motivation
One of the things I love about Rust is it's stellar error-handling capabilities and how it helps write correct code. When writing RPC implementations with this library I've noticed excessive and duplicated use of map_err or unwrap and no custom error types used in those functions.
For some functions with lots of fallible operations, or when there's several functions that can return many of the same errors. I've extracted those out into separate functions and defined a custom error type so I can use ? and have some centrally defined error handling strategy for the common ones. This works, but being able to do this straight in the impl would be really nice.
Proposal
As I see it there's two possibilities here:

Bake some magic into the tonic::async_trait macro (or provide a separate one, maybe a function attribute) that wraps the implementation functions in an outer function that returns tonic::Status error like before, but coerces the actual return type based on some trait.
Allow the user to define an error type for each generated function in the trait and convert it in the generated service stub code. This one I'm not that big a fan of cause it currently requires defining the type for every trait function until associated_type_defaults lands...

The trait used for conversion I think could look something like this:
trait ToStatus {
    fn code(&self) -> Code;

    fn status(&self) -> Status {
        let code = self.code();
        Status::new(code, code.description())
    }
}

impl<T: ToStatus> From<T> for Status {
    fn from(custom: T) -> Self {
        custom.status()
    }
}

// example impl
impl ToStatus for Code {
    fn code(&self) -> Code {
        *self
    }
}

What do you guys think? I'd be more than happy to attempt implementing this myself, but I've never written any real macro code before. :)
Thanks for reading!

I've cobbled together an attribute macro that seems to get the job done:
gardk/tonic_rpc_wrapper

There is some upcoming work to improve internal error handling and I have been thinking about ways to make it easier to use richer error model with google.rpc.Status. It may be worth it to look into all this, including your proposal, in an unified way. It will take a little while though, so thank you for your patience.
Personally, I  share your observation about Status conversions. I have tried a couple of approaches, none of which I completely like. It's a minor thing and I'm not sure what can be done about it or how but I believe it's worth considering.

You likely want to take advantage of Try to convert errors into Status I believe that should work. Usually, what I see is people will have custom code to convert their internal errors into Status, I think this is the correct method.

Thank you for the responses! I look forward to seeing any future work you may have in store for this.
As for the comment about using Try. This will only work directly (without Result::map_error) when the fallible function being called returns a first-party error if I'm not mistaken? What prompted me posting this issue was that I wanted to treat Diesel's errors the same for many of my handlers within a service. And there is no direct conversion from those into Status that I'm aware of.
What I ended up doing was mapping any handled third-party errors into a custom error type, then using ? for conversion to Status, which is almost the same.
However, it looks like you're aware of this little snag and may be looking into it, which was really all I wanted :)

@gardk Yeah, the intermediate error type imo is great too. I think its always good to funnel errors into a "application" defined one that then can get translated into say Status or some other http style error. So I think that is the correct solution!

authors: LucioFranco alce gardk

repo: hyperium/tonic


text:
chore: Start development of version 0.13

Motivation
Starts the development of version 0.13. This is needed to tell cargo-semver-checks that the development includes breaking changes.
Solution
Updates versions to 0.13.0-dev.

I opened this pull request as I think we probably could start development of the next version including breaking changes as @LucioFranco merged  #1892 which includes breaking changes. This change is needed for the pull requests such as #2006 and #2013.


text:
Getting the history of transactions

Hello, I know if we run minifab blockquery it will generate the transactions for the last block, but is there a way we can generate the history of all transactions or the history of all blocks and transactions?

Use minifab blockquery -b  command to get transactions of the block. Please close this issue.

-b blocknumber

repo: hyperledger-labs/minifabric


text:
Generic JSON Message : Controller API

Design : https://wiki.hyperledger.org/pages/viewpage.action?pageId=24778806

new REST endpoints to be added for message handler operation like,

Register new message service
Unregister a message service
Send message

repo: hyperledger/aries-framework-go


text:
Remove dependency on indy module from protocol module

Module protocols should be a "codification" of state machines as defines by Aries RCFs. These should not directly tie to libindy or any specific type of credentials or frameworks.

This was solved a while ago by hiding indy dependencies behind traits. Closing

repo: hyperledger/aries-vcx


text:
Start privacyCluster non-bootnodes in parallel (acceptance test improvement)

Signed-off-by: Gabriel Trintinalia gabriel.trintinalia@gmail.com
PR description
Start non-bootnodes in parallel for privacy clusters (acceptance test only)

may reduce some acceptance tests duration by 15%

Documentation

[x] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[x] I thought about the changelog and included a changelog update if required.

@Gabriel-Trintinalia any reason not to merge this change? is there more to do?

It improved the tests on my machine but I had no data to validate on CircleCi. I think we can merge, it definitely does not hurt.

repo: hyperledger/besu


text:
Revert the revert of the tx selection commit

The original PR (#5396) caused a problem when running on Frontier. The world state update was committed too late and the receipt was created with the old world state root hash.

@pinges shall we resolve and merge?

To check for no side effects on frontier block syncing, started a full sync node with this PR and one on latest main commit https://app.circleci.com/pipelines/github/hyperledger/besu/22489/workflows/5495f46f-5114-4cc0-b4d3-46280dd735ef/jobs/139706/artifacts
Both have got past block 200,000 so have synced frontier blocks successfully.

authors: macfarla non-fungible-nelson pinges


text:
Update dependencies to address GO-2024-2687

Disable automatic update of dependencies that do not address security vulnerabilities. These updates appear to regularly mess up the Go dependencies (go.mod/go.sum).
grpc.Dial() and grpc.DialContext() are deprecated in current gRPC versions, and replaced by grpc.NewClient().

LGTM, btw @bestbeforetoday , grpc changes some behaviors in the NewClient, any impact?

One place in the code used grpc.DialContent(). This tries to establish the network connection immediately rather than waiting until the connection is actually used to make a request. In practice I don't think this makes any noticeable difference. It just means that an existing network issue will cause an error when a request is made instead when the connection is created. A network issue can occur at any time so errors could always happen when a request is made, even if the initial connect was successful.

repo: hyperledger/fabric-admin-sdk


text:
Rename marbles_transfer to asset-transfer-secured-agreement

Rename marbles_transfer to a more generic and streamlined asset
Move sample to new directory
Remove TODO for marbles by size query

The images in the readme still uses marbles as the asset in the diagrams. In a follow-up we can generate new diagrams.

repo: hyperledger/fabric-samples


text:
Explore tools to allow community to assist in labeling issues

Currently, labeling of issues is limited to only maintainers of this project. Ideally, we would want all members to assist in labeling issues. This is not a permission that exists in GitHub, so we want to investigate if there are any tools/bots that may help. For example, this may be a bot that reads a slack channel or GitHub comments and applies the appropriate label to a issue when asked.

http://partyline.rocks/blog/github/
http://blog.james-carr.org/2014/08/21/open-a-github-issue-from-slack/
Both above can be for our reference I believe.

following the CI meeting we had yesterday with the LF RI engineers, if we move to Gerritt we will need to move to Jira or Bugzilla to manage issues - think this will be an improvement and obviate the need for a bot to fix GH issues.

Prefer to use Gerrit which is easy to review and merge code.

What are the key benefits of Gerrit? I haven't used it.  Does it only provide code reviews?  Git is quite sufficient for reviewing, commenting, and updating pull requests.
The key capability that we need is for a larger community to be able to manage issues without being a maintainer. If we had to move to Jira or Bugzilla for this then I don't see the value of Gerrit but another tool.

Gerritt can enforce reviews and it can integrate checks from CI and that the legal bits are properly handled. It is far more effective than github in that regard, and on a project where security and quality are of paramount importance such as this, we can be far more certain of what gets merged. Also, because Gerritt is tied into LF identity, we can also be a bit more certain of who is making the contributions (because we cannot enforce TFA on github accounts).

@binhn: we can reference this I think https://review.openstack.org/#/c/309610/. As @christo4ferris mentioned, the gerrit can be integrated with CI easily and we can involve more peoples to review codes. Everyone can give +/-1 on your commit and give comments, core team member can give +/-2 to approve it, CI tool will used to verified it before merge.

@srderson closing this as we are transitioning to Jira RSN (promise;-)

authors: binhn christo4ferris genggjh srderson

repo: hyperledger/fabric


text:
Update private data tutorial for contract api

Should be merged along with the smart contract update: https://github.com/hyperledger/fabric-samples/pull/201
Signed-off-by: NIKHIL E GUPTA negupta@us.ibm.com
Type of change

Documentation update

@Mergifyio backport release-2.1

@Mergifyio backport release-2.0


text:
[FAB-17199] Add new test network tutorial

Signed-off-by: NIKHIL E GUPTA negupta@us.ibm.com
Add new test network tutorial as part of getting started section.
Type of change

Documentation update

Description
Users would be guided toward the new test network directly after they install the prerequisites and fabric docker images and samples. The tutorial is the first step toward replacing the build a network tutorial in the long term.
Related issues
The PR to add the test network to the Fabric samples:
https://github.com/hyperledger/fabric-samples/pull/80. (Merged)
The tutorial should be merged after the sample

I don't see documentation for adding a new organization using addOrg3.sh script. What's the plan?

I don't see documentation for adding a new organization using addOrg3.sh script. What's the plan?

We will rebase the adding an org to the network tutorial to the new test network and doc the addOrg3 script there. We will continue to use the byfn tutorial and eyfn until then.

Long term the future of EYFN should be to focus on the process for creating the structure and crypto material for an org, and how to add the org to a channel through a channel update (what the json file and jq command would look like, in other words). We can leverage the updated Config Update doc -- https://hyperledger-fabric.readthedocs.io/en/master/config_update.html -- for the latter, rather than that being the focus of an Add an Org tutorial.

authors: joealewine nikhil550 rameshthoomu


text:
Support multiple token connectors in a stack, with ERC20/ERC721

Signed-off-by: Peter Broadhurst peter.broadhurst@kaleido.io

Ok - behavior should be more intuitive now:
# Ethereum default: you'll get erc1155, erc20_erc721
ff init test

# Fabric default: you'll get nothing
ff init -b fabric test

# Ethereum with explicitly no tokens
ff init -t none test

# Ethereum with just ERC-1155
ff init -t erc1155 test

# Note that none does not cancel others out, so this would get erc20_erc721 and erc1155
ff init -t erc20_erc721 -t none -t erc1155 test

Holding off on the merge of this, until we have a complimentary manifest merge into FireFly Core

repo: hyperledger/firefly-cli


text:
Permission Implementation Improvement

Permissions Implementation Improvement
This document provides an overview of a proposal to improve implementation of permissions in shared model.
Note: This document does not discuss current permission model, its scope is pure technical and does not affect behavior of the system.
Permission Model
Each role has a set of permissions, associated with it. Additionally, each account can have so called grantable permissions, which are permissions given to it by some other account. Grantable permissions allow account to perform some actions on other account.
In order to execute a command, account needs to have certain permission. Each command has unique permissions for its execution. Also, some commands require additional permissions, e.g transferAsset command requires destination account to have can_receive_asset permission.
Each query has 3 distinct permissions associated with it. They allow executing query on a specific account, domain or globally.
For example account A can have permission to get balance of account A, so he will not have permission to get balance of account B, even if they belong to the same domain. However, if account A has domain permission, to get balance, it would be possible to perform query on account B.
Current Permission Implementation
Currently, all permissions in Iroha are implemented as strings. This has exactly one benefit - ease of use for developers. Strings are easy to debug and code working with strings is straightforward.
However, strings have several disadvantages. First of all it is easy to mistype them, for clients and developers. They need to be allocated and take up a lot of space. They are not type-safe and thus error-prone.
This proposal tries to solve given issues while maintaining ease of use.
Enum Based implementation
Enum is a good choice for permissions, since they are just set of constants. It provides type-safety, efficiency, and clarity.
I propose we declare permission Enum - either one, or several for command, query, and grantable permissions, each command and query will have an associated permission as a static const variable of a class.
We would need to define mapping for protobuf and postgres enums. This could be done by assigning same integer values to corresponding permissions in all three enums and then simply performing static_cast. This way we can avoid defining giant switch-cases / maps.
One big issue with enums in C++ is that there is no idiomatic way to get string representation. There are several possible solutions to this issue:

Brute force - define mapping from each permission to string

Rely on implementation, such as protobuf to provide mapping. Define abstract class like PermissionPrinter, which will have virtual method toString(permission) and implement it for each backend of shared model. Since we can map protobuf enums to our enums, we can use protobuf reflection as one possible implementation.

Rely on things such as Boost Preprocessor or other code-generation solutions.

This issue is open for discussion and would like to hear an opinion of other developers.

It provides type-safety

no. Unless, you use scoped enum.
I like defining some kind of singleton or static array `const char* map[] = {"permA", "permB"};
And cast to string like
enum class Perm: uint32_t {A, B};
Perm a = Perm::A;
map[a]; // I am not sure actually, if it has implicit cast to int or not, but idea is like this

no. Unless, you use scoped enum.

Of course we would use scoped enum. I did not mention that since it seems to obvious

So far I have 3 ideas for solving it issue (feel free to propose new one). The first two use additional strings as it is, the last one is prefer depend on the protobuf (thus less transport-agnostic, but more stable).
All the ways describe how define enum Permission, and related toString & fromString functions. Imo that should be enough for replacing (am I missing smth?).
p.s code may cause compile-errors, consider as pseudo-code

Macros. Yes, they are considered evilish but the solution is the most compact and has no code duplication at all.
New permission -> 1 LOC

#define __PERM_SWITCH_TOSTR(r, _, elem) case Permission::elem: return ##elem;
#define __PERM_SWITCH_FROMSTR(r, _, elem) {##elem, Permission::elem}
#define PERM_DEF(perm_list)                                         \
  enum class Permission {                                          \
    perm_list                                                      \
    , NONE                                                         \
  };                                                               \
  inline const std::string toString(Permission p) {                \
    switch (p) {                                                   \
      BOOST_PP_SEQ_FOR_EACH(__PERM_SWITCH_TOSTR, _, perm_list)     \
    }                                                              \
    return "undefined";                                             \
  }                                                                \
  inline Permission fromString(const std::string s) {              \
    static std::map<std::string, Permission> m {                   \
      BOOST_PP_SEQ_FOR_EACH(__PERM_SWITCH_FROMSTR, _, perm_list)   \
    };                                                             \
  }

PERM_DEF((can_receive)
         (can_transfer)
         (can_create_domain)
         ...)

Constexpr maps, a lot of code duplication but compile-time (-> prob less error-prone), need to write function str -> enum (idk how to do it via templates). It is roughly same to the case enum+pair of methods, I don't show  this case, because constexpr-maps is a bit better (for toString)
New permission -> 4 LOC (enum + PermMap::s (x2) + fromString's map)

enum class Permission {
  can_receive,
  can_transfer,
  can_create_domain,
};

template<Permission>
class PermMap {
  static const std::string s;
};

template<>
const std::string PermMap<Permission::can_receive>::s = "can_receive";

inline const std::string toString(Permission p) {
  return PermMap<p>::s;
}

inline Permission fromString(const std::string s) {
  static const std::map<std::string, Permission> m {
    {"can_receive", Permission::can_receive},
    {"can_transfer", Permission::can_transfer},
    {"can_create_domain", Permission::can_create_domain},
    ...
  };
  return m[s];
}

Depend on the protobuf, the most elegant way. The only problem that it highly depend on the transport so imo it is a bad thing to use. Also protobuf uses enum (NOT enum class, so weak typing  might be a huge problem in future)
New permission -> 0 LOC
Though protobuf updates may need some fixes

using Permission = iroha::protocol::RolePermission;

inline const std::string toString(Permission p) {
  return iroha::protocol::RolePermission_Name(p);
}

inline Permission fromString(const std::string &s) {
  Permission p;
  iroha::protocol::RolePermission_Parse(s, &p);
  return p;
}

In order to execute a command, account needs to have certain permission.

Well, it has to have a role

It would be simpler to have switch case for toString, and do not implement fromString at all, since it is not needed much.

I thought that you need fromString operation for deserialization, e.g. in genesis block a role can be created

We use protobuf for deserealization

Good

authors: Warchant l4l neewy nickaleks

repo: hyperledger/iroha


text:
Migration tool

For smooth upgrades, one needs to be able to migrate the versioned transactions from the old standard to the new preferably ensuring that the operations are handled automatically when it is safe to do so, but with human intervention requested when that is necessary.

related #2920

As you know, the Client CLI accepts and executes JSON instructions. I guess we should also add versions to them to avoid problems that can appear for our users.

authors: appetrosyan mversic pesterev


text:
S8 [User Story] Spike -- Research LDAP login token

[User Story]
Spike -- Research LDAP login token

Epic Title
#271

User Story Title
Spike -- Research LDAP login token

T-shirt size: S(mall), M(edium), L(arge)
M

Story Points - Fibonacci (1,2,3,5,8,13)
3

User Story
[Value Statement] "As a user of a certain type (specify), I want to do something (action) so I can provide business value"

Description
Find out what is returned after logging in to AD as a user. Could be a JWT token or some other token.

Business Need (the why):
from epic, if needed

Details
All the details needed to accomplish the story. Tasks - can be linked

Additional User Story
linked

Acceptance Criteria/Tests
The list of tests or criteria to be used to validate the story has been completed. May still need UAT or SIT / integration testing with other stories.

Failure
if any, fold in negative tests

Definition of Done
e.g.Passes all regression tests, Passes testing per acceptance criteria, Approved by UI team, Able to show feature in demo

UX/UI Details and/or mockups
if UI change, a mockup or description of what to change, attach image/file

Applications or Systems impacted
upstream/downstream applications/systems

Dependencies
non story dependencies

Assumptions
if any

Performance Considerations
Will the work performed as part of this story impact system performance. If there is potential for a performance hit, where would you expect it to manifest in the system.

Security Considerations
E.g., does this story involve working with Personal Identifying Information (PII)? Note any such security sensitive aspects.

QA Considerations
what might be hard to test or test setup criteria

Acrhitectural/System or Component Impacts
if we're adding something new or significantly changing architecture flag for architect review

Reverse Engineering Required
to document areas not known well by dev team

Questions/Clarifications
Create new issue (add label: question) in this repo and link to this issue

Just like all stories, this one needs an estimate.  The template at the top indicates it's a 3.  Can we go by this?
@adamgering does this need to be in S8?  Seems like it's related to the stories around AD auth but if are able to demo AD functionality now, I'm assuming we are logged in without understanding what is returned.  Why do we need this?  Thx.

repo: hyperledger/sawtooth-next-directory


text:
Enable smart contract support in hypersign network

https://docs.cosmwasm.com/docs/1.0/

Reference: https://github.com/osmosis-labs/osmosis/tree/main/wasmbinding

repo: hypersign-protocol/hid-node


text:
remove node net module

After we get the new utp module done, we should remove net module to reduce size/complexity. It's only used in a few places.
%grep "require('net" -R .
./node_modules/bind-easy/test.js:const net = require('net')
./node_modules/bind-easy/index.js:const net = require('net')
./node_modules/@hyperswarm/dht/test/connections.js:const net = require('net')
./node_modules/@hyperswarm/dht/lib/socket-pairer.js:const net = require('net')
./node_modules/@hyperswarm/secret-stream/test.js:const net = require('net')

in master

authors: heapwolf mafintosh

repo: hyperswarm/dht


text:
feat: Capability to fetch logs along with span

hypertrace/hypertrace#224
In this change, following is done:

Parse the log event request attributes from the span request
Make the span query as usual, subsequently build the log query using requested log attributes and returned spanIds as filter (ex: select attr1, attr2 from logEventView where spanId in [id1, id2, ....]), use the timefilter from the spanQuery as well
maintain a mapping from spanId(referred as id) -> list of logEvents

Major changes in SpanLogEventFetcher, LogEventAttributeRequestBuilder
Test
{
  spans(
    limit: 100
    between: {startTime: "2021-04-26T17:45:31.849Z", endTime: "2021-04-26T18:45:31.849Z"}
    offset: 0
    orderBy: [{key: "startTime", direction: DESC}]
  ) {
    results {
      id
      logEvents {
        results {
        spanId: attribute(key: "spanId")
        attribute: attribute(key: "attributes")
        }
      }
      protocolName: attribute(key: "protocolName")
      serviceName: attribute(key: "serviceName")
      displaySpanName: attribute(key: "displaySpanName")
      statusCode: attribute(key: "statusCode")
      duration: attribute(key: "duration")
      startTime: attribute(key: "startTime")
      traceId: attribute(key: "traceId")
      __typename
    }
    total
    __typename
  }
}

{
  "data": {
    "spans": {
      "results": [
        {
          "id": "2b1b03a627d8315b",
          "logEvents": [],
          "protocolName": "HTTP",
          "serviceName": "route",
          "displaySpanName": "HTTP GET /route",
          "statusCode": "200",
          "duration": 63,
          "startTime": 1619462676157,
          "traceId": "00000000000000006485904421d38a40",
          "__typename": "Span"
        },
        {
          "id": "4b374aba5a81f266",
          "logEvents": [
             "results":[
            {
              "spanId": "4b374aba5a81f266",
              "attribute": {
                "event": "GetConn"
              }
            },
            {
              "spanId": "4b374aba5a81f266",
              "attribute": {
                "event": "ConnectStart",
                "addr": "0.0.0.0:8081",
                "network": "tcp"
              }
            },
            {
              "spanId": "4b374aba5a81f266",
              "attribute": {
                "event": "ConnectDone",
                "addr": "0.0.0.0:8081",
                "network": "tcp"
              }
            },
            {
              "spanId": "4b374aba5a81f266",
              "attribute": {
                "event": "GotConn"
              }
            }
            ]
          ],
          "protocolName": "HTTP",
          "serviceName": "frontend",
          "displaySpanName": "HTTP GET /customer",
          "statusCode": "200",
          "duration": 292,
          "startTime": 1619462675412,
          "traceId": "00000000000000006485904421d38a40",
          "__typename": "Span"
        }
       .....
      ],
      "total": 54,
      "__typename": "SpanResultSet"
    }
  }
}

@aaron-steinfeld for the log and span join to work, the span query must request id attribute and log query must request for spanId, in case when either is missing should it be handled by internally requesting the id/spanId attribute, or can we consider it sort of an informal contract with the consumer of the api?

@aaron-steinfeld for the log and span join to work, the span query must request id attribute and log query must request for spanId, in case when either is missing should it be handled by internally requesting the id/spanId attribute, or can we consider it sort of an informal contract with the consumer of the api?

Thanks for bringing that up! I meant to comment on that and it completely slipped my mind. IMO it should be handled internally, but I'm OK deferring that into a separate PR if you want since it strictly relaxes the API contract.

repo: hypertrace/hypertrace-core-graphql


text:
[Question] Do we need to specify the available node version we are compatible with?

Description

I got this error after I updated the latest commit. The newly added package @plasmohq/edge-addons-api requires a node version >=16.14, but mine is 16.13.1.
This error can be easily fixed by updating node. However, this error could be a problem for some of our contributors.
Do we need to specify the available node version we are compatible with?

Hi, @wxharry. Agree with you, we'd better add "engine" field to package.json to limit the node version and add "Requirement" to README like:

By the way, it is a convention that odd version is less stable than even version, so you are encouraged to update your node from 16.13.1 to 16.14 or other even number version.

Thank you for your information. I'm using 16.16 now.

closed via #437.

repo: hypertrons/hypertrons-crx


text:
[Question] API request

Description
Can you provide all github apis used by this plug-in

Hi @xueqidove, here is a main API we are using at the moment.
There are several other APIs actually, but they might be deprecated recently, so I will not provide them here.

API has changed, please refer to https://github.com/hypertrons/hypertrons-crx/issues/515


text:
QUIC not TCP

Discussed in https://github.com/hyprspace/hyprspace/discussions/31

Originally posted by notassigned September 10, 2021
Since this is a VPN we shouldn't be using TCP, since we may run into a TCP meltdown when running a TCP connection over the VPN connection.
I suggest switching the listen addrs to QUIC.
https://openvpn.net/faq/what-is-tcp-meltdown/

I have a branch for this. Just give me write permission and I'll push it.

Does your branch completely replace TCP with QUIC or provide both as options?
There are situations where TCP is the only way the VPN can be formed, such as in very locked down public networks within offices or campuses that for some reason block all UDP traffic including QUIC, so keeping TCP as an option is needed when QUIC won't work.

I just removed the TCP listen addrs and replaced them with QUIC multiaddrs. TCP is still a transport that can be used but the node doesn't advertise listen addrs for it. The reason I removed them is because I'm not entirely sure how libp2p decides which transports to use when dialing a peer. I will test having both transports and see if I can force the order.
Another thing to keep in mind is that hole punching was just merged into go-libp2p (not released yet) and the success rate for QUIC is far higher than TCP.
Here is my branch on a fork: https://github.com/notassigned/hyprspace/tree/add-quic-transport

Ah I see, some form of hyprspace init --force-tcp option would probably need to added, there must be a way to define the order of transports; I'll look out for it if I can find it.

Hi all! Just saw #37 and maybe we should consider adding this as a field in the hyprspace configuration for a given interface? Possibly something like,
accepted_transports:
    - tcp
    - quic
    - etc...

By default maybe we accept both QUIC and TCP but allow users to pick one specifically if they can't use QUIC/TCP for a network.

The dial method will try to dial multiaddrs for the peer until it gets a connection, so if QUIC can't be used and TCP can then the connection to the peer will be established over TCP. But realistically QUIC will work on virtually all networks and provides numerous benefits over TCP like native roaming, faster connection establishment, and native stream muxing.
I think the only potential downside is that if you were on a network which QUIC couldn't be used then you would have to wait an extra few seconds for the QUIC dial to fail.

authors: LynHyper alecbcs notassigned

repo: hyprspace/hyprspace


text:
Window rule to remember last size/position

I would like a window rule that just remembers the last size/position of the window and restore it when the window is opened.

how would you even imagine that being tracked? Just by class?

how would you even imagine that being tracked? Just by class?

With the normal rules: class and title, or just class, or just title

how would you even imagine that being tracked? Just by class?

Like all other rules: by class and/or title

Could the feature request in #1426 also solve this one here? Because that one seems a bit more predictable (you know exactly when to save something and therefore where to save something.)

Some windows don't remember their size and I don't know how big they will be until trigger floating. Sometimes they keep the size of tiling in floating state. That's quite annoying.

I have the similar problem. I use Thunar as file manager and set it as floating window. Every time I open it, it shows up in the minimum size, I have to use meta + right mouse button to resize to normal size. It would be better if the window rule that remembers last size is available.

Not sure if this is of any use to anyone - but I was trying to get something similar to work using special workspaces and finally got the result I was after.
windowrulev2 = workspace special:name, class:^(APP)$
windowrulev2 = float, class:^(APP)$
windowrulev2 = size 1000 900, class:^(APP)$
windowrulev2 = move 500 200, class:^(APP)$
I then use the following to exec and toggle:
bind = SUPER, T, togglespecialworkspace, name
exec-once = [workspace special:name] APP

authors: 875d Aleksanaa Bryan2333 aksdb aux-op raffaem vaxerski

repo: hyprwm/Hyprland