Optimized prompt for multi-class classification contains only a subset of classifiers

I followed the tutorials for optimizing a DSPy program for the task of multi-class classification and the "optimized" prompt resulted in a small subset of the available classifiers, making it unsuitable for consideration in a production environment.
I'll provide the relevant chunks of notebook code but I won't be able to actually show the prompt itself as it contains production data. Hopefully this is sufficient for identification of what may be the issue.
ISSUE 1:
The main issue is that the final "optimized" prompt only contains  single few-shot samples for 8 of the 41 classifiers (with one of the classifiers having 2 samples). I expected it to contain multiple few-shot samples for each of the 41 classifiers.
ISSUE 2:
The secondary issue was that the evaluation metric showed a rather low score of 64.34. I expected this to be much higher since I trained with a decent size ground truth dataset (that was manually curated for accuracy) of 50 samples per classifier.
I'm guessing this is related to my optimizer configuration but I'm not sure what to adjust. Please advise. Thank you!
# source .env file
import os
import sys
from dotenv import load_dotenv
load_dotenv()

# Add the current directory to PYTHONPATH
sys.path.append('/Users/abriel/repos/projectname/')
sys.path.append(os.getenv('PYTHONPATH'))
sys.path.append(os.getenv('DEFAULT_MODEL'))

import os
import re
import dspy
from dspy import Predict
from dspy.datasets import DataLoader
from dspy.signatures import ensure_signature
from dspy.teleprompt import BootstrapFewShotWithRandomSearch
import pandas as pd

# Load the intent keys from an external source
from src.variables import intent_keys

# Set up the model using OpenAI's GPT
gpt4o = dspy.OpenAI(model=os.environ['DEFAULT_MODEL'])
dspy.configure(lm=gpt4o)

# Define the Intent Classifier Signature
class IntentClassifier(dspy.Signature):
    """
    Classifies a person's response into one of the given intents based on the conversation
    between a two people, person1 and person2.
    """
    conversation = dspy.InputField(
        desc="A conversation between person1 and person2.",
        prefix="Conversation: "
    )
    script_question = dspy.InputField(
        desc="Person1 question.",
        prefix="Question: "
    )
    response = dspy.InputField(
        desc="Person2's response to the question from person1.",
        prefix="Response: "
    )
    intent = dspy.OutputField(desc="One of the following intents: " + ", ".join(intent_keys))

# Create the IntentClassifierModule that incorporates ChainOfThought
class IntentClassifierModule(dspy.Module):
    """
    A module that defines the intent classification process.
    """
    def __init__(self):
        super().__init__()
        self.signature = IntentClassifier
        self.predictor = dspy.ChainOfThought(signature=self.signature)

    def forward(self, conversation, question, response):
        """
        Runs the forward pass for classifying intents.
        """
        result = self.predictor(
            conversation=conversation,
            question=question,
            response=response
        )
        return dspy.Prediction(
            intent=result.intent
        )

# Load and split datasets
dl = DataLoader()

full_dataset = dl.from_csv(
    "dataset_name.csv",
    fields=("conversation", "question", "response", "intent"),
    input_keys=("conversation", "question", "response")
)
splits = dl.train_test_split(dataset, train_size=0.8)
train_dataset = splits['train']
test_dataset = splits['test']

# Validation function to compare predicted and actual intents
def validate_answer(example, pred, trace=None):
    """
    Validates the prediction by comparing it to the actual intent.
    """
    return example.intent.lower() == pred.intent.lower()

# Configure the optimizer
config_ = {
    "max_bootstrapped_demos": 8,
    "max_labeled_demos": 8,
    "num_candidate_programs": 10,
    "num_threads": 4
}

# Use BootstrapFewShotWithRandomSearch to optimize the prompt
teleprompter = BootstrapFewShotWithRandomSearch(
    metric=validate_answer,
    **config_
)

# Compile and save the optimized program
optimized_program = teleprompter.compile(IntentClassifierModule(), trainset=train_dataset)
optimized_program.save('/Users/abriel/repos/projectname/optimized_intent_classifier.json')

This resulted in successful "training", running in 8 sets. I then completed an evaluation:
from dspy.evaluate import Evaluate
evaluator = Evaluate(devset=test_dataset, num_threads=1, display_progress=True, display_table=5)
evaluator(optimized_program, metric=validate_answer)

I then checked the optimized prompt by doing:
gpt4o.inspect_history(n=1)

ISSUE 1:
The resulting optimized_intent_classifier.json had single few-shot samples for only 8 intents, with one of the intents having 2 samples. There are 41 intents, so I expected multiple few-shot samples for each of the 41 intents.
ISSUE 2:
This showed a final score of 64.34, which was admittedly far lower than expected as I provided a ground truth dataset of 50 samples per intent.

Hi @aaronbriel ,
The optimized_program currently includes few-shot examples from only 8 of the classifiers because the BootstrapWithRandomSearch configuration is set to select:
"max_bootstrapped_demos": 8,     "max_labeled_demos": 8,"
To get unique few-shot examples for all 41 classifiers, you can increase these parameters to 41.
However, note that the selection of fewshot examples in BootstrapFewShot doesn't guarantee uniqueness in all 41 few-shot demos (the optimizer just selects a set of 41 few-shots that pass the metric):
Some potential solutions for this could be:

Adjusting the metric to have a global check for each unique classifier, modifying the validate_answer function to ensure that only examples unique to each classifer are selected and not repeated (e.g. - return example.intent.lower() == pred.intent.lower() and global_class_check(example)

Filtering the train_dataset by the 41 classifier types, and then running the optimizer on each of the 41 train_sets (bootstrapping 41x!)

bootstrap_program_0 = teleprompter.compile(IntentClassifierModule(), trainset=train_dataset_0)
bootstrap_program_1 = teleprompter.compile(bootstrap_program_0, trainset=train_dataset_1)

the 2nd solution is likely more expensive but may ensure some more diversity by providing multiple sets of few-shots for the unique classifiers, which can potentially raise performance
Let me know if this helps!

@arnavsinghvi11 thank for the quick response! I will try this and let you know the results. Thanks!

@arnavsinghvi11 I created a loop that achieves the logic you describe above in bootstrap_program_0 and bootstrap_program_1, but in the 2nd iteration it fails with:
Traceback (most recent call last):
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 219, in <module>
    optimize_intent_classifier()
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 190, in optimize_intent_classifier
    bootstrap_program_1 = teleprompter.compile(
                          ^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/random_search.py", line 95, in compile
    program2 = program.compile(student, teacher=teacher, trainset=trainset2)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 82, in compile
    self._prepare_student_and_teacher(student, teacher)
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 99, in _prepare_student_and_teacher
    assert getattr(self.student, "_compiled", False) is False, "Student must be uncompiled."
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Student must be uncompiled.

Any ideas on how to resolve this?

@arnavsinghvi11 I set my config to the following (also adding a stopping criteria and better thread count):
   config_ = {
        "max_bootstrapped_demos": num_intents,
        "max_labeled_demos": num_intents,
        "num_candidate_programs": 10,
        "num_threads": os.cpu_count(),
        "stop_at_score": 100
    }

I then created a loop that achieves the logic you describe above but it fails with this error:
Traceback (most recent call last):
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 219, in <module>
    optimize_intent_classifier()
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 190, in optimize_intent_classifier
    bootstrap_program_1 = teleprompter.compile(
                          ^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/random_search.py", line 95, in compile
    program2 = program.compile(student, teacher=teacher, trainset=trainset2)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 82, in compile
    self._prepare_student_and_teacher(student, teacher)
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 99, in _prepare_student_and_teacher
    assert getattr(self.student, "_compiled", False) is False, "Student must be uncompiled."
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Student must be uncompiled.

For a sanity check, I even explicitly declared each bootstrap program as follows:
    training_data1 = [example for example in training_data if example.intent == intent_keys[0]]
    bootstrap_program_0 = teleprompter.compile(IntentClassifierModule(), trainset=training_data1)
    training_data2 = [example for example in training_data if example.intent == intent_keys[1]]
    ...
    bootstrap_program_18 = teleprompter.compile(bootstrap_program_17, trainset=training_data19)
    training_data20 = [example for example in training_data if example.intent == intent_keys[19]]
    bootstrap_program_19 = teleprompter.compile(bootstrap_program_18, trainset=training_data20)

It consistently fails at bootstrap_program_4 = teleprompter.compile(bootstrap_program_3, trainset=training_data5).
Any ideas on how to resolve this?

I was running into the following issue, which was resolved by adding format=str to each of the signature InputFields. I thought I would add that here in case somebody runs into the same problem.
Traceback (most recent call last):
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 219, in <module>
    optimize_intent_classifier()
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 190, in optimize_intent_classifier
    bootstrap_program_1 = teleprompter.compile(
                          ^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/random_search.py", line 95, in compile
    program2 = program.compile(student, teacher=teacher, trainset=trainset2)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 82, in compile
    self._prepare_student_and_teacher(student, teacher)
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 99, in _prepare_student_and_teacher
    assert getattr(self.student, "_compiled", False) is False, "Student must be uncompiled."
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Student must be uncompiled.

I'll post tomorrow with the results of the optimization.

@arnavsinghvi11 I keep running into the error below. I thought I had resolved it by adding format=str to each of the signature InputFields. It progressed a bit further but failed yet again several intent iterations later. I'm not seeing anything that jumps out in the data for that specific intent, as all of the text data across all intents contain special characters.
Do you know of any other tricks people have used to resolve this?
Traceback (most recent call last):
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 260, in <module>
    optimize_intent_classifier()
  File "/home/ubuntu/repos/project/experiments/dspy/build_intent_classifier_prompt.py", line 237, in optimize_intent_classifier
    bootstrap_program = teleprompter.compile(bootstrap_program, trainset=training_data_intent)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/random_search.py", line 95, in compile
    program2 = program.compile(student, teacher=teacher, trainset=trainset2)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 82, in compile
    self._prepare_student_and_teacher(student, teacher)
  File "/home/ubuntu/anaconda3/envs/project-venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap.py", line 99, in _prepare_student_and_teacher
    assert getattr(self.student, "_compiled", False) is False, "Student must be uncompiled."
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Student must be uncompiled.

Using the recommended solution in (1) above, the resulting prompt was still missing 20 intents so that is not a feasible solution for a production release. The "Student must be uncompiled" issue may have not occurred due to certain data in a missed intent not being encountered.
I'm going to have to hold off on leveraging this tool until I or another person can find a solution to said issue.

@aaronbriel  this may be helpful https://github.com/KarelDO/xmc.dspy


Can we use this library with @react-native-seoul/masonry-list?

Hi, the title says it all. I want to use this library with Masonry list created using @react-native-seoul/masonry-list.
Can we use it? I saw in the docs that we have to use Tabs.ScrollView for it to properly work, so just wondering if we can use it.
Thanks

Out of the box, most likely it's not compatible. However, if you really need support you might be able to fork and add it yourself.
Tabs.ScrollView is just a wrapper for the original scrollview. You can try adding a similar one.
See: https://github.com/PedroBern/react-native-collapsible-tab-view/blob/main/src/ScrollView.tsx

Hi, the title says it all. I want to use this library with Masonry list created using @react-native-seoul/masonry-list.
Can we use it? I saw in the docs that we have to use Tabs.ScrollView for it to properly work, so just wondering if we can use it.
Thanks

are you solved this issue??
we want add @react-native-seoul/masonry-list in each tab

I think this can be closed. Adressed in the prs below but with Shopify masonry:

https://github.com/PedroBern/react-native-collapsible-tab-view/pull/353
https://github.com/PedroBern/react-native-collapsible-tab-view/pull/360


testTopClosenessDirected randomly failing

Set random seed or adjust boundaries.
[ RUN      ] CentralityGTest.testTopClosenessDirected
networkit/cpp/centrality/test/CentralityGTest.cpp:871: Failure
The difference between cc.ranking()[i].second and topcc.topkScoresList()[i] is 0.014224715958173262, which exceeds tol, where
cc.ranking()[i].second evaluates to 0.3233387358184765,
topcc.topkScoresList()[i] evaluates to 0.33756345177664976, and
tol evaluates to 9.9999999999999995e-08.
networkit/cpp/centrality/test/CentralityGTest.cpp:871: Failure
The difference between cc.ranking()[i].second and topcc.topkScoresList()[i] is 0.0031140167173528965, which exceeds tol, where
cc.ranking()[i].second evaluates to 0.3202247191011236,
topcc.topkScoresList()[i] evaluates to 0.3233387358184765, and
tol evaluates to 9.9999999999999995e-08.
networkit/cpp/centrality/test/CentralityGTest.cpp:871: Failure
The difference between cc.ranking()[i].second and topcc.topkScoresList()[i] is 0.016802665869184441, which exceeds tol, where
cc.ranking()[i].second evaluates to 0.30342205323193916,
topcc.topkScoresList()[i] evaluates to 0.3202247191011236, and
tol evaluates to 9.9999999999999995e-08.
[  FAILED  ] CentralityGTest.testTopClosenessDirected (20 ms)

This is a duplicate of #6 where I also noted that using seeds does not help.

Fixed bug in TopCloseness code.


Wrapping $meta-add and $meta-delete operation in transactionService execution to support partitioning

What Was Done:

extracted implementation for operation $meta-add and $meta-delete to protected methods (doMetaAddOperation & doMetaDeleteOperation);
wrapped the newly created methods into transactionService.execute invocation to support partitioning;

Looks good to me!


After a commit, repository still shows files as changed

After I commit, I am taken back to the repo homepage and I still see the same files that I committed as changed. Clicking on the diff reveals that there are no differences.

Either a refresh should be done or maybe there is a way to exclude the files you just committed from being displayed as changed.

I've also seen this a few times today, afraid it is introduced by some of the recent refactoring.
However it does not happen every time for me, hmm 😕

I was still using 1.72, so that should help narrow it down

okay, first step is updating to latest then 😄

found, this error occurs when clicking diff from the staging screen

@FreHu try this, https://github.com/larshp/abapGit/pull/1798

already left work, I will get to it tomorrow

Tested just now, it seems to be working. Thanks.


faceting genes by different data types

Search results can be faceted based on data like expression timing and mutant availability

I would implement it by having expression and mutants open up a window or dropdown that lets the user check which subcriteria they are interested in. For example, I click mutants and check which of the subtypes (chemical-stop, chemical-syn, chemical-nonsyn, transposon, etc) I want. Also a keyword search box.

Is there anything left to do here?

No, I think it's all good


[Bug] dependencies / bundler integration fails to properly update

Problem
Running $ bundle update ends up in downgrading the library or downgrading danger itself if version is locked.
Setup
Ruby version: 2.6.5
Using rbenv
Contents of Gemfile:
source 'https://rubygems.org'

gem 'cocoapods'
gem 'colorize'
gem 'danger'
gem 'danger-swiftlint'
gem 'fastlane'
gem 'pry-byebug'
gem 'sekrit'
gem 'slather'
gem 'terminal-table'

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Contents of Gemfile.lock (the relevant part):
    danger (8.0.4)
      claide (~> 1.0)
      claide-plugins (>= 0.9.2)
      colored2 (~> 3.1)
      cork (~> 0.1)
      faraday (>= 0.9.0, < 2.0)
      faraday-http-cache (~> 2.0)
      git (~> 1.7)
      kramdown (~> 2.0)
      kramdown-parser-gfm (~> 1.0)
      no_proxy_fix
      octokit (~> 4.7)
      terminal-table (~> 1)
    danger-swiftlint (0.24.3)
      danger
      rake (> 10)
      thor (~> 0.19)

Running bundle update (the relevant part):
$ bundle update
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...................
[...]
Using danger 8.0.5 (was 8.0.4)
Using danger-swiftlint 0.3.0 (was 0.24.3)
[...]
Bundle updated!

Contents of Gemfile.lock after update (the relevant part):
    danger (8.0.5)
      claide (~> 1.0)
      claide-plugins (>= 0.9.2)
      colored2 (~> 3.1)
      cork (~> 0.1)
      faraday (>= 0.9.0, < 2.0)
      faraday-http-cache (~> 2.0)
      git (~> 1.7)
      kramdown (~> 2.3)
      kramdown-parser-gfm (~> 1.0)
      no_proxy_fix
      octokit (~> 4.7)
      terminal-table (~> 1)
    danger-swiftlint (0.3.0) # uh oh!
      danger

Forcing the version in the Gemfile using gem 'danger-swiftlint', '~> 0.24' results in downgrading danger itself:
$ bundle update
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies............................................
[...]
Using git 1.5.0 (was 1.7.0)
[...]
Using thor 0.20.3 (was 1.0.1)
[...]
Using sekrit 0.1.0 (was 0.2.0)
Using danger 0.8.2 (was 8.0.4)
Using danger-swiftlint 0.24.4 (was 0.24.3)
[...]
Bundle updated!

Same issue here. I could workaround this by specifying gem 'danger-swiftlint', '>=0.24.3' in my Gemfile. But I suppose that the issue lies in Bundler gem itself as that's where the decision for the version is made (I assume). I guess there's something wrongly matching 3 to be higher than 24 by just looking at the first digit (2).

Thanks for the issue! Yeah good thinking @Jeehut, seems to be the case. @bsarrazin which bundler version are you using? Seems really weird that this wouldn't be working ...

@ashfurrow my apologies for the delay. I am using bundler 2.1.4, which I think is the latest?
I was also seeing a conflict with a gem of mine. So I'm thinking maybe that was the source of conflict.
Take a look https://rubygems.org/gems/sekrit/ I think you have far deeper Ruby knowledge than I do. Any feedback is appreciated!
Looks like tweaking the dependency versions and releasing 0.3.0 has fixed it. 🤞

Closing this since it's pretty old and seems to be fixed.


added NatGW IDs in Output section

Signed-off-by: Sumanth Lingappa<EMAIL_ADDRESS>Issue #, if available:
Description of changes:
Wanted NatGW IDs as part of my quickstart. Added necessary changes in the Outputs Section.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.


WINDOWS REGRESSION: command with double-quotes cannot be executed

In grunt-exec 1.0.1 it was possible to pass multiple quoted arguments like
exec: {
    {
        command: '"C:\\full-path\\chutzpah.console.exe" /path "C:\\full-path\\chutzpah.json"'
    }
}

With version 2.0.0 I get the following error:
>> Failed with: Error: spawn "C:\full-path\chutzpah.console.exe" ENOENT
Going back to 1.0.1 fixes the problem for now.

Hi @warappa on my Windows 10 machine, I tested the following with both cmd.exe and powershell:
exec: {
    command: '"C:\\windows\\notepad.exe" "C:\\test.json"'
}

Which caused notepad to ask if I wanted to create the file C:\test.json (it does not exist on my disk).  This is the expected behavior.
Can you perhaps provide some additional information?  eg. Windows version, shell (and version), grunt version, node version?  The full path would also be helpful.  Perhaps yours has spaces? (my test did not)
To do this, run npm list, npm -v, node -v,
If you are running in powershell, please execute the following:
$PSVersionTable.PSVersion
[System.Environment]::OSVersion.Version
[System.Environment]::Is64BitProcess
[Environment]::Is64BitOperatingSystem
(Get-WmiObject win32_processor | Where-Object{$_.deviceID -eq "CPU0"}).AddressWidth
(Get-WmiObject -Class Win32_ComputerSystem).SystemType
npm -v
node -v
npm list
$pwd
Get-Content gruntfile.js | Where { $_.Contains('command: ') } | Out-String

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alle Rechte vorbehalten.

I see a potential typo in the commented out command here (colon before C):
":C\\full-path\\Tests\\chutzpah.json"
Other than that, I'm running PS 64 bit (vs 32) with npm 4.5.0, node 7.3.0, grunt-cli 1.2.0 and grunt 1.0.1
The biggest difference is probably that older grunt version.  I don't think anything changed in node 6 vs 7 related to spawn.  I'll have to do some testing with different versions.
P.S. You may want to update grunt beyond 1.0.0 (if possible).  I know it can be a big hassle upgrading packages with npm -- lately I've been using yarn which has been great (on par or better than npm-check-updates for upgrading and way better for build vs dev server consistency).  Just run:
npm install yarn -g
yarn
yarn clean
yarn upgrade

The yarn clean step is optional but it should save space/time and yarn upgrade will bump versions of your packages where possible.
From then on instead of npm install (which will still work) on your build server, just run yarn.  Unlike npm, yarn is deterministic and always deploys the same node_modules structure/version where npm deploys different structure/versions depending on the order packages were installed.

Confirmed notepad test works with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(still using node 7)

The typo was only introduced while blacking the data ;)
No spaces in the path.

I just found the difference: Task Runner Explorer uses node in $(VSINSTALLDIR)\Web\External which is v5.4.1.
With node v6.3.0, which is on my PATH, it works.
@gwicksted, thank you for your help!


sometimes after load map markers is not showing

example:
map on load https://prnt.sc/hiw4oo
map after some zoom https://prnt.sc/hiw4u8

It is bug in react-native-map-view.
You have to look that up in issues.

I not sure, because before using your library markers was showing correct

can be something with http://prntscr.com/hk76uo

the problem in the code http://prntscr.com/hk7qe6


Python3 and other forks

Hey,
This is a great project!  I started playing around with it using notmuch, and I'm very impressed.
But I can't use this repository, instead I'm running a fork of a fork,

https://github.com/thperret/sifter/tree/python3
https://github.com/edgarholleis/sifter
https://github.com/russell/sifter/

So I'm wondering what we need to do to get these change integrated?

@garyp should I start consolidating things and submitting PR's?

Hi @russell. The project I initially wrote sifter for has been on the back burner for many years, so I'm not actively using sifter. I'm happy to hear you have found it useful! I'll gladly merge in PRs if you and others want to submit some of the forked changes floating around.
It'd be good to have a maintainer for the project who is actually using it. If you or anyone else is interested in maintaining sifter then I can either grant additional people commit permissions to this repo or update the README to point at a fork that's being actively developed.

I'd be happy to take over maintaining, I can't guarantee I'm going to be the most active. But I'll try.
I'm also happy to keep it under your GitHub account, I don't think we will get any benefit from moving it.  If we do i would suggest moving it to a GitHub org.  But let's not bother with that for now if your happy to grant me access.
It would be great if you could make me an admin that might be better, because I don't think contributors can add secrets in GitHub actions.  But I really don't know what you'll be presented with when you add me as a collaborator.
Also it would be great if i could get edit access to the pypi package.  So i can release new versions. https://pypi.org/user/russell/

Hello,
i'm also interested in this project and would use it in one of my company projects. So I'm also able to contribute and maintaine and  this project during my work time.
My fork is based on https://github.com/thperret/sifter/tree/python3, so it might not compatible to the other forks.
@russell I you need some features from your fork, I can integrate them in my fork, so we have a clean code base
At this time I'm adding type hints to the project, because most of my company projects are using type hints.
When I'm finished with this task, I would implement missing features, which are present in other forks.
About the Pypi Package at https://pypi.org/project/sifter/
If you want, you can give me permission to upload new packages, so I'm able to update it.

i'm also interested in this project and would use it in one of my company projects. So I'm also able to contribute and maintaine and this project during my work time.

that is great news

My fork is based on https://github.com/thperret/sifter/tree/python3, so it might not compatible to the other forks.
@russell I you need some features from your fork, I can integrate them in my fork, so we have a clean code base

My changes are pretty minor, fixed a bug, and added a github action for testing.

At this time I'm adding type hints to the project, because most of my company projects are using type hints.
When I'm finished with this task, I would implement missing features, which are present in other forks.

Nice, i've been interested to see how type hinting help with python development

About the Pypi Package at https://pypi.org/project/sifter/
If you want, you can give me permission to upload new packages, so I'm able to update it.

You and me both.
As I mentioned in my previous message, I think that if we are going to move the project we should move it to it's own org, instead of maintainers it under a personal account.  It makes it much easier as maintainers come and go, we don't have to keep adjusting the URLs and readme's to point at the current version.
I also think maintaining it under @garyp's user would be fine, but it really depends what level of access he is able to bestow on collaborators, I don't want to have to nag him if we need to change some repo configuration.
I just added https://github.com/python-sifter as an org @manfred-kaiser what do you think about using it as a place to host the repo? NB, If you decide to start using it, don't fork the sifter repo into it, contributions aren't tracked in Github on forks.

Oh @manfred-kaiser , i should have mentioned, I'm using this project to sort all my email, so i'm actively using it, at work too, but in a personal manner.

@russell @manfred-kaiser : I've added both of you as collaborators on this repository. I don't mind transferring ownership of this repository to the https://github.com/python-sifter org if that would help with your involvement (as long as I'm made one of the owners of the org). But I'd prefer to see you, or anyone else who is interested, first get actively involved in this project by submitting and reviewing pull requests.

Also it would be great if i could get edit access to the pypi package. So i can release new versions.

I don't mind dealing with releasing new versions. That's not a huge burden. As mentioned above, I'd like to see someone get actively involved in the project before I grant them permission to push versions to pypi.

It would be great if you could make me an admin that might be better, because I don't think contributors can add secrets in GitHub actions. But I really don't know what you'll be presented with when you add me as a collaborator.

It looks like the only access level available for personal repositories is "collaborator". Fine-grained permissions are only available in repositories owned by GitHub organizations. That's probably a good reason to move this project to an org, but let's see exactly which permission problems we run into with the collaborator level.

My fork is based on https://github.com/thperret/sifter/tree/python3, so it might not compatible to the other forks.

It's been a while since I looked at that fork, but I remember having concerns about how the python3 conversion was done. For example, I think that branch modified sifter to allow usage of either str or bytes for input, which doesn't seem right to me. Perhaps that's required to maintain python2 compatibility? But from a python3 perspective, since sifter is dealing with strings, it should be using solely str for everything. From a quick glance, the python3 conversion in https://github.com/russell/sifter (which it looks like was originally from https://github.com/jeffmahoney/sifter) seems like a better approach.
Also, unless someone has a need for python2 support, I'd propose we keep things simpler by dropping python2 and making sifter a python3-only project.

At this time I'm adding type hints to the project, because most of my company projects are using type hints.

That's really great. It'd be nice to have type hints in sifter.

My changes are pretty minor, fixed a bug, and added a github action for testing.

I actually also just added a GitHub Action to this repo a couple weeks ago in preparation for accepting some new pull requests :smile: I'd be happy to merge in any improvements you have in your version (I haven't looked at yours yet).

I think moving to an organization has some advantages like fine grained permissions. Your repository is mentioned on http://sieve.info/libraries but by moving your repository to a new location Github makes redirects to the new location. So this should not be a problem.
It's ok for me to be a collaborator in your repo. If more people become interested in this project, we can move to an organization.

Also it would be great if i could get edit access to the pypi package. So i can release new versions.

I don't mind dealing with releasing new versions. That's not a huge burden. As mentioned above, I'd like to see someone get actively involved in the project before I grant them permission to push versions to pypi.

We could create a Github action to upload new versions to pypi, when a new release in github is created.

My fork is based on https://github.com/thperret/sifter/tree/python3, so it might not compatible to the other forks.

It's been a while since I looked at that fork, but I remember having concerns about how the python3 conversion was done. For example, I think that branch modified sifter to allow usage of either str or bytes for input, which doesn't seem right to me. Perhaps that's required to maintain python2 compatibility? But from a python3 perspective, since sifter is dealing with strings, it should be using solely str for everything. From a quick glance, the python3 conversion in https://github.com/russell/sifter (which it looks like was originally from https://github.com/jeffmahoney/sifter) seems like a better approach.

Converting "basestring" from Python 2 to 3 will result in (str, bytes). But in your context, only "str" is used, so we can drop "bytes".

Also, unless someone has a need for python2 support, I'd propose we keep things simpler by dropping python2 and making sifter a python3-only project.

In my opinion, python 2 support will make things more comlicated. An other reason is, that python 2 is end of life.
I need python 3.6 in some of my projects and full support for type hints is supported since python 3.6.
So I think we should support python 3.6+ and drop support for older python versions.

I have merged my development branch with russell's master branch: https://github.com/manfred-kaiser/sifter/tree/feature_merge_russell
there are some errors, but I will fix them before continuing with the type hints.

Unofficial extensions
By merging the forks, I have noticed, that there are extensions implemented, which are unofficial.

pipe (completely unofficial) usage: pipe the contents of the message to a local command
rewrite (completely unofficial) usage: rewrite search replace ; search and replace are expected to be regular expressions interpreted by python's re.sub routine

In my opinion we should stay as rfc conform as possible and unofficial extensions should be implemented in a new package.

I have added type hints in my fork https://github.com/manfred-kaiser/sifter
@russell your fork is not meged at the moment, because I had some problems with unit tests after merging. One unit test fails :-( You can find the merge in my branch https://github.com/manfred-kaiser/sifter/tree/feature_merge_russell
@garyp the master works, but is not compatible with your master. I think we should first merge the pull request from @thperret

@garyp I have created a pull request for the python3 support and type hints.
I have also added you to the "python-sifter" group as owner. If you want, you can transfer owenership to this group. I think it is easier in an group instead of personal repos.
@garyp Is it possible to add me as additional owner to you Pypi Project https://pypi.org/project/sifter/ so I can release new versions?
If I want to fix some bugs, it would be faster. I want to integrate it in a tool, which I'm using in my company and I need to release new versions very fast, if there are errors.
Please dont misunsterstand me, but if I'm not able to release new versions to pypi as soon as I have fixed a bug, I have to create my own Package. :-(

I have reorganized the project.
One major change was the creation of an extension registry and extensions are registered as python entry points.
Using entry points for the extension, it is possible to extend sifter with sieve extensions from other packages.
Now it is possible to write unofficial extensions for sieve in a custom python package.
Those extensions are defined as entry point in setup.py:
It is important to use the sifter_extensions entry point!
Entry points from the sifter package:
    entry_points={
        'sifter_extensions': [
            # sifter commands
            'discard = sifter.commands.discard:CommandDiscard',
            'fileinto = sifter.commands.fileinto:CommandFileInto',
            'if = sifter.commands.if_cmd:CommandIf',
            'elseif = sifter.commands.if_cmd:CommandElsIf',
            'else = sifter.commands.if_cmd:CommandElse',
            'keep = sifter.commands.keep:CommandKeep',
            'redirect = sifter.commands.redirect:CommandRedirect',
            'require = sifter.commands.require:CommandRequire',
            'stop = sifter.commands.stop:CommandStop',
            # sifter tests
            'address = sifter.tests.address:TestAddress',
            'allof = sifter.tests.allof:TestAllOf',
            'anyof = sifter.tests.anyof:TestAnyOf',
            'exists = sifter.tests.exists:TestExists',
            'header = sifter.tests.header:TestHeader',
            'false = sifter.tests.false:TestFalse',
            'not_test = sifter.tests.not_test:TestNot',
            'size = sifter.tests.size:TestSize',
            'true = sifter.tests.true:TestTrue',
            # sifter comparators
            'ascii_casemap = sifter.comparators.ascii_casemap:ComparatorASCIICasemap',
            'octed = sifter.comparators.octet:ComparatorOctet'
        ],
    }

Each entry point is loading during parser creation. So there is no need to register extensions in code.
If you need to regiser extensions in your code, this is still possible.
Registering extensions as entry point is recommended, but if are using a single file instead of a package you need to register your extension in the extension registry.
Register a comparator, command, test by using ExtensionRegistry.register_handler:
from sifter.extensions import ExtensionRegistry
from sifter.grammar.comparator import Comparator

class MockComparator(Comparator):
    COMPARATOR_ID = 'i;vnd-mock'

ExtensionRegistry.register_handler(MockComparator)

Register an extension by using ExtensionRegistry.register_extension:
from sifter.extensions import ExtensionRegistry
ExtensionRegistry.register_extension('ext1')

I agree we should put unofficial extensions into separate python packages. And thanks for the reorg @manfred-kaiser! I had a similar idea of using entry points to auto-discover extensions. I'm glad to see it implemented.

I'll transfer this over to the GitHub org and sort out PyPi permissions in the next few days. I've got a lot of other work I'm dealing with right now, so it probably won't be until this weekend.

@manfred-kaiser i made it about 1/4 of the way through reviewing your branch before you closed the PR.  It's pretty easy to review since it's mostly type changes.  I would really like to see it merged into master, so that additional features are easier to understand.  I'll switch over to using your branch tonight and see if i come up with any feedback of value

@garyp i made you an owner of the org, i can't remember if i sent you an invitation when i created it. sorry

What do you think about creating a new Package for Python 3 and use https://pypi.org/project/sifter/ for Python 2 compatibility?
Python 2 is end of life but in some use cases it make sense to have a python 2 version.

What do you think about creating a new Package for Python 3 and use https://pypi.org/project/sifter/ for Python 2 compatibility?
Python 2 is end of life but in some use cases it make sense to have a python 2 version.

Unless the python2 version is going to be actively maintained, I'd say anyone that needs a python2 version can just fetch the last release of sifter that supported python2.

@garyp I have sent you an invitation to the org you'll obviously be an owner of the org, I have made @manfred-kaiser you and i all owners, my email is on the billing address, but i doubt we will exceed the free quota https://github.com/python-sifter

@russell Thanks for the invitation! I've joined the org but looks like you still need to make me an owner. Let me know when that's done so I can transfer this repo over.
@russell @manfred-kaiser I've added you both as maintainers to the PyPi package.

@russell Thanks for the invitation! I've joined the org but looks like you still need to make me an owner. Let me know when that's done so I can transfer this repo over.

can you try again, i could see you are an owner when i went in, but it could have been lag or some other github quirk.  Anyway, choose to make you an owner again, perhaps it will work better this time

Currently I'm using another package name, because I needed a package for my own projects, and setting up a private pypi repo for a single package seemed overkill. This is the reason, why I have created the package sifter3 (https://pypi.org/project/sifter3/)
Looking at the download statistics, there are more than 750 other downloads (in 9 days). Switching development back to sifter might break their projects or leave them without updates :-(
My next steps are:

switching from ply to sly, because of it is a modernized version of ply and the mor up to date release (sly is from 2020 and ply is from 2018) (it is from the same author)
reimplement the evaluation state to be able to set parser restrictions and extensions can add there own state to the global evaluation state. At this time the states of extensions are hardcoded, which makes it hard or impossible to implement extensions in other python packages.

Due to this changes, a new version might be incompatible with the current version of sifter because switching to sly results in a complete rewrite of the lexer (lexer.py) and parser (grammar.py) Perhaps this involves also changes to other classes. My latest release (sifter3) uses some concepts of sly (lexer and parser as objects), so there are no compatibility problems and switching to sly does not break existing projects.
So, how should we continue?

I've transferred the repository over to the python-sifter org. I'm interested in continuing to be involved in this project and I'll provide feedback as I have time available. But please don't wait on my approval for changes to the project, especially if there is consensus among both of you. I'm just glad to see someone else finding it useful and spending time to improve it.

Currently I'm using another package name, because I needed a package for my own projects, and setting up a private pypi repo for a single package seemed overkill. This is the reason, why I have created the package sifter3 (https://pypi.org/project/sifter3/)

@manfred-kaiser I've added both you and @russell as maintainers to the PyPi project. I would advocate for continuing to publish releases under the sifter package name. But if you want to use the sifter3 package name instead, that's your call :man_shrugging:

Looking at the download statistics, there are more than 750 other downloads (in 9 days). Switching development back to sifter might break their projects or leave them without updates :-(

Since the package was only published a week ago, I'd be very surprised if those 750 downloads are anything other than bots and your own usage. The Sieve protocol is a somewhat obscure part of the Internet's tech stack. There just aren't that many people actively developing with it that a new library would suddenly have that many active dependencies on it in a week's time.

My next steps are:

switching from ply to sly, because of it is a modernized version of ply and the more up to date release (sly is from 2020 and ply is from 2018) (it is from the same author)
reimplement the evaluation state to be able to set parser restrictions and extensions can add there own state to the global evaluation state. At this time the states of extensions are hardcoded, which makes it hard or impossible to implement extensions in other python packages.

:+1:

Due to this changes, a new version might be incompatible with the current version of sifter because switching to sly results in a complete rewrite of the lexer (lexer.py) and parser (grammar.py) Perhaps this involves also changes to other classes. My latest release (sifter3) uses some concepts of sly (lexer and parser as objects), so there are no compatibility problems and switching to sly does not break existing projects.

I wouldn't expect changes to the lexer and parser to cause incompatible changes to sifter's public API, since the lexer and parse are both implementation details. But if you do need to make incompatible changes for whatever reason, I don't see a problem with that as long we're using semantic versioning and making it clear that this is a breaking change. The project is still young enough (in usage, if not in years :smile:) that I think it's fine to make breaking changes.

@manfred-kaiser

Currently I'm using another package name, because I needed a package for my own projects, and setting up a private pypi repo for a single package seemed overkill. This is the reason, why I have created the package sifter3 (https://pypi.org/project/sifter3/)
Looking at the download statistics, there are more than 750 other downloads (in 9 days). Switching development back to sifter might break their projects or leave them without updates :-(

It's easy for them to switch, so i don't see that as an issue. If you want you could release a new major version that fails to install and advises them to change packages back to sifter. Or prints a deprecation warning if you want to be nicer about it.
it's up to you regarding the naming, i would say keeping the same name as the repo is helpful,  so it would be best to either keep the name sifter, or rename the entire project to sifter3 given that.  I would think keeping the name sifter is easier.

My next steps are:

switching from ply to sly, because of it is a modernized version of ply and the more up to date release (sly is from 2020 and ply is from 2018) (it is from the same author)
reimplement the evaluation state to be able to set parser restrictions and extensions can add there own state to the global evaluation state. At this time the states of extensions are hardcoded, which makes it hard or impossible to implement extensions in other python packages.

Due to this changes, a new version might be incompatible with the current version of sifter because switching to sly results in a complete rewrite of the lexer (lexer.py) and parser (grammar.py) Perhaps this involves also changes to other classes. My latest release (sifter3) uses some concepts of sly (lexer and parser as objects), so there are no compatibility problems and switching to sly does not break existing projects.
@russell @garyp So, how should we continue?

nice, i would say just release it under a new version, but i don't expect that we would see many complaints, the bit that i have used it, i never touched the lexer or parser directly.

I have moved my repository of sifter3 to the python-sifter group, because it was not connected to the old sifter project.
I will also keep the new name "sifter3" for the python3 version.
So we can close this issue ticket and the pull request.


Vertical cursor position inconsistent: starts at 2nd item for .lnk files

Microsoft PowerToys version
0.67.1
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
PowerToys Run
Steps to reproduce

Make a shortcut: Alt + left click + drag any program
Name it anything "MY_TERMINAL_PROFILE_SHORTCUT"
Right click > properties
Change the target to Windows Terminal with a specific profile:

C:\Users\MY_USERNAME\AppData\Local\Microsoft\WindowsApps\wt.exe new-tab --profile "MSVC"

Move the shortcut to a place where PowerToys Run will find it

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Open PowerToys Run
Search for your shortcut
Repeat opening PowerToys Run and searching until it appears at the top
The cursor is counterintuitively at the second item

✔ Expected Behavior
I expect to see the vertical cursor (focused/selected item) always start at the top.

❌ Actual Behavior
It starts at the second item, which is not useful.

Other Software
Windows Terminal

Are you still experiencing this issue? /needinfo

I don't see the issue anymore. I'm on the latest version - 0.85.1.


world not load

Can someone help me ? I am adding a world that I downloaded to my server, put it in the root folder of the server, it is imported into the main world folder but the server does not recognize this world because it does not appear for any plugin, I am using projectworld to manage my worlds

Please obtain the latest version on ore.
Non Sponge worlds require importing using the /world import command


Remove quick start stub and links from docs

Since the quick start doc isn't written, "If you're looking to move a little faster, see the quick start" is a bit of a contradiction.
PR Type

Docs Pull Request

@njvrzm Please rebase it with all changes from master and it should be able to pass the gate.

@njvrzm ping

Done, apologies for the delay :)


GPU Cache not freed on Raspberry Pi

I want to create a guestwlan qr code display with photo diashow on my raspberry pi with the official display. I am using archlinux with kivy 1.9.1. that i recompiled as otherwise it would not load the raspberry specific drivers for the GPU.
I can display up to 4 pictures with 64mb GPU mem and ~10 with 128 GPU mem. I am not using any XORG, just tty1. the pictures I use are the gnome backgrounds which are quite large in size but not in memory.
Now I was told that the GPU saves the pictures in RAW with its full size. And thats why I have the problems I am currently facing. However I always change the source of the picture, so only 1 picture should be cached at a time and not all together. As previously chatted with @Cheaterman on IRC this seems to be a bug, not a user problem, but I might be still wrong.
Converting all pictures before also does not solve the problem, as only the max limit goes up to 200 or so (not tested, just guessed) but only works around the actual problem. I've also tried carousel, but this seems to cache every picture which would not work at all.
The full code can be found here. I've not crossed anything, but you will likely understand it:
https://gist.github.com/NicoHood/481ec0af20409c5f795dabd4cd1748fb

@NicoHood you set the image to keep_data = True. Try False.
Also have you tried making sure that you delete references to the Image Widgets each time and create new ones? I bet that would allow you to overcome the limitation.

keep_data may help, or not. About GPU, look at the Cache default, they may be too high for your application. Check kivy.cache.Cache._categories
A way to reduce is to do `kivy.cache.Cache._categories['kv.texture']['limit'] = 50 for example
It may or may not work, but looking at the cache is the first thing i would try.


typescript support & type description

Todo

[ ] Complete the description file
[ ] Documentation update
[ ] Update Typescript template to use import instead of require
[ ] Add mage methods for creating topics and user commands (so that we may provide completion on them)

The definition file will be picked up both in JavaScript and Typescript
projects.
The project templates have been split into two so that we may actively
support Typescript-based MAGE projects.

You should use declaration merging in your .d.ts file to make types available, something like:
declare var mage: mage.IMage;

declare namespace mage {
  interface IMage {
    // the actual mage object def
  }

  interface IState {
  }
}

export = mage;

// note: a namespace can only be merged with a var if it
// contains only types and interfaces; using class or abstract
// class will prevent the compiler from merging

Another good example: DefinitelyTyped/DefinitelyTyped/types/angular/index.d.ts
This will allow users to have access to both the methods on mage and also access the types themselves, eg.
import mage = require('mage');

export function execute(state: mage.IState, cb: mage.UserCommandCallback) {
  state.respond(mage.listModules());
  cb();
}

See this quick&(very)dirty declaration file I wrote over the weekend: https://gist.github.com/christopherobin/9969d18277de74b218f9ca7007906d0a

@christopherobin I hadn't seen your comment, but could you look at the latest version of the file?
I did it the way it is now because with declaration merging I had issues with either namespace methods not being available or object instance methods not being available. Not sure if that was a bug or an issue, but I think merging works with class and namespaces, not object instances and namespaces.

Coverage remained the same at 29.168% when pulling 754b4e8757600ec16b0e8e07df3bac4cd351abc8 on stelcheck:features/typescript into 216ba936211c2ff65ec5d2b87fe173c289e26827 on mage:master.

Coverage remained the same at 29.168% when pulling 754b4e8757600ec16b0e8e07df3bac4cd351abc8 on stelcheck:features/typescript into 216ba936211c2ff65ec5d2b87fe173c289e26827 on mage:master.

Pushed an update to the definition file.
I left a whole bunch of Todos in it, wherever things need to get completed.
I would need a bit of help with the following:

Completing todos
Testing (since its perfectly possible to write code that compiles but crashes at runtime because of discrepancies between the existing code and the type definition files)

Help most welcome @ronkorving @AlmirKadric @christopherobin

Type definition has been completed (thanks to @ronkorving for the help)]
The code is now almost ready for merge. Last step is to:

Make sure we get compile errors wherever it make sense
Make sure that valid code compiles properly
Make sure that compiled code does not crash at runtime due to type definition file discrepancies or other issues

@AlmirKadric @kefniark @ronkorving @christopherobin @nullorvoid Comments and test results welcome!

LGTM


Add c++ linking example

I added an example for the compilation and linking of a bundled C++ library (#296).

Nicely done @thibaultbarbie !
Thanks for the great help @j-haj !


add decision result count check

What changed?
add decision count check on RespondDecisionTaskCompleted request per domain

Why?
we need to track the large decisions and have the kill switch to prevent large partition reads we had recently

How did you test it?
int tests

Potential risks
no, its no-op by default

Pull Request Test Coverage Report for Build 8b58bc76-d308-45f6-a830-77bf392f651a

9 of 13 (69.23%)  changed or added relevant lines in 3 files are covered.
123 unchanged lines in 13 files lost coverage.
Overall coverage decreased (-0.04%) to 56.368%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

common/util.go
4
6
66.67%

service/frontend/workflowHandler.go
4
6
66.67%

Files with Coverage Reduction
New Missed Lines
%

service/history/execution/mutable_state_task_refresher.go
1
74.4%

common/membership/rpServiceResolver.go
2
73.58%

common/persistence/executionManager.go
2
75.5%

common/persistence/statsComputer.go
2
95.71%

service/history/execution/mutable_state_builder.go
2
69.86%

common/task/fifoTaskScheduler.go
3
84.54%

service/history/task/transfer_standby_task_executor.go
4
90.4%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
6
49.77%

service/history/shard/context.go
9
65.23%

service/history/execution/context.go
14
66.93%

Totals

Change from base Build e88b4784-5874-47ab-9197-306b055c39ac:
-0.04%

Covered Lines:
78624

Relevant Lines:
139483

💛  - Coveralls


Where are the Headers and Footers?

I can't find the header and footer boilerplate any where... please help me locate them in the docs.

Did you try the doc search bar?

Header: http://react.semantic-ui.com/elements/header
There is no footer.

@levithomason of course i tried the search bar, and it yields no relevant results!
A search does pull up the header tag (H1,H2,etc), but if i'm asking about a footer too, then the context of header is most likely a "header nav bar", not a header tag.
So I take it there is no header nav bar boilerplate then?

Correct, the docs show all the supported components.  Although, you're probably wanting a Menu for the "header nav".
http://react.semantic-ui.com/collections/menu


rados: implement binding for rados_write_op_remove

This PR implements binding for rados_write_op_remove RADOS Write operation.

Checklist

[x] Added tests for features and functional changes
[x] Public functions and types are documented
[x] Standard formatting is applied to Go code
[x] Is this a new API? Is this new API marked PREVIEW?

@mergifyio rebase


Uploading token image issue

Hi,
I've been trying to add our token image but cannot as uploads are disabled.
Can you advise how I can upload please?
Thanks

Added here https://github.com/TrustWallet/tokens/commit/13a29484034fd0391c4f98c6876e753a899b7784, you uploaded to wrong directory

Thank you kindly Sir :)


Velbus in Home Assistant not detecting all modules

Hi guys
I have used OpenHAB to tweak my Velbus setup for a few years on an Raspberry Pi 4b, but recently decided to jump on the HA train.
I bought a HA Yellow, installed it, pretty neat software, detects a whole lot of stuff in my house (Musiccast, Samsung TV, Doorbird, ...)
When I added the Velbus device, I noticed that the hub only detects 24 of the 39 modules. Looking around I found that the last "found" address is decimal 70. The ones not found are :

91,92,93 (GP thermostats)
101,102,103 (GP buttons)
104,105 (8PBU)
106 (PIRC)
201,202,204 (4RYNO)
203 (4DC)
205 (DMI)
210,211 (GP buttons)
220,221 (GP thermostats)
212 (8PBU)
250 (SIG) this one is not important 😏

FYI, all the modules that aren't found are in a 3rd cabinet.
The modules in the first and second cabinet are all found.
OpenHAB on my Rpi never had any problems with that.
Any ideas if there is anything I can do? I tried to reload the hub a few times, doesn't help.
I'd rather not change the addresses, as it's easier for me to find the correct module.
Kind regards
Bernd

can you enable the debug loggin on the velbus integration? then reload it and attach it to this ticket?

Sure thing, here goes (added the json also, just in case)
home-assistant_velbus_2024-08-25T13-42-33.336Z.log
config_entry-velbus-01J4VC8MG5DWCG406H5TCV40XN.json

@Bernd-97 I'm having the exact same issue. I've already mentioned it in the Velbus forums here:
https://forum.velbus.eu/t/velbus-home-assistant-missing-module-instances/17402/19
Have you found a fix for this or should I downgrade?

serial.serialutil.SerialException: [Errno 2] could not open port /dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00: [Errno 2] No such file or directory: '/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00'
does this file exsists on your system?
if not your integration is wrongly configured

@c-soete No not yet, but I don't find much time to try and fix it
@Cereal2nd I do have that file, took a screenshot with the VS Code add-on.

But I can't seem to find that velbuscache. Where exactly can I find that?
Extra update: I changed one of the addresses (201) to number 60, which is in the range of modules that the binding did find (I have a number 61,62,63 and 70 which are detected), and reloaded the binding. Didn't help, still only 24 modules found.

fo the address changes the velbuscache needs to be cleared.
either do this via the HA service page or do this via the filesystem (while ha is stopped)

i could really use some help here, there are mistakes in the protocol definition file:
https://github.com/Cereal2nd/velbus-aio/blob/master/velbusaio/protocol.json
if you could have a look thats everything is correct for your modules we may be able to solve it.
This is the biggest pain in velbus, the protocol definitions are only availabel in pdf, so we need to extract the needed info for each module into this file, once its in there in 99% of the cases the modules will just work in HA.

Does this also apply to me, because I want to help as well.
Where can I find the protocol definition for each one of my modules in my system?

every little item that gets added would be helpfull
https://github.com/velbus/moduleprotocol

I honestly don't know what magic happened, but it works
All the modules are added and entities can be controlled.
I had some help from a friend, we found the Velbus cache, removed it, reloaded the Velbus integration.
We changed some addresses (201 to 205 -> 31 to 35) for testing.
That got added and I could control them, then I changed them back, did the cache-removing, reloading again.
And so it works 🤷
I do think that the integration takes a really long time (in the background) to actually process everything.
Here's the json with all the addresses (as they were when all the trouble started)
config_entry-velbus-01J4VC8MG5DWCG406H5TCV40XN.json

@Bernd-97 It also magically worked for me as well. I think our issue might has something to do with the long scanning time of the modules as I mentioned here:
https://forum.velbus.eu/t/velbus-home-assistant-missing-module-instances/17402/34
Did you also reload while the integration was already scanning in the background because I think that was what caused my issue?

I deleted the Velbus cache, did a full reboot (so not a restart)
When it was back up, I checked the Velbuscache-folder, and saw that everything was there
I added the file, you can see that it takes quite some time for everything to get scanned

nr 1 got added 09.03, nr 250 09.14, so that's 11 minutes for me
Anyway, everything seems to be okay for now 😄


Can Rancher Manage HAProxy Reverse Proxy/Load Balancer from UI

I was reading this documentation:
http://rancher.com/docs/rancher/v1.2/en/cattle/adding-load-balancers/
But I am confused as to whether Rancher provides capabilities to manage a reverse proxy/load balancer for a particular group of containers.
For example, if I am running:
Docker Program A
Docker Program B
Docker Program C
Each one having their own domain attached, does Rancher provide support for this?

This explains how to add it through the UI: http://rancher.com/docs/rancher/latest/en/cattle/adding-load-balancers/#load-balancer-options-in-the-ui
This is the description for using the CLI: http://rancher.com/docs/rancher/latest/en/cattle/adding-load-balancers/#adding-a-load-balancer-with-rancher-compose
The loadbalancer that is mentioned and included within Rancher is based on HAProxy.


[ZEPPELIN-498]Manual upgrade procedure for Zeppelin

What is this PR for?
Describe Manual upgrade procedure for Zeppelin.
What type of PR is it?
Documentation
What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-498
How should this be tested?
Install jekyll on a local machine.
Run website.
Check new page in localhost.
Screenshots

Thanks for the documentation.
Looks good to me!

looks good

@mwkang Thx! Looks good : )

Looks good


feat(protocol-library): remove substeps for Mix step

blocked
Need to confirm that this is the desired design, since the issue it addresses is old & a little unclear.
overview
Closes #2759 - Mix steps (aka "standalone Mix") no longer display substeps in the step list sidebar.
changelog

review requests

no substeps for Mix steps
still have substeps for Transfer steps, Pause also unchanged

Reading through the conversation that went on around #2759, it seems like a) this pr actually removes desirable behavior, and b) the original issue was misunderstood or fixed by intermediate changes.
Given that, I think that this PR and #2759 can be closed.

Original ticket is old, we don't want to do it anymore


x/net/websocket: override the Host header

What version of Go are you using (go version)?
Relevant as of today's master of x/net/websocket (see below).
Does this issue reproduce with the latest release?
Yes.
What did you do?
Tried changing the Host header appearing in the initial WebSocket query by creating a config through websocket.NewConfig and changing its host through Header.Set("Host", "example.com").
What did you expect to see?
That the Host header would be set to example.com.
What did you see instead?
That the Host header was config.Location.Host.
In the current master, this is set on line 411 of hybi.go, in hybiClientHandshake.
Is this the intended API? It means that it becomes impossible to change the Host header without also changing the config.Location.Host, which might be undesirable (in my use case because it has the undesired side effect of changing the TLS SNI field, which is also based on config.Location.Host, and I can't have the SNI host and the WebSocket hosts be synchronized like that).
Given that there's a field called Header, I would have expected that to impact what headers end up being set; I would have been less surprised if hybiClientHandshake had used Header.Get("Host") if that header is set, and then fall back to config.Location.Host if it's not (similar to what you would see with e.g. curl).

Header is documented as "Additional header fields", and I think the protocol pretty much maps the location host to the host header. If you want a different TLS SNI, have you considered setting TlsConfig?

@FiloSottile Thanks for the comment.
Hm, any particular part of the protocol you're thinking of? I'm not at all familiar with the specification, and all I can see in the RFC is the following:

The client includes the hostname in the |Host| header field of its handshake as per [RFC2616], so that both the client and the server can verify that they agree on which host is in use.

This to me sounds like it ought to be possible to define the Host header independently of the location host; RFC2616 is HTTP and there you'd expect full freedom in setting Host.
Regarding the documentation, do you mean that the "Additional header fields" in the documentation of Config just refers to "header fields in addition to Host"? If so, that could probably be a bit clearer. And again, if that's the intent, it leaves client code with no good way of modifying that header (which, again, may or may not be allowed according to the protocol).
And yep, thanks for the reference to TlsConfig; I actually came across this particular hack while working on HTTP and in that case, modifying SNI indirectly through the location host, then modifying the HTTP Host accordingly, turned out to be the simplest approach, so I figured the same was probably the case for WebSocket (and honestly I never found a way to manipulate SNI hosts just with tls.Config; would be happy to hear if it's simpler than I think it is though).


Outdated fps pattern after new update.

Same error as couple of versions ago. Hopefully will be fixed soon.

duplicate, closed


bosh-lite on virtualbox and reboot issues

According to #47 reboot on VirtualBox is not supported and we should do the following to recover the state every time:

Update state.json by removing current_manifest_sha
Deploy bosh again with bosh create-env # BTW, we can skip step one by using the option --recreate
Run bosh cck

The problem is that the step 3 is inconvenient and unreliable.
One thing which is often happening that there is another task running which has to be canceled before bosh cck could run
$ bosh -d cf cck
Using environment '<IP_ADDRESS>' as client 'admin'

Using deployment 'cf'

Task 1584

Task 1584 | 06:56:02 | Error: Unable to get deployment lock, maybe a deployment is in progress. Try again later.

Task 1584 Started  Thu Dec  7 06:56:02 UTC 2017
Task 1584 Finished Thu Dec  7 06:56:02 UTC 2017
Task 1584 Duration 00:00:00
Task 1584 error

Performing a scan on deployment 'cf':
  Expected task '1584' to succeed but state is 'error'

Exit code 1

$ bosh tasks
Using environment '<IP_ADDRESS>' as client 'admin'

ID    State       Started At                    Last Activity At              User  Deployment  Description   Result
1579  processing  Thu Dec  7 06:55:34 UTC 2017  Thu Dec  7 06:55:34 UTC 2017  hm    cf          scan and fix  -

1 tasks

Succeeded

Even after canceling of running task and running bosh cck the final state of the deployment is not reliably restored
$ bosh vms
Using environment '<IP_ADDRESS>' as client 'admin'

Task 1611. Done

Deployment 'cf'

Instance                                                  Process State  AZ  IPs           VM CID                                VM Type
adapter/eb8beac0-a791-4167-bc86-e1a0c451f817              running        z1  <IP_ADDRESS>  dd4311db-ce73-490a-7960-61cb500b7ee2  minimal
api/63fd35c1-b608-48e5-950c-6565c4c2c8f9                  running        z1  <IP_ADDRESS>  b17ef6cf-037b-4d54-7cb0-f927f5f25ea7  small
cc-worker/357df5d4-374d-43de-be9d-1f16064234cd            running        z1  <IP_ADDRESS>  0d20a358-f14e-4211-478d-4374d7c56c77  minimal
consul/858ffa39-15dd-4728-806b-ea5c3289611b               running        z1  <IP_ADDRESS>  f8413068-0e24-4e61-587f-2db86caa8c4f  minimal
database/7c28df4b-bfdf-4fe1-920d-3adc04bb8257             running        z1  <IP_ADDRESS>  dd50be2c-d207-4702-6aa8-a794c3aa6b0e  small
diego-api/1f9a890e-7586-40c7-8ab6-088a2fd15a5a            running        z1  <IP_ADDRESS>  05cc3a4b-7e59-423c-7e48-3d361d7a6c05  small
diego-cell/58716215-a9cf-4b06-993c-3c90ef8bab98           failing        z1  <IP_ADDRESS>  b2bc5774-8f9b-46f0-5007-7915f8e95b8c  small-highmem
doppler/25dbf04c-e372-4b6b-98d6-a6271f7d6986              running        z1  <IP_ADDRESS>  3fdc9ea9-2e26-437e-4ebe-598c9403b8f6  minimal
log-api/2efeecd3-62a2-4aa3-9434-8a6dc1a794b8              running        z1  <IP_ADDRESS>  dc18939b-50f0-4a25-6f9b-c10faa1120f2  minimal
nats/2e8b4d79-9b1f-402b-a22a-82c609baca46                 running        z1  <IP_ADDRESS>  2fafc3a3-db01-4f18-7524-2d027ab1881d  minimal
router/803bdb84-613a-4110-952d-ccf4444dda9c               failing        z1  <IP_ADDRESS>   aa0db509-3194-4566-5c1a-e648b314fcd9  minimal
scheduler/3267cc65-5206-4e3c-9750-1540335dff87            running        z1  <IP_ADDRESS>  1c4f4e8c-687c-4774-6ec5-2e43f19f436e  minimal
singleton-blobstore/fd56c303-07f4-454c-8389-3013cb3493da  running        z1  <IP_ADDRESS>  c9a20ea1-2330-4b60-7813-b5d81e5da988  small
tcp-router/65ba9000-31d0-474c-8ddf-2137676035b2           running        z1  <IP_ADDRESS>  9ef88acc-c42b-4bcd-54ed-03d215dd72cf  minimal
uaa/5483ecc9-6369-44ba-9bb8-8887d4fff55e                  running        z1  <IP_ADDRESS>  488bae2a-ee7b-4912-5522-0009a1e674c1  minimal

15 vms

Succeeded

And running bosh deploy ... again usually doesn't solve help to recover.
What more or less always works is instead of doing cck just deleting the deployment (after all running tasks are canceled) and deploying again with operations/use-compiled-releases.yml. But still this all takes quite a while and pretty inconvenient.
What is the exact problem with bosh-agent on VirtualBox? Is it generally solvable?

What is the exact problem with bosh-agent on VirtualBox? Is it generally solvable?

it was about disk mounting. fairly trivial but wont fix the containers since containers will be gone after a reboot.

The problem is that the step 3 is inconvenient and unreliable.

what about turning off resurrector and running cck
$ bosh update-resurrection off
$ bosh -d ... cck --resolution delete_vm_reference
$ bosh -d ... deploy ...

Rebooting the virtualbox vm's or shutdown + restart is still unsupported. The above solution(s) will help to recover if the director database is intact.


[#noissue] Add port binding failure log

Codecov Report

Merging #7217 into master will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #7217      +/-   ##
==========================================
- Coverage   39.11%   39.10%   -0.02%
==========================================
  Files        3299     3299
  Lines       95824    95830       +6
  Branches    11840    11841       +1
==========================================
- Hits        37486    37476      -10
- Misses      55423    55439      +16
  Partials     2915     2915

Impacted Files
Coverage Δ

...pinpoint/collector/receiver/grpc/GrpcReceiver.java
0.00% <0.00%> (ø)

...vercorp/pinpoint/rpc/packet/ClientClosePacket.java
55.55% <0.00%> (-11.12%)
:arrow_down:

...pc/server/LoggingServerMessageListenerFactory.java
90.00% <0.00%> (-10.00%)
:arrow_down:

...navercorp/pinpoint/rpc/common/SocketStateCode.java
82.92% <0.00%> (-2.44%)
:arrow_down:

...cluster/zookeeper/ZookeeperClusterDataManager.java
52.90% <0.00%> (-1.94%)
:arrow_down:

...point/rpc/client/DefaultPinpointClientHandler.java
72.07% <0.00%> (-0.98%)
:arrow_down:

...orp/pinpoint/rpc/server/DefaultPinpointServer.java
79.09% <0.00%> (-0.35%)
:arrow_down:

...rc/main/java/com/navercorp/pinpoint/test/Item.java
70.00% <0.00%> (ø)

.../pinpoint/rpc/client/PinpointClientHandshaker.java
65.73% <0.00%> (+1.39%)
:arrow_up:

...tor/metric/datasource/DefaultDataSourceMetric.java
78.12% <0.00%> (+3.12%)
:arrow_up:

Continue to review full report at Codecov.

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


Add missing Javadoc after removing algebra package

After removing Valences.*, Option, Try and Either need javadoc for

get()
orElse*()
to*()

Maybe Traversable needs additional javadoc, too.
Also take a look at Gen and Arbitrary.

Already fixed.


I'd like to add Stash support

I'd love to see attlassian stash support being possible for this tool for us to consider using at work. Do you guys have any meta opinions on that?
I'd imagine the easiest way to do that is to pull the github code out into a separate module that has a clear set of hooks it registers with the mention-bot. We could then have a separate module that implements those hooks for stash and exposes its own configuration.

mention bot is on npm as a pure module. You should be able to depend on that to build your integration

+1 Our company is using the self hosted version of bitbucket.


Updates out of date documentation

Looks like the names for these changed at some point?

:+1: Thanks for that!


NIFI-6955 close streams in Reader/writer mock

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
ArrayListRecordReader (nifi-mock-record-utils) obtain inputStream in own constructor but don't close this.
ArrayListRecordWriter has the same problem with outputStream.
So if in custom processor i use
InputStream in = session.read(flowfile)
reader = factory.createRecordReader(flowfile, in, logger)
reader.close()
Tests fail and complain that file didn't close.
Add streams and close them in close()
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you verified that the full build is successful on both JDK 8 and JDK 11?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Thanks @IlyaKovalev! I have merged your changes to master.


Request for Improving Firestore Data Insertion Script

#605

issue goes here

Proposed Changes

To enhance portability and make the script more adaptable to different environments, consider implementing relative file paths. This change would allow the script to work regardless of the user's specific file structure and location.
While script includes basic error handling, you can further improve it by catching more specific exceptions and providing informative error messages. This enhancement will help diagnose issues more effectively and provide users with better feedback when errors occur during JSON file reading or Firestore data insertion.

Additional Information

Any additional information or context

Checklist

[ x] Tests
[ x] Translations
[ x] Documentations

Screenshots

Original
Updated

** Original Screenshot **
** Updated Screenshot **

@AnirudhPanda Please review this


sync.cancel(); not working propperly on second cancel()

When canceling the sync process the first time, it works perfectly.
Starting the same process again and cancel again, contentsync still downloads the file.
It's easy to reproduce from the sample code. Just put sync.cancel() in the progress-callback and start it two times.
sync.on('progress', function(progress) {
  sync.cancel();
  console.log("Progress event", progress);
  app.setProgress(progress);
});

Only tested on iOS.

I'd like to work on this as my first contribution. Can you please help me get started with it?

@mansimarkaur For sure! Fork this repository, make your changes in separate branch and submit a pull request please.


Project not buildable after inital checkout when using OpenJDK

Error thrown while building:
e: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
JDK:
openjdk 14.0.2 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 14.0.2+12-Ubuntu-120.04, mixed mode, sharing)

Android Studio version: 4.2 RC1
OS: Ubuntu 20.04.2 LTS
No changes were made to the project. Simply cloning and trying to build as instructed by the Code Lab.

For those who may have this issue, I've managed to solve it by upgrading Gradle plugin:

On project level build.gradle (not app level), I've updated from 3.4.0 to 4.2.0:
classpath 'com.android.tools.build:gradle:4.2.0'

On gradle-wrapper.properties file, I've updated from 5.1.1 to 6.7.1:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip.

Then I synced the project again and I was able to run the project with no errors.
Hope it helps 😃


Reinscribe Batch

Now that we have batch inscriptions. It would be nice to also have the ability to do batch inscriptions onto the same sat.

Wanna take a crack at it?

Yeah I was thinking that but I might need a little help with this one? To start could you give a brief summary of what it would entail. Should I look at the batch PR for some guidance too?

It would add a new mode called reinscribe. If a parent is present all inscriptions would point to the parent sat/inscription and if not they would all just be reinscribed onto the first sat in the output

Is it worth adding a line in the batch inscribing section of the docs about the spacing requirements for .yaml files?
I’ve already had a couple of people ask about it so might make it more understandable for people not used to .yaml

There’s a couple of bits of grammar that need fixing in it so wondering if I should add that in a PR?
Didn’t think it was worth creating a whole new issue, so just put it here being the closest topic

@sanjfomojis just add a PR :)

Close by #2749

This isn't closed in #2749. This feature is huge graffiti artists desire

oh dang I don't think this covers the case I was hoping it would.. here is what I am hoping to do


Why is there no FractionalEncoder class in the new version?

Why is there no Fractional Encoder class in the new version?
How should floating point types be handled now?

FractionalEncoder was removed for several reasons: (1) low quality of code/bugs; (2) its performance was hard to predict (when do coefficients overflow plain_modulus), making it unusable in practice; (3) no batching (same is true with IntegerEncoder).
Instead, we strongly recommend people use the CKKS scheme (CKKSEncoder) for arithmetic on real/complex numbers, which has vastly better performance than the FractionalEncoder ever did.


adjustment of filter

Codecov Report

Merging #232 (13de339) into v2.2.0 (9ead5b6) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           v2.2.0     #232   +/-   ##
=======================================
  Coverage   66.11%   66.11%
=======================================
  Files          71       71
  Lines        5374     5374
=======================================
  Hits         3553     3553
  Misses       1334     1334
  Partials      487      487

Continue to review full report at Codecov.

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

Codecov Report

Merging #232 (13de339) into v2.2.0 (9ead5b6) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           v2.2.0     #232   +/-   ##
=======================================
  Coverage   66.11%   66.11%
=======================================
  Files          71       71
  Lines        5374     5374
=======================================
  Hits         3553     3553
  Misses       1334     1334
  Partials      487      487

Continue to review full report at Codecov.

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


unittest extension: skipIfExecutableNotFound

Useful for tests that rely on certain executables being in path. would effectively boil down to this:
import shutil
def skipIfExecutableNotFound(executable):
    return unittest.skipIf(shutil.which(executable) is None, executable + " is not installed.")

https://gitlab.com/coala/coala-decorators !!!!!!!!!

we moved there, Mischa :(

ahh shit I forget that everytime...

moved to https://gitlab.com/coala/coala-decorators/issues/5


answers_delimiter = "\r\n"

Hello!
I am a somewhat new rails programmer and just found your gem. Since the gem surveyor does not work for me and is way too old, I decided to play around with it.
While playing around with checkboxes, I ran into this problem.
Answer text is invalid (when the no checkbox in a yes/no question is checked and saved)
I narrowed it down to answer_text: "{"0"=>"0", "1"=>"no"}" and the issue being answers_delimiter not breaking up the submission correctly. When I changed "\r\n" to """ in the checkbox.rb model inside validate_answer it still doesn't work.
      def validate_answer(answer)
        super(answer)

        if rules[:presence] == "1" || answer.answer_text.present?
          answer.answer_text.split("\"").each do |value|
            answer.errors.add(:answer_text, :invalid) unless options.include?(value)
          end
        end
      end

Is there a way to fix this?

answer_text: "{\"0\"=>\"0\", \"1\"=>\"no\"}"

Just wanted to leave a comment that "\r\n" is not a default behaviour on all browsers. On Mac, pressing enter will save only "|n" for example.


Just a quick question

how do i remove the slashes from my prefix's when ever i do it in the permissions file, the plugin fails
here is my permissions.yml file:
https://pastebin.com/hCUP2L1E

Try to add your prefix between ' '

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


Update README.md

- What I did
- How to verify it
- Description for the changelog

/approve cancel


add quotes around name and namespace variables in yaml

For forward port of 2.2 issue https://github.com/open-cluster-management/backlog/issues/10273

/hold


Fix Trigger Functionality

Motivation
When we moved to support schemas on functions, we moved away from customSerdeInputMap as the base structure for FunctionDetails, but rather went to inputSpecs. Some parts of the code weren't updated as part of that change. This pr fixes that.
Modifications
Describe the modifications you've done.


Generic prover: add public input size

Will be used later

Where will it be used? I guess it is not used in the zkvm project... So in that case it will remain as 0 I suppose.

I am using public inputs at the moment for the serialization subcircuit, to load the kimchi limbs in the circuit. We could also use lookup tables.


chore: adaptations for leanprover/lean4#3123

This is the adapation PR for leanprover/lean4#3123. It will be merged to bump/v4.6.0 after `#9452.

[x] depends on: #9452

bors merge


feat: selection actions in sub-menu

This PR puts selections actions into a sub-menu abstraction level, like below.

But the interesting part is the structure that it brings in to the menu itself. By leveraging recursive call into <MenuList /> component, whenever we give submenus to a specific menu, we are being able to create as many groups deep as we can.
Just need to provide the correct data in <HeadCellMenu /> and it takes care of everything.
https://user-images.githubusercontent.com/29652890/218988800-003d7576-7040-4ef5-b72e-6439daefe93e.mov

Still LGTM, cannot speak for the design spec.


feature: instance_status 接口优化 (closed #2149)

PR
CheckList（PR Assigners）
确认已完成以下操作：

[x] 已将分支与当前合入分支同步
[x] 已在关联 Issue 中补充「功能自测」部分内容
[x] 已更新关联 Issue 的状态 backlog -> todo -> for test -> tested（需通过测试同学测试） -> done
[x] 将 PR 添加上 pr/reviewable

CheckList（PR Reviewers）
确认已完成以下操作：

[ ] 检查关联 Issue 「功能自测」部分内容
[ ] 必要时打回 pr/reviewable，要求重新修改
[ ] 及时 Approve

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

Project coverage is 74.87%. Comparing base (e5b5681) to head (f64287f).

Files
Patch %
Lines

apps/backend/subscription/handler.py
84.61%
8 Missing :warning:

apps/node_man/periodic_tasks/sync_cmdb_host.py
0.00%
2 Missing :warning:

Additional details and impacted files
@@              Coverage Diff               @@
##           v2.4.5-dev    #2150      +/-   ##
==============================================
- Coverage       74.87%   74.87%   -0.01%
==============================================
  Files             404      404
  Lines           28394    28401       +7
==============================================
+ Hits            21261    21265       +4
- Misses           7133     7136       +3

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


Fix deprecated Not quoting a scalar starting with @ on fixtures

Ref: https://github.com/nelmio/alice/pull/290

Travis would be greener with this.

Oh, didn't see you 1.x branch. Will redo that.


skip ppc64le due to missing upstreams

The ppc64le arch is now getting skipped upstream (see https://github.com/conda-forge/gdal-feedstock/issues/918), so it needs to be skipped here too.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

This will help to resolve the bot error for the libgdal39 migration for GMT 6.5.0 stable - https://conda-forge.org/status/migration/libgdal39:
                linux_ppc64le_: Could not solve for environment specs
The following package could not be installed
└─ gdal 3.9.*  does not exist (perhaps a typo or a missing channel).

@conda-forge-admin, please rerender

@conda-forge-admin, please restart ci

@conda-forge-admin, please rerender


[dev] Blobstream Funcs

Finish general functions implementation:

tests
missing functions
SKIP initialize

Refs
https://github.com/celestiaorg/blobstream-contracts/blob/ddd2b50ad68af541c27f3dffbe4fdfc4f843bb8c/src/Blobstream.sol#L185

handled by #47

Finish general functions implementation (tests + missing functions). Follow up to #47.
@JordyRo1

Will work on it

Hey @drspacemn the implementation of the given functions is done, but I think I need the SuccintGateway in order to write proper tests. Do I try to test the logic without the SuccintGateway or wait for the issue #73 to be over ?


commandNotFoundHandler: use stderr and exit code 1

Fixes: #1395
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

LGTM

And again - CI times out after an exit 0. We need to look into this on Tuesday.

@rh-atomic-bot r+

Actually I think we should just do
exit(exitCode)
Since we document in at least podman run that the exit is 125.


TypeError: this._icon.setNativeProps is not a function (it is undefined), js engine: hermes

Current behaviour
With expo SDK 50 we get:
TypeError: this._icon.setNativeProps is not a function (it is undefined), js engine: hermes
this happens when you change a tab and both tabs have Icons. If we remove the icons, then tab changing is still fine.
Expected behaviour
App should not crash
Your Environment

software
version

react-native
0.73.2

react-native-paper
~5.12.3

expo sdk
SDK 50

Should be fixed in newer release. Are you on latest version?
https://github.com/web-ridge/react-native-paper-tabs/commit/a85eaaf0f7fb3227a4a87b0808fda91495167813

I'm getting this error as well, just installed the library fresh.  Versions:

expo: 50.0.6
react-native-paper: 5.10.4
react-native-paper-tabs: 0.10.3
react-native-pager-view: 6.2.3

Same issue on:

expo: ~50.0.7
react-native-paper: ^5.12.3
react-native-paper-tabs: ^0.10.3
react-native-pager-view: ^6.2.3

Any resolutions?

same issue

Same issue
I just had the same issue with version :
expo: ~50.0.11
"react-native-pager-view": "6.2.3",
"react-native-paper": "^5.11.0",
"react-native-paper-tabs": "^0.10.3",
Fixed
I have install :
"react-native-paper-tabs": "^0.10.4", (i dont think it change anything :D )
and explicitly installed :
"@expo/vector-icons": "^13.0.0",
And the issue is fixed :+1:


Add descriptive icons to each component in the ComponentList

We actually want to have something like that

So you have to add Icon component to the ComponentList item


PHP 8.2.7 Deprecated warnings on Server returning metadata (WP_DEBUG true)

Deprecated:  Return type of Wpup_Headers::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 129

Deprecated:  Return type of Wpup_Headers::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 133

Deprecated:  Return type of Wpup_Headers::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 137

Deprecated:  Return type of Wpup_Headers::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 141

Deprecated:  Return type of Wpup_Headers::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 154

Deprecated:  Return type of Wpup_Headers::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/test/public_html/wp-content/plugins/warp-updates/classes/wp-update-server-2.0/includes/Wpup/Headers.php on line 148

Hmm, I thought this was already fixed in 2.0.1. Can you test with that version?

Yes indeed, I'm using 2.0 version since January.
I will check again and let you know.

@YahnisElsts
No warnings in 2.0.1
Thanks


Add meta referrer tag

Solves the following issue: https://hackerone.com/reports/176390

https://blog.mozilla.org/security/2015/01/21/meta-referrer/

lgtm

Rebased and tidied up in b76a5bbbb89baea1920ccad8a26797572bbeaa0c, will merge when green ...

Actually I would prefer we use:
- <meta name="referrer" content="origin" />
+ <meta name="referrer" content="no-referrer-when-downgrade" />

New PR! :-)

New PR! :-)

Tada! https://github.com/gratipay/gratipay.com/pull/4357


bevy_sprite::Rect is not the same as bevy_math::Rect

These 2 Rects are not compatible. It's also misleading, because bevy_math::Rect is in the prelude.
Could they be merged together? Should they?

I don't think they should be merged together since they measure different things. bevy_sprite::Rect is capable of defining the width and height of a rectangle, while bevy_math::Rect defines the location of its sides. In this sense, bevy_sprite::Rect is more like a bevy_math::Size with a location. I also think it is misleading,and one should be renamed. I think bevy_ui::Margins should be removed and replace bevy_math::Rect since they are the same thing.


YT bottom-right icons disappeared or changed

Script version
Version 5.6
Describe the bug
Hello,
First contribution, sorry if I don't know how to do it or explain... Besides, I'm French, not very comfortable with English sometimes.
When Tampermonkey with Remove Adblock Thing extension works, I have this YT version with these icons, see screenshot 1. I can't see the "cinema" mode icon activated with the "t" key.
If I deactivate the extension and click on "Refresh button" on Firefox, the icons reappear. See screenshot 2
I've uninstalled Firefox, Tampermonkey, the extension, and tried updates without success.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
1 - https://imgur.com/capture-d-cran-rfLWiQN
2 - https://imgur.com/capture-d-cran-ESXOnzJ
Desktop (please complete the following information):

OS : Linux Xubuntu 22.04 up to date
Browser : Firefox 126.0.1 up to date
Version [e.g. 22]

Additional context
Add any other context about the problem here.

I'm also French... with the exact same bug, no previous / next buttons and no " autoplay" or "theater mode" buttons.. 😞
🏳

@AngryAnn, Thanks to your tip