text:
Create Script to Pull, Clean, Embed, and Store Kyma Documentation in Hana Vector Database

Description
The goal of this task is to develop a script that automates the process of pulling Kyma BTP and Kyma Open-Source documentation (in .md format), filtering for relevant documents, embedding them using a suitable model, and storing the resulting embeddings in the Hana Vector Database. The embedding model used should be carefully selected, with a suggestion to start by exploring OpenAI models, given their success in previous PoC experiments. An appropriate chunking strategy for breaking down the documentation into manageable parts must also be implemented. A plan to trigger this script will be discussed with the team for follow-up tasks.
This task can be parallelelized, 2 people can work on it and split the subtasks however they decide. (Recommendation strong)
Subtasks

Pull Kyma Documentation:

Write a script to pull Kyma BTP and Kyma Open-Source documentation in .md format from their respective sources.
Ensure that the script covers all relevant documents for both BTP and Open-Source versions.

Filter Relevant Documentation Files:

Implement logic to keep only the relevant documentation files for embedding, based on predefined criteria.
Define what constitutes "relevant" documents in the context of Kyma Companion’s needs (e.g., technical reference docs, API documentation, core concepts, etc.).
Ensure non-relevant files (e.g., examples, license files, or changelogs) are excluded from processing.

Choose an Embedding Model:

Research and select an appropriate embedding model for converting the cleaned documentation into vector embeddings.
Start by evaluating OpenAI’s embedding models (used previously in PoC) and explore other alternatives if necessary.

Implement Chunking Strategy:

Define an initial strategy for breaking down the documentation into smaller chunks to ensure effective and meaningful embeddings.
Test chunking strategies for both large and small documentation files to strike a balance between chunk size and relevance.
Use PoC experiments as a reference to guide the chunking implementation.

Store Embeddings in Hana Vector Database:

Once the documentation is embedded, develop the logic to store the resulting embeddings in the Hana Vector Database.
Ensure that all relevant metadata (document title, section, source, etc.) is stored along with the embeddings for easy retrieval.

Propose Triggering Mechanism:

As part of this task, propose an efficient method for triggering the script (e.g., manual trigger, automated based on repository changes).
Discuss this triggering method with the team to gather input for a follow-up task.

Subtasks

Prepare Kyma documents. Filter and clean up the *.MD files automatically.
Choose an embedding model - Mansur
Implement chunking and store it to the Vector DB - Mansur
Come up with a automatic indexing mechanism

Acceptance Criteria

[ ] The script successfully pulls Kyma BTP and Kyma Open-Source documentation in .md format.
[ ] Non-relevant files are excluded, and only relevant documentation files are processed.
[ ] An appropriate embedding model is selected and used to generate vector embeddings for the documentation.
[ ] Documentation is chunked effectively, ensuring relevant embeddings are created.
[ ] Embeddings and related metadata are stored in the Hana Vector Database.
[ ] A method for triggering the script is proposed and discussed with the team.

Follow-up ticket: https://github.com/kyma-project/kyma-companion/issues/242

Todo(s):

[ ] Rate limit and retries
[ ] More logs
[ ] Default table name
[ ] cleanup table in tests
[ ] Tests in fetcher

Check. doc main/docs/rag/indexing.md from a-force repo.

authors: Teneroy mfaizanse

repo: kyma-project/kyma-companion


text:
Override not working in ModuleTemplate

Description
I've been trying to test out lifecycle-manager, using this guide:
https://github.com/kyma-project/lifecycle-manager/blob/main/docs/developer-tutorials/local-test-setup.md
There's the step 5 where you actually create the module with the kyma cli, and upload it to the container:
kyma alpha create module -p ../template-operator --version 1.2.3 \
--registry k3d-registry.localhost:5111 --insecure

This does what it says, it creates this special OCI container and uploads it to the local registry, meanwhile also setting the baseUrl inside the module to that k3d-registry.localhost:5111 .
Now this also generates a template.yaml, where I need to modify the baseUrl so that it can be fetched from inside the cluster where the registry is listening on port :5000 .
The docs says that I should just rewrite the template.yaml accordingly, but this doesn't work, there are errors that the module cannot be synced because it's still trying to access the registry at port :5111.
Expected result
The generated "template.yaml" overrides the value in the module that's uploaded to the OCI registry. At least I assume it should work this way, since the "template.yaml" and the module yaml that's uploaded to the registry is the same.
Actual result
No matter what I do, it tries to sync against port :5111.
Steps to reproduce
Follow the guide linked.
Troubleshooting
I verified that module installation does work if I use an external repository. I tried to adjust the parameters of the ModuleTemplate, but it didn't help.

Closing this since it's not reproducible anymore.

source: gharchive/issue

authors: lindnerby zralt

repo: kyma-project/lifecycle-manager

license_type: permissive

license_source: github-api


text:
Can template.ParseGlob parse templates in subdirectories?

Hi thanks for such great framework like this .
Can we parse templates in subdirectories which means we have /templates/ directory and subdirectories like

templates/components or templates/components/blog.
is there a function to  do this with your framework .
Kind regards

Hi, Ben!
Sorry to say, there is no way now to provide glob with ** semantics.
Probably you'll want to check this: https://stackoverflow.com/questions/32309830/can-template-parseglob-parse-templates-in-subdirectories
Now you have 3 options to choose from:

Stick with a flat structure.
Stick with a constant nesting number, like templates/*/*/*.html for templates/components/blog/file.html.
Provide your own prepared template with kyoto.TemplateRaw. Anyway, it doesn't provide you with a solution, rather it allows you to integrate your own.

I'm not going to push for any specific option, feel free to evaluate pros/cons for your exact case :)
Kind Regards,
Yurii

Thans  Yurri i appreciate your help , i will try your suggestions .
maybe i will try to find a solution soon .
Kind regards

Thanks for your suggestion i've find a way to make this work .

authors: BenCherif yuriizinets

repo: kyoto-framework/kyoto

license: MIT


text:
🛑 senoshaidodelasmanos.bogach.es is down

In e4a6d68, senoshaidodelasmanos.bogach.es (https://senoshaidodelasmanos.bogach.es/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: senoshaidodelasmanos.bogach.es is back up in 5964bff after 12 minutes.

repo: kyryl-bogach/upptime


text:
Does the Mimi Codec's Weight Change During Moshi Training?

Due diligence

[X] I have done my due diligence in trying to find the answer myself.

Topic
The paper
Question
What is the training process like?
My current understanding of the training process is: first, the Mimi codec and the Helium text language model are trained separately, and then Moshi is trained.
I would like to know whether Mimi's weights are updated during the training of Moshi?
Thank you for the great work

Mimi weights are frozen during the training of the moshi part.

repo: kyutai-labs/moshi


text:
Add a (since) line

So people don't have to do timezone conversion in their heads, it would display a relative time

Closed in 6c5bdeb3b35ea0cb2c7e4d9fe928572d80a36845

license: ISC


text:
Add Taiko bonds info

Resolves L2B-5776

branch issues

source: gharchive/pull-request


text:
Publish & Upgrade captcha to 2.0.0

Publish captcha-2.0.0 to Maven Central with support for boot 3.0.
Upgrade dependency to 2.0.0

captcha is released.  mvn-repo

repo: lWoHvYe/eladmin


text:
🛑 El Loro de Oro (ADMIN) is down

In 570cd06, El Loro de Oro (ADMIN) (https://pa-admin.la-razon.com) was down:

HTTP code: 526
Response time: 549 ms

Resolved: El Loro de Oro (ADMIN) is back up in 4440740.

repo: la-razonbo/udweb


text:
PET-JAX

Sorry @PicoCentauri but I couldn't figure out how to use the template.
TODO: everything, including solving a harmless bug where all models are initialized twice and figuring out some float32 composition inaccuracies

📚 Documentation preview 📚: https://metatensor-models--82.org.readthedocs.build/en/82/

Interesting! What is your plan for torch script export? Having both a JAX and Torch version, and loading weights from one inside the other?

authors: Luthaf frostedoyster

repo: lab-cosmo/metatensor-models


text:
replace typeform with airtable sign-up

### Tasks
- [x] Create new AirTable form link
- [ ] Ensure integration between form and AirTable DB
- [ ] Update typeform links in docs to AirTable
- [ ] Update install script exit logs to AirTable link
- [ ] Update Plex auto-message to AirTable link when `PLEX_ACCESS_TOKEN` not detected in env or not valid access token

Form link: https://airtable.com/shrfEDQj2fPffUge8

Airtable:
https://airtable.com/shrfEDQj2fPffUge8
Where it needs swapping: Install PLEX guide
https://docs.labdao.xyz/getting-started/install-plex

In the intro, under "requirements" it says "get an access token here"
In step 4: Add an access token. (it says "get an access token here" in the first para of this section)

Merged #326

authors: acashmoney mithrauki

repo: labdao/plex


text:
fix negation for !=~

I also run into this issue so here is the fix for it 👍
fix for https://github.com/lablabs/prometheus-alert-overrider/issues/11
reorder the operators matching

lgtm, thanks!

repo: lablabs/prometheus-alert-overrider


text:
Crash when trying to close an archive

StormLib crashes when trying to close an archive after adding some files.
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
#0  0x00007ffff7b6e423 in AllocateFileEntry (ha=0x602130, szFileName=0x7ffff7bc21c9 "(listfile)", lcLocale=0) at src/SBaseFileTable.cpp:1832
#1  0x00007ffff7b735e2 in SFileAddFile_Init (ha=0x602130, szFileName=0x7ffff7bc21c9 "(listfile)", FileTime=0, dwFileSize=72, lcLocale=0, dwFlags=2164261376, phf=0x7fffffffdeb8) at src/SFileAddFile.cpp:431
#2  0x00007ffff7b7a943 in SListFileSaveToMpq (ha=0x602130) at src/SFileListFile.cpp:464
#3  0x00007ffff7b7bc1c in SFileFlushArchive (hMpq=0x602130) at src/SFileOpenArchive.cpp:567
#4  0x00007ffff7b7bd44 in SFileCloseArchive (hMpq=0x602130) at src/SFileOpenArchive.cpp:628
#5  0x0000000000400f14 in main () at test.cc:150

test.cc: http://0wx.cat/53e798b22407d13dcf5ff96bd567dddc/
The image files I used for this test can be arbitrary files.
Issue exists since 68e2c2527db10dcfdd9fdc2219c7fe9784abf738

Yeah, that happens when I am too busy to run complete test.
Fixed in commit 5747ad4910966b27b4da3f0d0e5f085697e5bf7b

authors: DarkAyron ladislav-zezula

repo: ladislav-zezula/StormLib

license: mit

license_source: bigquery


text:
Psalm integration

Feature Request

Q
A

QA
yes

Summary
As decided during the Technical-Steering-Committee Meeting on August 3rd, 2020, Laminas wants to implement vimeo/psalm in all packages.
Implementing psalm is quite easy.
Required

[ ] Create a .psalm.xml.dist in the project root
[ ] Copy and paste the contents from this psalm.xml.dist
[ ] Run $ composer require vimeo/psalm
[ ] Run $ vendor/bin/psalm --set-baseline=psalm-baseline.xml
[ ] Add a composer script static-analysis with the command psalm --shepherd --stats
[ ] Add a new line to script: in .travis.yml: - if [[ $TEST_COVERAGE == 'true' ]]; then composer static-analysis ; fi
[ ] Remove phpstan from the project (phpstan.neon.dist, .travis.yml entry, composer.json require-dev and scripts)

Optional

[ ] Fix as many psalm errors as possible.

As of todays TSC meeting, we are dropping support for this package and thus closing all issues in here.


text:
Custom ContainerLoaderInterface by application

Q
A

Documentation
yes

Bugfix
yes

BC Break
no

New Feature
yes

Description

I am currently migrating a project from zf-console to laminas-cli.
This project also works with doctrine and thus currently provides cli-config.php which is parsed by doctrine when using vendor/bin/doctrine.
To avoid having multiple symfony command toolings around, I would like to integrate these commands from doctrine/orm into laminas-cli.

As of now, this would only be possible by manually adding all of the commands to a config file. If there will be new commands, they wont be added automatically to laminas-cli and thus, manual work needs to be done.
I was thinking on how that could work and implemented this as a PoC.

Current workaround to add doctrine commands to laminas-cli:
<?php

declare(strict_types=1);

use Application\Doctrine\DoctrineCommandAbstractFactory;
use Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand;
use Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand;
use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand;

return (static function (): array {
    return [
        'dependencies' => [
            'factories' => [
                MetadataCommand::class => DoctrineCommandAbstractFactory::class,
                QueryCommand::class => DoctrineCommandAbstractFactory::class,
                ResultCommand::class => DoctrineCommandAbstractFactory::class,
                GenerateProxiesCommand::class => DoctrineCommandAbstractFactory::class,
                ValidateSchemaCommand::class => DoctrineCommandAbstractFactory::class,
            ],
        ],
        'laminas-cli' => [
            'commands' => [
                'orm:clear-cache:metadata' => MetadataCommand::class,
                'orm:clear-cache:query' => QueryCommand::class,
                'orm:clear-cache:result' => ResultCommand::class,
                'orm:generate-proxies' => GenerateProxiesCommand::class,
                'orm:validate-schema' => ValidateSchemaCommand::class,
            ],
        ],
    ];
})();

<?php

declare(strict_types=1);

namespace Application\Doctrine;

use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand;
use Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand;
use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand;
use Doctrine\ORM\Tools\Console\EntityManagerProvider;
use Interop\Container\ContainerInterface;
use InvalidArgumentException;
use Laminas\ServiceManager\Factory\AbstractFactoryInterface;
use Webmozart\Assert\Assert;
use function assert;
use function in_array;

final class DoctrineCommandAbstractFactory implements AbstractFactoryInterface
{
    private const COMMANDS = [
        MetadataCommand::class,
        QueryCommand::class,
        ResultCommand::class,
        GenerateProxiesCommand::class,
        ValidateSchemaCommand::class,
    ];

    public function canCreate(ContainerInterface $container, $requestedName)
    {
        return in_array($requestedName, self::COMMANDS, true);
    }

    public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
    {
        if (!in_array($requestedName, self::COMMANDS, true)) {
            throw new InvalidArgumentException(sprintf(
                'Command %s is not explicitly allowed by %s',
                $requestedName,
                self::class
            ));
        }

        return new $requestedName($this->createEntityManagerProvider($container));
    }

    private function createEntityManagerProvider(ContainerInterface $container): EntityManagerProvider
    {
        return new class($container) implements EntityManagerProvider {
            private ContainerInterface $container;

            public function __construct(ContainerInterface $container)
            {
                $this->container = $container;
            }

            public function getDefaultManager(): EntityManagerInterface
            {
                return $this->container->get(EntityManagerInterface::class);
            }

            public function getManager(string $name): EntityManagerInterface
            {
                Assert::startsWith($name, 'doctrine.entitymanager.');
                $entityManager = $this->container->get($name);
                assert($entityManager instanceof EntityManagerInterface);

                return $entityManager;
            }
        };
    }
}

@boesing I'be removed this from the 1.2.0 milestone, as we first want 8.1 support to be pushed out

Closing here as it is possible to do this manually and this would be only convenience to users who wants to use non-laminas-specific symfony commands (e.g. for doctrine, etc.)

authors: Ocramius boesing

repo: laminas/laminas-cli


text:
Support PHP 8.3

Q
A

New Feature
yes

Description
Needs #199

Thanks @gsteel!

Thanks for reviewing @Ocramius :)

authors: Ocramius gsteel

repo: laminas/laminas-validator


text:
Statically allocate motion sensor driver

Some work has been carried out already in this area for the v0.2.39 release, but it we can go a bit further by fully statically allocate the driver in the stack.

Bumped to 0.2.42, but the new driver as update for 0.2.41 is much more friendly to being made static, so considering this 'in progress'.

Handling this as a static variable means that other tracking (than just checking if the driver is non-NULL) would need to be added throughout to prevent other components from crashing. So leaving this as it is for now.

authors: JohnVidler microbit-carlos


text:
🛑 rexingsports.cn is down

In f9d563e, rexingsports.cn (https://www.rexingsports.cn) was down:

HTTP code: 567
Response time: 678 ms

Resolved: rexingsports.cn is back up in e6bcb2a.

repo: lanen/bs-site


text:
🛑 vipgifts.net is down

In f1c8846, vipgifts.net (https://vipgifts.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: vipgifts.net is back up in 5b23988.


text:
🛑 trixmall.com is down

In abfcaa5, trixmall.com (https://www.trixmall.com/) was down:

HTTP code: 567
Response time: 510 ms

Resolved: trixmall.com is back up in 9654828 after 20 minutes.


text:
🛑 trixmall.com is down

In fa1c483, trixmall.com (https://www.trixmall.com/) was down:

HTTP code: 567
Response time: 674 ms

Resolved: trixmall.com is back up in 2a2df02 after 13 minutes.


text:
🛑 vipgifts.net is down

In 9eae4d4, vipgifts.net (https://vipgifts.net) was down:

HTTP code: 567
Response time: 785 ms

Resolved: vipgifts.net is back up in cc5b627 after 36 minutes.


text:
🛑 rexingsports.cn is down

In f487f86, rexingsports.cn (https://www.rexingsports.cn) was down:

HTTP code: 567
Response time: 660 ms

Resolved: rexingsports.cn is back up in 3e45d60 after 38 minutes.


text:
🛑 rexingsports.cn is down

In 397462c, rexingsports.cn (https://www.rexingsports.cn) was down:

HTTP code: 567
Response time: 556 ms

Resolved: rexingsports.cn is back up in 2186568 after 21 minutes.


text:
🛑 rexingsports.cn is down

In 5846b4f, rexingsports.cn (https://www.rexingsports.cn) was down:

HTTP code: 567
Response time: 612 ms

Resolved: rexingsports.cn is back up in 9006aec after 18 minutes.


text:
🛑 vipgifts.net is down

In 04bdd1f, vipgifts.net (https://vipgifts.net) was down:

HTTP code: 567
Response time: 421 ms

Resolved: vipgifts.net is back up in 851826f after 19 minutes.


text:
🛑 rexingsports.cn is down

In 1b73756, rexingsports.cn (https://www.rexingsports.cn) was down:

HTTP code: 567
Response time: 794 ms

Resolved: rexingsports.cn is back up in 782a180 after 15 minutes.


text:
with_structured_output not working for Llama 3.1 models + converse

Thanks for adding tool/with_structured_output support to ChatBedrockConverse!
It is working great for models like mistral_large. However, the Llama 3.1 models don't work with with_structured_output, and  always return a plaintext message with ChatBedrockConverse. These models support with_structured_output on other langchain providers (groq, Ollama), and the raw models support tool calling, so they should work here as well?
There are no errors when calling with_structured_output, but the text returned in plaintext not json/tool call, and the response dict never has a "parsed" entry, just raw return.
I've tried 3.1 8B and 70B, neither works (and both works on the other platforms mentioned).
AWS docs confirming these models should support tool use: https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html
Thanks

with_structured_output doesn't seem to work for me either for the following tested model:

anthropic.claude-3-sonnet-20240229-v1:0
anthropic.claude-3-5-sonnet-20240620-v1:0
anthropic.claude-3-haiku-20240307-v1:0
mistral.mistral-large-2407-v1:0
meta.llama3-1-70b-instruct-v1:0
cohere.command-r-plus-v1:0

(took me a bit to realize as I have a gpt4o-mini fallback)
ParamValidationError('Parameter validation failed:\nInvalid length for parameter toolConfig.tools[0].toolSpec.description, value: 0, valid min length: 1')Traceback (most recent call last):
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 624, in generate
    self._generate_with_cache(
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 846, in _generate_with_cache
    result = self._generate(
             ^^^^^^^^^^^^^^^
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/langchain_aws/chat_models/bedrock_converse.py", line 445, in _generate
    response = self.client.converse(
               ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/botocore/client.py", line 565, in _api_call
    return self._make_api_call(operation_name, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/botocore/client.py", line 974, in _make_api_call
    request_dict = self._convert_to_request_dict(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/botocore/client.py", line 1041, in _convert_to_request_dict
    request_dict = self._serializer.serialize_to_request(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/eppick/projects/long_writer/.venv/lib/python3.12/site-packages/botocore/validate.py", line 381, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid length for parameter toolConfig.tools[0].toolSpec.description, value: 0, valid min length: 1

Langsmith trace for Claude Sonnet 3 (same error for all models): https://smith.langchain.com/public/1ba1a190-b1c5-447b-9883-9e17277966b1/r
I also included all my depedencies:
dependecies.txt

@CyranoB  "mistral.mistral-large-2407-v1:0" works for me. Are you using ChatBedrockConverse on the latest version of the library?

I found the issue, I was using langchain_core.pydantic_v1 BaseModel (like in the langchain doc) instead of typing_extensions TypedDict (like in langchain-aws test case).
The following code words (including with meta.llama3-1-70b-instruct-v1:0)
class Division(TypedDict):
    name: str = Field(description="The division name (e.g Chapter 1, Section 1.1, etc...)")
    description: str = Field(description="one sentence description of the division")
    instructions: str = Field(description="A few sentences of instructions on what to write for this division and in what style")
    word_count: int = Field(description="The word count of the division")

class Outline(TypedDict):
    title: str = Field(description="A title for the writing")
    divisions: List[Division] = Field(description="The list of divisions")
...
model = ChatBedrockConverse(model="meta.llama3-1-70b-instruct-v1:0", temperature=0)
structured_planing_llm = model.with_structured_output(Outline)
query = "I need to write a report on the history of the internet"
prompt = load_prompt("prompts/build_outline.yaml").format(query=query)
outline = structured_planing_llm.invoke(prompt)

Interesting. I'm using json schema. Seems like it's not fully working with standard APIs? Will try that.

Could you post the version of the code using BaseModel that isn't working? That sounds like a bug

Amazon must have fixed this. Same test cases that failed last week now pass!

authors: CyranoB efriis scosman

repo: langchain-ai/langchain-aws


text:
Encountering a "type object is not subscriptable" error when invoking hub.pull.

System Info
Python = 3.8.16
langchain==0.0.304
langchainhub==0.1.13
Who can help?
@hwchase17 @agola11
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[X] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction

install python 3.8.16
install langchain==0.0.304 and langchainhub==0.1.13
Run the following script :

from langchain import hub
LANGCHAIN_HUB_API_KEY is set on my .env file
pull a chat prompt
try:
prompt = hub.pull("efriis/my-first-prompt")
except Exception as e:
print(e)
raise e
Expected behavior
I'm uncertain about the expected behavior, as I've never been able to successfully execute hub.pull.

@dosu-bot The dosu-bot doesn't seem to have provided a solution to my problem. Can anyone assist me with this?

This problem should be came from langchainhub library.
stack trace:
Traceback (most recent call last):
  File "d:/Python/langchain/libs/langchain/test.py", line 4, in <module>
    prompt = hub.pull("efriis/my-first-prompt")
  File "d:\Python\langchain\libs\langchain\langchain\hub.py", line 79, in pull
  File "d:\Python\langchain\libs\langchain\langchain\hub.py", line 15, in _get_client
    from langchainhub import Client
  File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\__init__.py", line 1, in <module>
    from langchainhub.client import Client
  File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\client.py", line 53, in <module>
    def parse_owner_repo_commit(identifier: str) -> tuple[str, str, Optional[str]]:
TypeError: 'type' object is not subscriptable

Execution sequence:

hub.pull()
In hub.py, the following is executed: from langchainhub import Client
The error comes from client.py in langchainhub: tuple[str, str, Optional[str]], and this type hint cannot be smoothly executed in Python 3.9 and below.

Solution:
Add the following at the top of client.py in langchainhub:
from __future__ import annotations

As I couldn't find the open-source project address for langchainhub, I'm unable to create a pull request for langchainhub to fix this error.
Hope other maintainers to help with modifying this error.
@lehic
If you don't want to wait for changes in langchainhub, you can add the following code to client.py yourself. This should resolve the issue.
from __future__ import annotations

You can directly modify your local langchainhub/client.py, and the file location should be something like:
C:\Users\<yourname>\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\client.py

Thank you, @Lin-jun-xiang, for your assistance.
Just to keep you updated, I resolved the issue by upgrading from Python 3.8 to Python 3.9. Since making this change, I haven't encountered the problem anymore. I'll go ahead and close the issue now.

This problem should be came from langchainhub library.
stack trace:
Traceback (most recent call last):
  File "d:/Python/langchain/libs/langchain/test.py", line 4, in <module>
    prompt = hub.pull("efriis/my-first-prompt")
  File "d:\Python\langchain\libs\langchain\langchain\hub.py", line 79, in pull
  File "d:\Python\langchain\libs\langchain\langchain\hub.py", line 15, in _get_client
    from langchainhub import Client
  File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\__init__.py", line 1, in <module>
    from langchainhub.client import Client
  File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\client.py", line 53, in <module>
    def parse_owner_repo_commit(identifier: str) -> tuple[str, str, Optional[str]]:
TypeError: 'type' object is not subscriptable

Execution sequence:

hub.pull()
In hub.py, the following is executed: from langchainhub import Client
The error comes from client.py in langchainhub: tuple[str, str, Optional[str]], and this type hint cannot be smoothly executed in Python 3.9 and below.

Solution: Add the following at the top of client.py in langchainhub:
from __future__ import annotations

As I couldn't find the open-source project address for langchainhub, I'm unable to create a pull request for langchainhub to fix this error.
Hope other maintainers to help with modifying this error.
@lehic If you don't want to wait for changes in langchainhub, you can add the following code to client.py yourself. This should resolve the issue.
from __future__ import annotations

You can directly modify your local langchainhub/client.py, and the file location should be something like: C:\Users\<yourname>\AppData\Local\Programs\Python\Python38\lib\site-packages\langchainhub\client.py

worked for me, thanks.

This has also been fixed in langchainhub 0.1.14! Thanks for raising!

For those who do not want to change the version of python from 3.8 we must modify the file Python38\Lib\langchain_cli\utils\pyproject.py
`from pathlib import Path
from typing import Any, Dict, Iterable
from tomlkit import dump, inline_table, load
from tomlkit.items import InlineTable
from typing import Iterable, Tuple
def _get_dep_inline_table(path: Path) -> InlineTable:
dep = inline_table()
dep.update({"path": str(path), "develop": True})
return dep
def add_dependencies_to_pyproject_toml(
pyproject_toml: Path,
local_editable_dependencies: Iterable[Tuple[str, Path]]
) -> None:
"""Add dependencies to pyproject.toml."""
with open(pyproject_toml, encoding="utf-8") as f:
# tomlkit types aren't amazing - treat as Dict instead
pyproject: Dict[str, Any] = load(f)
pyproject["tool"]["poetry"]["dependencies"].update(
{
name: _get_dep_inline_table(loc.relative_to(pyproject_toml.parent))
for name, loc in local_editable_dependencies
}
)
with open(pyproject_toml, "w", encoding="utf-8") as f:
dump(pyproject, f)
def remove_dependencies_from_pyproject_toml(
pyproject_toml: Path, local_editable_dependencies: Iterable[str]
) -> None:
"""Remove dependencies from pyproject.toml."""
with open(pyproject_toml, encoding="utf-8") as f:
pyproject: Dict[str, Any] = load(f)
# tomlkit types aren't amazing - treat as Dict instead
dependencies = pyproject["tool"]["poetry"]["dependencies"]
for name in local_editable_dependencies:
try:
del dependencies[name]
except KeyError:
pass
with open(pyproject_toml, "w", encoding="utf-8") as f:
dump(pyproject, f)
`

@sethemis if you pip install -U langchainhub do you still see the error?

Hi! @efriis Efriis I tested it this morning pip install langchainhub and I think there were no errors, but then I wanted to run langchain serve and this appeared not work..

@Dante690 maybe you're using a different environment for your langserve app? Maybe try upgrading langchainhub using the same environment your langserve app runs in?

For anyone who experienced the same issue, I found the reason. I was behind a VPN, and as soon as I turned off my VPN, everything worked fine.

authors: Dante690 Lin-jun-xiang efriis fahnubv lehic sethemis

repo: langchain-ai/langchain


text:
Docs cloudflare update

Added provider page.
Added links, descriptions

@baskaryan Thanks!


text:
community: Resolve refs recursively when generating openai_fn from OpenAPI spec

Description: This PR is intended to improve the generation of payloads for OpenAI functions when converting from an OpenAPI spec file. The solution is to recursively resolve $refs.
Currently when converting OpenAPI specs into OpenAI functions using openapi_spec_to_openai_fn, if the schemas have nested references, the generated functions contain $ref that causes the LLM to generate payloads with an incorrect schema.

For example, for the for OpenAPI spec:
text = """
{
  "openapi": "3.0.3",
  "info": {
    "title": "Swagger Petstore - OpenAPI 3.0",
    "termsOfService": "http://swagger.io/terms/",
    "contact": {
      "email": "apiteam@swagger.io"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "1.0.11"
  },
  "externalDocs": {
    "description": "Find out more about Swagger",
    "url": "http://swagger.io"
  },
  "servers": [
    {
      "url": "https://petstore3.swagger.io/api/v3"
    }
  ],
  "tags": [
    {
      "name": "pet",
      "description": "Everything about your Pets",
      "externalDocs": {
        "description": "Find out more",
        "url": "http://swagger.io"
      }
    },
    {
      "name": "store",
      "description": "Access to Petstore orders",
      "externalDocs": {
        "description": "Find out more about our store",
        "url": "http://swagger.io"
      }
    },
    {
      "name": "user",
      "description": "Operations about user"
    }
  ],
  "paths": {
    "/pet": {
      "post": {
        "tags": [
          "pet"
        ],
        "summary": "Add a new pet to the store",
        "description": "Add a new pet to the store",
        "operationId": "addPet",
        "requestBody": {
          "description": "Create a new pet in the store",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pet"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pet"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Tag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "model_type": {
            "type": "number"
          }
        }
      },
      "Category": {
        "type": "object",
        "required": [
          "model",
          "year",
          "age"
        ],
        "properties": {
          "year": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "model": {
            "type": "string",
            "example": "Ford"
          },
          "age": {
            "type": "integer",
            "example": 42
          }
        }
      },
      "Pet": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "name": {
            "type": "string",
            "example": "doggie"
          },
          "category": {
            "$ref": "#/components/schemas/Category"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "status": {
            "type": "string",
            "description": "pet status in the store",
            "enum": [
              "available",
              "pending",
              "sold"
            ]
          }
        }
      }
    }
  }
}
"""

Executing:
spec = OpenAPISpec.from_text(text)
pet_openai_functions, pet_callables = openapi_spec_to_openai_fn(spec)
response = model.invoke("Create a pet named Scott", functions=pet_openai_functions)

pet_open_functions contains unresolved $refs:
[
  {
    "name": "addPet",
    "description": "Add a new pet to the store",
    "parameters": {
      "type": "object",
      "properties": {
        "json": {
          "properties": {
            "id": {
              "type": "integer",
              "schema_format": "int64",
              "example": 10
            },
            "name": {
              "type": "string",
              "example": "doggie"
            },
            "category": {
              "ref": "#/components/schemas/Category"
            },
            "tags": {
              "items": {
                "ref": "#/components/schemas/Tag"
              },
              "type": "array"
            },
            "status": {
              "type": "string",
              "enum": [
                "available",
                "pending",
                "sold"
              ],
              "description": "pet status in the store"
            }
          },
          "type": "object",
          "required": [
            "name",
            "photoUrls"
          ]
        }
      }
    }
  }
]

and the generated JSON has an incorrect schema (e.g. category is filled with id and name instead of model, year and age:
{
  "id": 1,
  "name": "Scott",
  "category": {
    "id": 1,
    "name": "Dogs"
  },
  "tags": [
    {
      "id": 1,
      "name": "tag1"
    }
  ],
  "status": "available"
}

With this change, the generated JSON by the LLM becomes, pet_openai_functions becomes:
[
  {
    "name": "addPet",
    "description": "Add a new pet to the store",
    "parameters": {
      "type": "object",
      "properties": {
        "json": {
          "properties": {
            "id": {
              "type": "integer",
              "schema_format": "int64",
              "example": 10
            },
            "name": {
              "type": "string",
              "example": "doggie"
            },
            "category": {
              "properties": {
                "year": {
                  "type": "integer",
                  "schema_format": "int64",
                  "example": 1
                },
                "model": {
                  "type": "string",
                  "example": "Ford"
                },
                "age": {
                  "type": "integer",
                  "example": 42
                }
              },
              "type": "object",
              "required": [
                "model",
                "year",
                "age"
              ]
            },
            "tags": {
              "items": {
                "properties": {
                  "id": {
                    "type": "integer",
                    "schema_format": "int64"
                  },
                  "model_type": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "status": {
              "type": "string",
              "enum": [
                "available",
                "pending",
                "sold"
              ],
              "description": "pet status in the store"
            }
          },
          "type": "object",
          "required": [
            "name"
          ]
        }
      }
    }
  }
]

and the JSON generated by the LLM is:
{
  "id": 1,
  "name": "Scott",
  "category": {
    "year": 2022,
    "model": "Dog",
    "age": 42
  },
  "tags": [
    {
      "id": 1,
      "model_type": 1
    }
  ],
  "status": "available"
}

which has the intended schema.
- **Twitter handle:**: @brunoalvisio

could we add some unit tests?

Yes, I will write them and push them soon

@baskaryan I added a unit test that showcases nested $refs in the schema

@baskaryan Just rebased unit tests against master.

authors: balvisio baskaryan


text:
community: Voice Input Support For Ollama Models

Tool to provide voice input support for Ollama models.
Description: Added voice input tool for Ollama model that holds two classes that extend BaseBlobParser & BaseTool respectively, to allow for voice input (pre-saved or on the spot) on various Ollama model chains, as the user requires. Details on how to utilize the tool (e.g. use cases) can be found in the docs/integrations/tools folder in 'ollama_voice_input.ipynb'.
Issue: #27717
Dependencies:  'sounddevice', 'scipy' for voice recording (not anymore as per my knowledge, except for note below)
Twitter Handle: @faizannaseerr
Lint & Test: I ran lint & tests locally, and everything seemed fine as per my knowledge.
Added Test & Docs: Unit tests for modules and docs on how to use the tool have been added.
Additional Notes:

There is a unit test for long audio input that should use an audio file named 'long_audio.wav' in the langchain_community/tests/examples file. I have not added this file yet as I could not find any long, free-to-use, audio input file online and therefore can leave this unit test out if required, or can use it if a long audio input file is found (that leads to several Document objects after the parse)
Will fix imports shortly if required (still some being re-imported from LangChain, not sure if they need to be altered or not)

going to close because the ci issues stem from dependencies we don't want to package here. The description alludes to this , and if you want to re-contribute, would recommend reading our docs on optional dependencies, as well as some of the Whisper parsers in community (instead of a tool implemented here)

authors: efriis faizannaseerr


text:
Create ArcGISLoader & example notebook

Description: Adds the ArcGISLoader class to langchain.document_loaders
Allows users to load data from ArcGIS Online, Portal, and similar
Users can authenticate with arcgis.gis.GIS or retrieve public data anonymously
Uses the arcgis.features.FeatureLayer class to retrieve the data
Defines the most relevant keywords arguments and accepts **kwargs
Dependencies: Using this class requires arcgis and, optionally, bs4.BeautifulSoup.

Tagging maintainers:

DataLoaders / VectorStores / Retrievers: @rlancemartin, @eyurtsev

I'm sorry there are so many commits! On my previous PR, I didn't branch my fork, and I started making this PR in a branch... then once my first one got reviewed, I tried merging them... I think I caused things to go haywire. :/

thanks @joshuasundance-swca!

authors: baskaryan joshuasundance-swca


text:
Ollama: update documentation and examples

Ollama documentation and examples still use
langchain4j/ollama-... images that are not supported any more.
Update docu and examples and describe 2 ways of running Ollama:

when Ollama runs locally
when Ollama runs in testcontainers

@soul2zimate thanks a lot in advance!


text:
progress window

Suggestion maybe progress window when you delete games ?
now it just hangs when deleting lot of games takes a while to come back

Deleting multiple games was very slow, I have optimized the code so that it's much faster. I also added a wait-cursor to the mouse pointer, so no need for a progress window anymore. Fixed in 2.12.3.

cool :)

repo: lantzelot-swe/PCUGameManager


text:
android 4.4 调用setColor 布局没有整体下移，导致上方的标题和返回按钮看不到

没有使用toolbar

解决了，是我调用错了，应该在色图contentview之后调用，但是发现一个新的问题，我在根布局上设置的左右margin失效了，在android 4.4上面

写错了。。。是padding属性无效了

@MoonlightSW padding 是会失效的，这种调整下布局兼容下吧

@laobie 好的好的，，写的乱糟糟的，见谅。。。

authors: MoonlightSW laobie

repo: laobie/StatusBarUtil


text:
Suggestion: Add a link to MAL pages that directs to the show on 9anime

Select your issue type: (check at least one)

[ ] Bug
[ ] Question
[x] Suggestion
[ ] Other (please describe):

Describe your issue:
If it's not outside the scope of the extension (since it would modify an entirely different website), it would be very convenient to have a button on MyAnimeList which directs to that show on 9anime, or to a search page using the anime's title as the query.
Here's a mockup image I did with the Chrome element editor:

@Rakqoi thanks for the suggestion. Do keep an eye on this thread for updates.

kitsu.io integration?

authors: Rakqoi Waterflash lap00zza


text:
Proc Macro not expanded, Unsupported Metadata Version 7 - Rustc v1.70.0

Looks like proc-macros are having some issuse with the latest downloaded browser build of Lapce / Rust-Analyzer

In windows doesn't work.

A work around is to, instead of typing the full path to the executable on windows (~/.cargo/bin/rust-analyzer) (the tilde of course replaced with C:/Users/{you}), just fill in rust-analyzer.exe. For some reason, to resolve the server path, it first passes it to the cmd "where" command, which does not resolve full paths, apparently. I'm not sure why this is done or why it would be necessary--it may have to do with wasm and such. I assume *nix behaves differently

Because it necessary to add .exe to the command

I got the same problem, just the version is 8. I'm on macos, can't find where rust-anaylzer is

authors: Braymatter ChirujanoCodding HaoliangXu kaifastromai

repo: lapce/lapce-rust


text:
When Fragment rotates, keyboard hides

Hi!
I'm using SearchView inside my Fragment.
When I open(true) my SearchView, the keyboard is showing.
When I rotate my phone, the SearchView is still shown but the keyboard has gone.
Even using searchView.onSaveInstanceState() and searchView.onRestoreInstanceState(...).
(When restoring the view, searchView.isSearchOpen() is false).
Here is my code:
saving:
outState.putParcelable(EXTRA_KEY_SEARCH_VIEW, searchView.onSaveInstanceState());

restoring:
Parcelable parcelable = savedInstanceState.getParcelable(EXTRA_KEY_SEARCH_VIEW);
searchView.onRestoreInstanceState(parcelable);
if (searchView.isSearchOpen()) {
    searchView.showKeyboard();// not called
}

Thanks!
Denis

I will check it ASAP.

Hi!
I'm using right now the 3.5 version but the keyboard still hides when rotating the screen.

it will be fixed in next version. I hope. I working on it.

Ok thx :D

authors: DenisMondon lapism

repo: lapism/SearchView


text:
A few questions about the project

Hi @Log1x! I want to congratulate you for this awesome project! As a Laravel developer and active Discord user I have created a lot of bots a long the way using some manual implementations and other languages to fulfill that and now being able to build them within a Laravel familiar environment means a lot. Sorry to open an Issue for this, but the Discord invite link in the documentation is broken and there is no Discussion page in the repo. I have a few questions since I am still reading the docs and trying Laracord.
HTTP Server
If I want to create a page where users can subscribe to a premium plan of the bot, can I use the built-in HTTP Server or is it recommended that I use a separate Laravel project for that?
Testing
What about tests? Is there something discord-specific on the roadmap for testing? Should I stick to Laravel Zero's testing documentation for now? I couldn't find anything related to tests in the docs, hence the question.
Discussions
It would be really nice to have a discussions page in the repo for ideas/suggestions/bugs/questions! If there is no plan for that, please update the Discord server invite link so we can join!
Thanks and congratulations for the project!

Sorry about the Discord invite being broken! I've fixed the redirect on the site, but here is the original: https://discord.gg/sAgPrRSUZg
I guess it kind of depends on what you're doing and the scale. The HTTP server could technically lock the thread and prevent the bot and other things from working, but I have not benched it or thoroughly tested it.
As far as tests, Laravel Zero's docs are a good starting point but I haven't personally approached it yet.
Hopefully we can get some discussion rolling in Discord. Sorry again about that!

repo: laracord/laracord


text:
Blueprint how can we ignore existing models?

Just starting a new project and blueprint is great.
I was able to setup the initial structure of my app within minutes 🔥
One question is how do I append additional models without overriding everything?
I assumed running blueprint:trace would cache the models generated so that running again with the additional models appended to draft.yaml would only generate the new model.
However it seems to override everything which is not ideal after editing each model.
Expected behaviour would be to ignore anything which is already in .blueprint then just add new model Bid for example.
models:
    Auction: {  }
    Buyer: {  }
    Category: {  }
    Item: {  }
    Price: {  }
    Seller: {  }
    User: { }
    UserProfile: {  }

Current workaround is to comment out the generated models in draft.yaml
Certainly not ideal hoping there is a better way? or perhaps I can create a PR at some point to ignore anything with has been previously generated by the build command?
Additionally are you planning support enum generation?
for example it would be useful to generate Enums based from the field.
buyer_status: enum:pending,paid,reviewed,refunded,cancelled,disputed,completed

The draft file is not cumulative. It's more of a scratch pad where you generate fresh ideas.

authors: adam-code-labx jasonmccreary

repo: laravel-shift/blueprint-docs


text:
Hardcoded values for Mailgun service

Hello everyone.
I don't know if this is the right place to open this issue because it's not strictly related to the framework itself.
The problem basically is that if you use the mandrill driver inside your config/mail.php you have to hardcode the domain and secret values inside the mailgun array in config/services.php like this:
    "mailgun"  => [
        "domain" => "foo.bar",
        "secret" => "key-kappa123-4567890",
    ],

If you try to use the env() variable it doesn't work properly.
Edit: OSx screwed up the title.

No you don't?

I suggest you seek help on the forums.

repo: laravel/framework


text:
Arr::isAssoc returning true when numerical indexed not starting at 0.

Laravel Version: 5.4
PHP Version: 7.1

Description:
The Arr:isAssoc function returns true when you input an array like this [1 => 'a', 2 => 'b'].
Steps To Reproduce:
Arr::isAssoc([1 => 'a', 2 => 'b'])

Reference: https://github.com/laravel/framework/blob/master/src/Illuminate/Support/Arr.php#L321

@m1guelpf yes I can see that they write in the phpDoc
An array is "associative" if it doesn't have sequential numerical keys beginning with zero.
But however Taylor said otherwise in a commit I made a while ago. link

@uruloke Then ping @taylorotwell

Seems like his comment is saying ~with the array_values approach, you could possibly end up with an indexed array that doesn't start with zero~ thus giving a false positive on isAssoc, since an associative array is being defined as having sequential numerical keys starting at zero.
So the docblock seems to mirror his comment.

This is the intended behaviour

@devcircus but that is not correct, with the array_valuesapproach, it will still say it's associative when an indexed array does not start with zero.  This test SupportArrTest#L283 checks for this scenario, and the commit I made passed all the test when using array_values instead.

@uruloke The test is correct. It checks if it is an associative array, which it is because the keys does not start with 0.

Okay, if all the test are correct, then I do not understand why array_values approach is not valid, as it passes all the test.

@uruloke Can you clarify what you want to change, how you want to change it, and what is wrong with the current solution? Can you provide an example where your solution would correctly handle input, and the current way doesn't?
The distinction between associative and indexed arrays is based on the keys alone, never the values. It does not make sense to use array_values for this.

@sisve The reason I opened this issue was because I understood Taylors comment to my commit, that if the array was numerical and not starting at 0, then it was non-associative, however I get now that this is not what he meant.
Both solutions will return true in all scenarios. So both solutions is correct, however array_values is faster.
The reason array_values makes sense is because when you take the array_values of an array, it will make an indexed array of the values, therefor when we compare the array with the array_values result, if they are equal, then it's non-associative.
Example:
a = [1 => 'a', 2 => 'b']
Then the array_values of this would be
b = [0 => 'a', 1 => 'b']
Comparing these with a not identical compare would give us
a !== b // true

Why do you say that is faster?

They are both O(n) ofc. (ref)
But here you can see a benchmark showing it is faster.

Microtime isn't accurate enough for a benchmark.

authors: Dylan-DPC devcircus m1guelpf ntzm sisve uruloke


text:
[5.8] Custom column collations are ignored when changing a column in a migration.

Laravel Version: 5.8.16
PHP Version: 7.3
Database Driver & Version: MySQL 5.7

Description:
Setting a custom column collation in conjunction with the ->change() method in a migration doesn't work. The framework completely ignores the ->collation('') method, because there is not such thing as a "setCollation" option in Doctrine DBAL.
https://github.com/laravel/framework/blob/b4c0ef18e7c27bcbe125d5a3750e642544f7436d/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php#L83
The collation can be set though by using the setCustomSchemaOption on Doctrine's column builder:
https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/schema-representation.html#vendor-specific-options
Steps To Reproduce:
Create a new migration:
        Schema::create('tests', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('test_column');
        });

And create another one:
        Schema::table('tests', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('test_column')->collation('')->change();
        });

Proposed change:
Before i create a pull request, i'd like to hear your thoughts on this:
https://github.com/JacksonIV/framework/blob/37c3a6decc9c6dc5f47dff0105b3c533bd7ac786/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php#L83-L88

If Doctrine doesn't offers this then isn't this more of a feature request than a bug to support it? It doesn't explicitly say in the docs that we support this (although I can understand that it's a bit confusing).

@driesvints Doctrine does support it, please refer to https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/schema-representation.html#vendor-specific-options.

Okay, feel free to send in a PR with a fix if you have something.

PR merged

authors: JacksonIV driesvints


text:
Error while installing passport in laravel 10.10 PHP 8.1

Laravel Version
10.10
PHP Version
8.1
Database Driver & Version
No response
Description
Problem 1 - laravel/passport[v11.5.0, ..., v11.8.4] require league/oauth2-server ^8.2 -> satisfiable by league/oauth2-server[8.2.0, ..., 8.5.2]. - laravel/passport[v11.8.5, ..., v11.8.7] require lcobucci/jwt ^4.3|^5.0 -> satisfiable by lcobucci/jwt[4.3.0, 5.0.0]. - league/oauth2-server 8.5.2 requires lcobucci/jwt ^4.3 || ^5.0 -> satisfiable by lcobucci/jwt[4.3.0, 5.0.0]. - laravel/passport[v0.1.0, ..., v0.2.4, v1.0.0, ..., v1.0.18, v2.0.0, ..., v2.0.11, v3.0.0, ..., v3.0.2, v4.0.0, ..., v4.0.3, v5.0.0, ..., v5.0.3, v6.0.0, ..., v6.0.7, v7.0.0, ..., v7.5.1] require guzzlehttp/guzzle ~6.0 -> found guzzlehttp/guzzle[6.0.0, ..., 6.5.8] but it conflicts with your root composer.json require (^7.2). - laravel/passport[v8.0.0, ..., v8.5.0, v9.0.0, ..., v9.3.2] require php ^7.2 -> your php version (8.2.4) does not satisfy that requirement. - laravel/passport v9.4.0 requires illuminate/auth ^6.18.31|^7.22.4 -> found illuminate/auth[v6.18.31, ..., v6.20.44, v7.22.4, ..., v7.30.6] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.0.0, ..., v10.0.1] require php ^7.3 -> your php version (8.2.4) does not satisfy that requirement. - laravel/passport[v10.1.0, ..., v10.2.2] require illuminate/auth ^8.2 -> found illuminate/auth[v8.2.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.3.0, ..., v10.3.2] require illuminate/auth ^8.2|^9.0 -> found illuminate/auth[v8.2.0, ..., v8.83.27, v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.3.3, ..., v10.4.2] require illuminate/auth ^8.37|^9.0 -> found illuminate/auth[v8.37.0, ..., v8.83.27, v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v11.0.0, ..., v11.4.0] require illuminate/auth ^9.0 -> found illuminate/auth[v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - league/oauth2-server[8.2.0, ..., 8.5.1] require psr/http-message ^1.0.1 -> found psr/http-message[1.0.1, 1.1] but the package is fixed to 2.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - lcobucci/jwt[4.3.0, 5.0.0] require ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension. - Root composer.json requires laravel/passport * -> satisfiable by laravel/passport[v0.1.0, ..., v0.2.4, v1.0.0, ..., v1.0.18, v2.0.0, ..., v2.0.11, v3.0.0, v3.0.1, v3.0.2, v4.0.0, v4.0.1, v4.0.2, v4.0.3, v5.0.0, v5.0.1, v5.0.2, v5.0.3, v6.0.0, ..., v6.0.7, v7.0.0, ..., v7.5.1, v8.0.0, ..., v8.5.0, v9.0.0, ..., v9.4.0, v10.0.0, ..., v10.4.2, v11.0.0, ..., v11.8.7].
Steps To Reproduce
While trying to install using the command
composer require laravel/passport
System :
Windows 11
PHP 8.1

Hi,
I think your error is in your composer.json. I think you need to upgrade guzzle to ^7.2 . At least that is something that I found in the provided log. If that does not help, can you provide the full composer.json?

composer require laravel/passport -W

authors: ZT00OK53 driesvints schonhoff


text:
symfony/psr-http-message-bridge v2.3.1 loses the transformations of ConvertEmptyStringsToNull middleware

Laravel Version
10.26.2
PHP Version
8.1.24
Database Driver & Version
No response
Description
Recreating JSON request bodies was changed in v2.3.1 of symfony/psr-http-message-bridge.
https://github.com/symfony/psr-http-message-bridge/commit/ef03b6dfb040da9615a11679306d707da7fee51f
The JSON request body is read using $symfonyRequest->getContent() instead of $symfonyRequest->getPayload()->all() in v2.3.0, and $symfonyRequest->request->all() in v2.2.0.
Because of this, the modifications made to a Laravel request object by the ConvertEmptyStringsToNull middleware gets lost, i.e. empty string values for JSON request keys are not converted to null, and remain as empty strings.
This only affects controller methods that have $request type hinted as Psr\Http\Message\ServerRequestInterface.
Steps To Reproduce
I have created a test in a new repository to demonstrate the issue:
git clone https://github.com/HealthengineAU/laravel-bug-report

Tests should fail:
php artisan test

If we install the previous version:
composer require symfony/psr-http-message-bridge=2.3.0

We should see the tests pass:
php artisan test

I've created a PR to fix this. We can track it there: https://github.com/laravel/framework/pull/48696


text:
Faster Request

Currently Request class relies on Symfony Request - which is not bad while you use something like $request->query->get('foo'), but it is much slower when you use $request->input('foo') because it goes through at least 4 conditions and one cycle even before array_get which makes this handy method much slower (the benchmark is rough but it shows the difference).

My proposal is to make an ImmutableRequest which cannot be modified after construction and stores all data as simple arrays or internal properties.
It could be used in most applications as far as they don't need to change Request properties in runtime.
class ImmutableRequest implements RequestContract
{
//...
protected $input;

public function input($key = null, $default = null)
{
    return array_get($this->input, $key, $default);
}
//...
}

// ...

public function postFoo(ImmutableRequest $request)
{
    $request->input('foo');
}

public function postBar(Request $request)
{
    $request->request->set('bar', 1);
    //...
    $request->input('bar')
}

I can open a PR if you agree that this will help to improve performance

This would be breaking for people, sorry.

How is introducing a new class breaking?
(This is also similar to what PSR-7 suggests. Might be relevant if moving in that direction is considered in the future.)

This is also similar to what PSR-7 suggests.

Taylor and I already discussed PSR-7. We have no plans to care about it's existence atm.

Fine. It's still not breaking.

How do you think it will break compatibilities if the new class can only be used by direct method injection where it is needed? The old Request class will still be available and used by default

:-1:
You will need to make an anormous number of $request->input('foo') calls in a single controller action to feel any difference.
It's pretty confusing to have another request class too.
Just not worth it imho.
It's possible to have it as a package, isn't it?

:-1: too

Or just use $request->query->get() and $request->request->get()?

@barryvdh I would like to, but mostly in controllers I have probability of both plain and json requests - that is where $request->input() is very useful.
Well - it's just a proposal to provide a simplified faster variant of Request class.
Anyway - what about implementing a Request and Response contracts? E.g. to implement one in Application::handle()

I think going to spend some time to see if array_get() which calls Arr->get() can be optimize.

Reading this issue led me to try to improve Arr::get() and I got about 25% faster.  https://github.com/laravel/framework/pull/8902

@rkgrep What benchmark tool / website is that?

@stevestock Here it is: https://github.com/nicmart/Benchmark

authors: Arrilot GrahamCampbell barryvdh franzliedke rkgrep stevestock yadakhov


text:
L5.1 RedirectPath no effect

	protected $redirectPath = '/dashboard';

This code described in http://laravel.com/docs/5.1/authentication has no effect.
I put it in AuthController class and it still redirects to /home

Just had a look at our code, and this looks as if it works fine.

Perhaps you need to reload php fpm?

Sorry. I just checked, appearently when you redirect authenitcated user to /auth/login it will always redirect you back to /home no matter what.

You probably need to flush HHVMs cache in a equivalent way then.

I already did. No matter what user is being redirected to /home.
Try it for yourself. From a "auth" middleware redirect /home to /auth/login and he will ALWAYS be redirected to /home EVEN if it's set to /dashboard

Example:
Route::group(['as' => 'admin::', 'middleware' => 'auth'], function () {
	Route::match(['get', 'post'], '/home', function(){return redirect()->intended('/auth/login'); });
// some other routes
}

The redirect if you're logged in and visit the login page is handled at a completely different place. Take a look at App\Http\Middleware\RedirectIfAuthenticated

@lukasgeiter oh damn. Didn't see that one. This should be notified in docs though.
Thanks.

We just ran into this and had to track it down, the docs clearly say to set $redirectPath but the middleware is hard coded to /home.
Reference: http://laravel.com/docs/5.1/authentication#included-authenticating

authors: GrahamCampbell jturmel lukasgeiter sciasfreelancer


text:
[5.1] Fix EventTest on Windows

Also simplified the detection in Event::getDefaultOutput.

What was wrong with the old way?

It's just the preferred method, and Symfony has even unified its codebase to it (https://github.com/symfony/symfony/pull/13147).
Though, as long as the test is fixed I'm fine.

Also, it's the method Laravel is already using (since #10444).

authors: taylorotwell vlakoff


text:
Secure password reset tokens against timing attacks and compromised DB

Before this patch, tokens and e-mails where stored in the database in clear text, and lookups where done using simple where()'s.
Problem number 1)
If the DB where somehow leaked, you could compromise any account with a password reset in the database. Password resets are practically randomly generated one-time passwords, and should be treated as passwords and at least obscured by SOME kind of hash function - so why not Bcrypt while we are at it?
See this link for a nice explanation: https://paragonie.com/blog/2016/09/untangling-forget-me-knot-secure-account-recovery-made-simple#secure-password-reset-tokens
Problem number 2)
This is more obscure but potentially a fatal flaw for the Laravel framework. A determined attacker could probably exploit it already.
The problem with using simple where() clauses in the lookup of email + cleartext token, is that MySQL is going to try and optimize this query.
MySQL lookups aren't meant to be constant time, and shouldn't be either; It's job is to be fast.
This however prevent a possible security flaw, as it will start by matching the e-mail field, and if it exists, it will begin matching the token.
If I try and recover using email example@example.org (which I know are in the password reset table because I ordered a reset myself), and I use the token AAAAAAAAAAAAAAAAAAAA, maybe 20 times, and average the response time, and then try BAAAAAAAAAAAAAAAAAAAA 20 times and average the response time, I will be able to make a fairly educated guess at when the string comparison stops in the MySQL database, and therefore deduce the cleartext token.
This will probably take some time, and the time limit on the reset tokens should definitely help combat this already (which is also why I don't see it as critical), BUT if you have a lot of tokens, maybe a slow or misconfigured server, and you are able to do this over and over again without being detected, I'm pretty sure you will get through eventually.
Even tho the tokens are 64 chars as far as I could deduce, it will only take maybe 20 guesses, for around 66 chars chars (a-Z0-9), and the total token length of 64 = 85.000 guesses. According to the birthday paradox, it will likely only take 42500 guesses most of the time, but even if the token expires, the attacker can just order a newly generated one, and try again. He only has to order a password reset AND guess the token for this reset within an hour ONCE, for it to succeed.
This is one of the reasons why we hash our passwords for normal user accounts, but I definitely think password reset tokens should get the same attention.
I hope my pullrequest didn't get too long, and I hope the style guides aren't totally off. It's my first PR but it really nagged me each time I looked at Laravels password resets.

Timing attacks are mitigated by rate limiting, and expiration. They're not a concern here IMO.

In this specific context that is.

That said, the rate limiting implementation in Laravel's core is weak I think. It's session/ip limited, rather than per use I think?

@GrahamCampbell  Where is the password reset being rate limited? I can se normal logins being ratelimited by ThrottleLogins, and you can use ThrottleRequests in general. But I don't see it being applied to the Password reset controller anywhere?

It's my first PR but it really nagged me each time I looked at Laravels password resets.

I'd have preferred if you'd read the security note on the readme though. We generally don't want to make vulnerability information public knowledge without a fix, similar to Symfony. It's a bit late to redact this now though, because it's PR rather than an issue.
We do appreciate you looking into this though for sure! I've let Taylor know about this PR.

@GrahamCampbell  I honestly didn't think of it as a big vulnerability myself.. It started mostly as the nagging feeling regarding plaintext tokens in the database, but that requires full DB compromise to abuse... But the more I think about the timing attack and the more of the Laravel code I read, the more I hope to find somewhere that would completely negate it.
I have yet to do so... Oops...

Where is the password reset being rate limited? I can se normal logins being rate limited by ThrottleLogins, and you can use ThrottleRequests in general. But I don't see it being applied to the Password reset controller anywhere?

Would be done by a rate limiting middleware typically, though, such a rate limiter is floored by the fact someone can just get lots of machines and break in, since as you pointed out, the number of tries is in the thousands, not billions. What we really would need is a per user rate limit, kept in the database. I think that's how Cartalyst's Sentry 2 used to implement this.
Your solution looks reasonable to me, probably better than adding an extra column to the user table, and it does address your 1st point too, though I think we should only consider point 2 a "security risk", point 1 has low probability.

@GrahamCampbell
Well, I can agree that both attack vectors are probably not very likely in the wild, but I could still fear them for targeted attacks. Defense in depth I guess.
The danger of rate-limting pr. user is that you can DDoS users. Doing it by IP as we do now, slows down attacks and requires many IP's that will each get slowed to a crawl pretty fast. Just securing it by using bcrypt as I've proposed is probably also the easiest.
Btw. my Github foo is not that strong, but the failing Travis build is caused by the Unit test and not the code itself. It only "mocks" the created_at attribute, and expects the query to use a where() for token also.. I missed that when making my changes. The StyleCI is complaining about whitespace. I will see if I can fix these up before going to bed. :|

authors: GrahamCampbell HSPDev


text:
[5.3] Fix flash data on redirect() for tests

Currently the tests would not persist flash data on redirect().
Below is an example test before and after this PR fix.
Before
public function it_validates_login() {

    $this->visit('/login')
        ->press('Login')
        ->see('The email field is required');    // fails
}

After
public function it_validates_login() {

    $this->visit('/login')
        ->press('Login')
        ->see('The email field is required');    // passes
}

Related: #15598

I'm not merging any changes into 5.3 testing really right now. You can send this to githu.com/laravel/browser-kit-testing

authors: pushpak taylorotwell


text:
[5.4] Adding MessageSelectorTest to Translation test suite and refactoring MessageSelector

Hello,
i've created a new MessageSelectorTest class with the objective to refactor the getPluralIndex method of the class MessageSelector in the Translation. The test cover all the methods of MessageSelector.
I've replaced the numerous cases by few strpos checks, to improve readability, testing and maintenance. I've also created a getUniquePluralIndex private function, used for countries that have a unique pattern of pluralization, so i don't have to use strpos for them, it runs faster then.
i've also done performance checks to verify that my changes dont overload the translation process :

Locale
Execution Time After
Execution Time Before
Difference

az_AZ
9.05E-6
4.05E-6
-5.0E-6

bn_BD
4.05E-6
9.05E-6
+5.0E-6

zu_ZA
5.0E-6
1.69E-5
+1.19E-5

fi
4.05E-6
6.91E-6
+2.86E-6

fil_PH
7.15E-6
1.28E-5
+5.72E-6

wa_BE
5.96E-6
1.31E-5
+7.15E-6

hr_HR
8.1E-6
1.4E-5
+5.96E-6

uk_UA
8.1E-6
1.4E-5
+5.96E-6

zs_CZ
8.1E-6
1.31E-5
+5.0E-6

ga_IE
8.1E-6
1.40E-5
+5.96E-6

ar_AE
9.05E-6
1.28E-5
+5.72E-6

it seems to improve performance a little bit.
i've also executed all the tests on php 5.6 and it seems to work fine :+1:

OK (2716 tests, 6209 assertions)

Tell me what you think of my changes, if they have drawbacks etc...
I'm new to this repo, so perhaps i've made some mistakes.
thanks.

Going to hold off on this for now if we're not fixing bugs.


text:
[5.4] Sync Event and CallbackEvent withoutOverlapping functions

The signatures for withoutOverlapping() in Event and CallbackEvent are different.
This sync's up the Event to match CallbackEvent, allowing people to set a cache expiration time on Event in the same way as a CallbackEvent.
Non-breaking change - will keep current behavior if no value is set.

I'm not sure this is actually needed / required for non-callback events?

@taylorotwell - it gives flexibility.
If your command dies (i.e. the server reboots) - your mutex remains for 24 hours.
It allows some control to set a shorter (or longer) mutex if you want.

But where is expiresAt used by this class?

It is used by the Mutex. The Mutex gets passed $this - and then the mutex calls expiresAt

authors: laurencei taylorotwell


text:
[5.7] Fixed empty string date values

the same issue as https://github.com/laravel/framework/pull/22108
To have the same error you can create storage where instead of the date we have an empty string.

This should have tests, please.

Please resubmit this with tests and fix the breaking tests.

authors: driesvints mfn zagovorichev


text:
[5.8] Bugfix - QueueFake size method and added a test

This is fixing https://github.com/laravel/framework/issues/29755

This will break if the queue is null?

This will break if the queue is null?

@GrahamCampbell thats why I put first assertion in the test without pushing anything to a queue:
Queue::fake();
        $this->assertEquals(0, Queue::size());

there is initializer for $job in QueueFake
    protected $jobs = [];

No, I mean if there are jobs, but the queue name is null, it should be non-zero.

To clarify, in Laravel, using null for the queue name means "use the default". This needs to be handled within the implementation.

To clarify, in Laravel, using null for the queue name means "use the default". This needs to be handled within the implementation.

@GrahamCampbell , here are my explanations in the test, please consider if possible to explain what's wrong based on the test:
        dispatch($job); // Pushed to default queue
        dispatch(new TestJob2); //  Other job pushed to default queue, this would validate we traverse through different job classes properly
        dispatch($job)->onQueue('Q2'); // Pushed to queue 'Q2'

        $this->assertEquals(2, Queue::size()); // Get the amount of jobs in default queue, internally its NULL for QueueFake
        $this->assertEquals(1, Queue::size('Q2')); // Get the amount of jobs in queue `Q2`

If you're talking about default property for Queue implementations this have nothing to do with QueueFake implementation.

@taylorotwell you interpret this wrong, I'm testing my code which expose Queue::size through API. Since I'm faking queue and testing API which calling size() - as a developer I expect size method  return proper value instead of some random number.

@hlorofos we got this merged 👍

@hlorofos we got this merged 👍

@driesvints appreciate all your help along the way!

authors: GrahamCampbell driesvints hlorofos


text:
[8.x] Move primary after collate

This simply changes the clause order in the MySQL grammar, and appears to fix #37811 in a similar way to the fix that resulted in the 8.48.1 release (which failed for me). I don't know what the definitive order of clauses should be, but this change fixes the issue I found.

Ping @khalilst

@driesvints , @Synchro I have checked the problem and it was related to charset ordering and not collate.
Line 18 in the commit could be like this:
'Unsigned', 'Charset', 'Primary', 'Collate', 'VirtualAs', 'StoredAs', 'Nullable',

However the current ordering in this PR has no problem, but putting the Primary after Collate is NOT neccesary.

@khalilst we got another issue about the original PR: https://github.com/laravel/framework/issues/37820
I'm sending in a PR to revert all of this.

@driesvints Please give me an hour to fix this: #37820 .

FWIW I've updated this PR to move it to after charset instead of collate.

@khalilst we got another issue about the original PR: c
I'm sending in a PR to revert all of this.

I have checked issue #37820 and it was working without any problem.
Probably, it was a wrong bug report or there is something missing there.

We're gonna revert all of this.

@driesvints I think these bugs are very tiny ones. Just need more test cases to prevent a similar situation.
@taylorotwell Please consider this issue #33238

@khalilst we will give this a bit longer but we don't particularly care about DigitalOcean's problems. They aren't ours to fix. Complain to them.

Thanks for merging

@taylorotwell Thanks and I do agree.
Please consider it will result in a single query and faster execution. however, it is very small.

authors: Synchro driesvints khalilst taylorotwell


text:
[9.x] Fix Stringable typehints with Enumerable

Fixes a bug with static analysis using PHPStan that was introduced in #44012. I've taken the liberty of making the Str and Stringable helpers work with iterators where possible, and broadened the types as well.
Below is an example of the errors and how they are fixed now.
https://phpstan.org/r/a8f703b0-5d8c-470e-8b7f-2ce3adbcdf1a

This makes sense. PHPStan documentation says:

If Collection|Foo[] means “Collection or array” in your case even if Collection implements Traversable, you need to disambiguate the type by using Collection|array<Foo> instead.

authors: erikgaal nbayramberdiyev


text:
[11.x] Fix ObservedBy Attribute that did not take custom observables in account

Hello laravel team !
I made this pull request to fix the issue described here
Bug description
When using PHP Attribute ObservedBy to observe my model (instead of register the observer in the EventServiceProvider), "custom" observables added through the initialize{Trait} using addObservableEvents are not taken in account.
(when I use EventServiceProvider to register the observer, it works well).
my investigation :
When using ObservedBy, "custom" observables are not registered because when entering in HasEvents::observe for the first time, the Model is booting (and already tagged as booted in Model::$booted). And the instanciated model in HasEvents::observe line 67 ($instance = new static;) will not boot the model because it is already booting.
Conversely when we register the observer in EventServiceProvider we directly call HasEvents::observe and the previously mentioned $instance = new static; boot the model and can register "custom" observables.
Steps To Reproduce
create a model that use ObservedBy
#[ObservedBy([MyObserver::class])]
class MyModel extends Model
{
    use MyTrait;

    ...
}

create a trait that use addObservableEvents
trait MyTrait
{
    public function initializeMyTrait()
    {
        $this->addObservableEvents('foo');
    }

    /**
     * to easily fire the event for debugging
     */
    public function fireFoo()
    {
        $this->fireModelEvent('foo');
    }
}

create the observer MyObserver
class MyObserver
{
    public function foo(MyModel $myModel)
    {
        var_dump('triggered foo');
    }
}

finally call fireFoo
$myModel = new MyModel();

$myModel->fireFoo(); // doesn't call MyObserver::foo

Solution found
Do not make the trait HasEvents bootable by removing bootHasEvents.
And just call HasEvents::observe at the very end of bootTraits method.
This way all stuff that need to be initialized will be initialized before the model instantiation in the method HasEvents::observe

I need help, I don't know why there is a failing check. I guess it has nothing to do with my fix

@comhon-project best if you add a thorough description to your PR and not just link to an issue.

This feels really edge case. We don't even document those Eloquent methods.

authors: comhon-project driesvints taylorotwell


text:
[11.x] Fix type tests

Latest phpstan got smarter and #51557 has broken tests because of it. This fixes the tests with the latest version of phpstan.
See: https://github.com/phpstan/phpstan/releases/tag/1.11.2

@driesvints here you go, test suite fixed, was not my PR 😄

Thanks @stayallive 👍

authors: driesvints stayallive


text:
Undefined variable: errors

I according to the tutorial step by step, but there have a problem,"Undefined variable: errors (View: /Applications/MAMP/htdocs/WorkReport/resources/views/auth/login.blade.php)",what should id do?
http://www.golaravel.com/laravel/docs/5.1/quickstart-intermediate/

I just encountered the same issue, it would appear that you need to wrap routes with the following:
Route::group(['middleware' => ['web']], function () {
//routes here
}
Just like in https://github.com/laravel/quickstart-intermediate/blob/master/app/Http/routes.php
Hope that helps!

That's only needed for the 5.2 version, not the 5.1 version.

thanks for everyone，it is my bug,i delete the user,sorry to everyone

authors: GrahamCampbell mattmoore83 xzjs

repo: laravel/quickstart-intermediate


text:
feat: add stream.Readable type to upload file api

将 fs.ReadStream 改为 stream.Readable 以支持从非文件读取创建的 sream 流

好嘞，我下个版本带一下，这个文件是自动生成的，这个pr就不合了哈

authors: SageKwun mazhe-nerd

repo: larksuite/node-sdk


text:
'Run Code Inspector' dumps on offline repositories

Abapgit version 1.72
An invalid cast between ZCL_ABAPGIT_REPO_OFFLINE and ZCL_ABAPGIT_REPO_ONLINE occurs.

Full dump here:
MOVE_CAST_ERROR_20180723_101807.zip

@FreHu can you try again with latest build?

repo: larshp/abapGit


text:
Serialize master lang only + settings UI improvements

This PR has 2 features. I started doing the 1st but could not pass by UI improvement, sorry.
The UI improvement is quite straight forward - remove BRs, replace with normal table.
So the main intention is to allow serialization without translations. This is partially a feature related to #2539 and partially addressing issues like #2888. The problem with the latter is that if language mismatch happens then abapGit becomes virtually unusable to deploy the changes - multiple objects always have diffs. disabling i18n serialization both on source system (or repo) and in target system will solve the problem. Of course the translations will need to handle separately but this is lesser evil compared to checking objects one by one on each deploy.
I used io_xml to pass the i18n parameters. This is arguable but it is the only quick way to do it without rewriting the objects interface. The very similar mechanism will be required to pass the list of languages to serialize when #2539 is implemented. The better way would be to add some class zcl_context or zcl_serialization_params or zcl_i18n_params and pass it around. Or maybe changing the objects constructor and changing them massively ... well, constructive suggestions are welcomed

yea, using io_xml to pass the i18n seems like a hack to me, but I hope it will be fixed with the big translation setup sometime 😄

authors: larshp sbcgua


text:
Update cloudwatch, dynamodb, kinesis, s3, sns, ... to 2.17.232

Updates

software.amazon.awssdk:cloudwatch
software.amazon.awssdk:dynamodb
software.amazon.awssdk:kinesis
software.amazon.awssdk:s3
software.amazon.awssdk:sns
software.amazon.awssdk:sqs
software.amazon.awssdk:sts

from 2.17.198 to 2.17.232.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #896.


text:
Unable to delete minions

I have a few minions that no longer exist - their salt-keys were deleted after installing Alcali but directly from the Salt Master and not through the Alcali webui.  These minions no longer show in the "Keys" view of Alcali, however they still show up in the "Minions" view.
I get the following error when trying to delete the minion using the "Delete" button in the "Minions" view:
{ "detail" : "not found: }
They also do not disappear if I refresh the minions.
These minions also have schedules configured against them for highstate conformity checks.  I get an "authentication" denied error if I try to delete these schedules.  I am able to delete schedules for valid minions however.

I am unable to reproduce this issue, how did you install Alcali? (from git, pypi, docker) and what version are you using?
Are you able to see the details of minions? (in previous versions there was a bug if your minion is named with a character like "_-" it could be the issue you're facing.

I installed using the Salt formula.  I work with the person that opened the latest bug for minions containing dashes, at which pointed we upgraded to the latest 2019.2 version.  So, at the moment, we are running:
alcali version
3.0.3
I can reproduce by doing the following:

Install a salt minion and pull it into Alcali so it shows under the Keys and Minions section
On the Salt Master, delete the minion key:  salt-key -d
In Alcali, refresh the keys.  The minion id longer shows in the Keys section.
In Alcali, refresh the minions list.  The minion id that was just delete still shows in the Minions section.
Click the Delete button and the "detail:notfound" error occurs

I want to chime in on this as well. running Alcali 2019.2.4 in docker.
And I am getting same problem.
Deleted minion keys on Aalcali and refresh, deleted minion key does not show up anymore
On Minion page, if I delete the minion on this page I get the same error "{ "detail" : "not found: }"
I analyze what happen when you click delete on the minion page and it does this call

curl 'https:///api/minions/' -X DELETE

@geofflhenderson i still can't reproduce this.
To get the Alcali version you should run:
alcali current_version

It really fit the previous bug. Could you give an example of the minion_id you're trying to delete?
Have you tried other minions?

@mattLLVW alcali current_version is showing: alcali version 2019.2.4.post0
An example minion id is usla-junk-d001.dev.voobiquiti,com

I'm trying to figure out what's going on.
Could you please:
Open the javascript console and check what url is called when deleting the minion?
It should look like this:

Does the last fragment of the url exactly match the name of the minion you are trying to delete?
ex: foo.bar:8000/api/minions/usla-junk-d001.dev.voobiquiti,com/

@mattLLVW yes, it appears to exactly match the name of the minion I am trying to delete.
xhr.js:178 DELETE http://usla-alci-p001.vubiquity.com:8000/api/minions/usla-dckr-d001.dev.voobiquiti.com
404 (Not Found)
(anonymous) @ xhr.js:178
e.exports @ xhr.js:12
e.exports @ dispatchRequest.js:52
Promise.then (async)
l.request @ Axios.js:61
n.forEach.l. @ Axios.js:76
(anonymous) @ bind.js:9
deleteMinion @ MinionsTable.vue:224
click @ MinionsTable.vue?21ff:13
it @ vue.runtime.esm.js:1854
i @ vue.runtime.esm.js:2179
it @ vue.runtime.esm.js:1854
Li.e.$emit @ vue.runtime.esm.js:3888
click @ VBtn.js:125
it @ vue.runtime.esm.js:1854
i @ vue.runtime.esm.js:2179
Zr.s._wrapper @ vue.runtime.esm.js:6917

@geofflhenderson ok, do you have a direct access to Alcali database?
Could you do something like:
mysql -u<DB_USER> -p salt
SELECT count(*) FROM salt_minions WHERE minion_id = 'usla-dckr-d001.dev.voobiquiti.com';

or the equivalent in Postgres.
It will probably be count = 1.
Also doing a refresh of the page and flushing the cache doesn't help, right? Ctrl+Maj+R

@mattLLVW  the query provided does in fact result in count = 1.  I've tried refreshing the page and using the "refresh all minions" functionality in the UI, but the minion still shows.

@geofflhenderson did you update to the last version of Alcali?
Is the problem still present?

I can confirmed that it is working for me, using the latest docker image.

@mattLLVW - apologies for the delay.  I just upgraded and it appears to have fixed the problem.  Thank you.

authors: VietTPham geofflhenderson mattLLVW

repo: latenighttales/alcali


text:
Deploy Ahab Patch

Since we deployed Ahab, maybe it's time to test and merge https://github.com/latin-language-toolkit/arethusa/tree/ahab_search ?

Hmm. Yes, good idea.  Maybe I will use this as a vehicle for getting Masoumeh up to speed...

authors: PonteIneptique balmas

repo: latin-language-toolkit/arethusa


text:
キャプチャー中、連続して操作を行うと画像圧縮に失敗する

Describe the bug
画像圧縮を有効化し、素早く連続した操作を行うと画像圧縮に失敗することがある。
キャプチャー中はCPU処理が高くなるため、画像生成が間に合わず圧縮時に圧縮対象の画像が無いといわれる。
To Reproduce
Expected behavior
キャプチャー終了後に一括圧縮などの検討が必要。
Screenshots
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context

検証して事象再現しないならばクローズする

再現しないためクローズとする。

repo: latteart-org/latteart


text:
add support for "replacement transaction underpriced"

There is a chance between simulating, incrementing nonce, and then sending the tx to the mempool that the nonce was used (e.g. in another process using the same private key). Sending the tx will throw/revert with "replacement transaction underpriced"
We should catch these errors in our sendTransaction and writeContract helpers and retry, the same way we do for nonce errors during simulation.

fixed by #3180

authors: alvrs holic

repo: latticexyz/mud


text:
Rename _expr to expr

Fixes #1263
Hi @abonander, how does this look?
Let me know if this needs any changes.
Thanks

This looks fine, thanks.

authors: RhnSharma abonander

repo: launchbadge/sqlx


text:
Update README.md

Some code in README use ? as placeholder which leads to syntax error at end of input. It's extremely hard to find out when using macros.

The problem with this is it makes it just as confusing for MySQL users. I'm open to ideas on how to make it more clear. Perhaps a comment above like:
// ? for MySQL/SQLite, $n for PostgreSQL, @pN for MSSQL
let mut cursor = sqlx::query("SELECT * FROM users WHERE email = ?")
    .bind(email)
    .fetch(&mut conn);


text:
VS 2017 and Python 3.7

I was trying to make this work with Python 3.7 on Visual Studio 2017. I've simply put the header file to include folder in Python 3.7, included the include and lib folder in VS2017, and tried to compile code from simple code but without any success. It simply creates a command prompt window which turns off after a few seconds.

In details, I think this function fails to execute:
PyObject* res = PyObject_CallObject(detail::_interpreter::get().s_python_function_plot, plot_args);
at line 744.
PuObject_callObject() returns NULL, so according to documentation there was a failure somewhere

Okay no nevermind, it isn't fault of this function, I'm really lost now.

Perhaps try to use a different backend. See my answer to issue #95.

On my computer with python 3.7.3 and VS 2017, the plt::show() doesn't work at all. It can compile but the show() function cannot block the program and no figure shows up.

Maybe try a different backend. I don't know about Windows, but on mac, changing the backend solved the figure-not-showing-up problem.

@FanchenBao  By using wxpython and WXAgg backend it works, thank you.

@chengts95 You are welcome. And also thanks to @propellaone for providing the solution.

repo: lava/matplotlib-cpp


text:
commit -s -m "add a separate calendar page w/signoff"

Signed-off-by: Keenal Shah keenalmshah@gmail.com
Signed-off-by: Keenal keenalmshah@gmail.com
Added a new calendar page. All the places are linked to this new calendar page. The new calendar page has a button that takes them to the bit[dot]ly site where they can add the meshery calendar to their own calendar. Community page also calls out the new calendar page.
This PR fixes #342
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@Nikhil-Ladha I created another PR, I hope I at least fixed the issue of calling the correct calendar links. I have not worked on the designing of the calendar because I do not think I am good at front end. I will be happy be create an issue for that, lmk!
Thanks,
Keenal

Fair enough, one thing if you could just change the title of the PR to something meaningful. Also, we are good to close the previous PR, you can do that.

I changed the title and I'll close the previous PR. Thanks!

I changed the title and I'll close the previous PR. Thanks!

commit -s -m  can be removed from the title and also the double quotes.

Done!

Done!

Thanks 🙂

Yay! Very nice, @Keenal. 🎈

authors: Keenal Nikhil-Ladha leecalcote


text:
React-vis deprecation response

https://github.com/uber/react-vis/issues/1303

Reacharts is the immediate candidate:
https://github.com/recharts/recharts

Recharts looks more promising, I must dig the status of React in there, although the React team are considerate of backward compatibility. Its great talking to myself here.

This is still in the balance:
https://github.com/uber/react-vis/issues/1303#issuecomment-734118180

This is still in the balance:
https://github.com/uber/react-vis/issues/1303#issuecomment-734118180

plotly is JSON driven and wins.

#21

https://github.com/plotly/react-plotly.js/issues/135

repo: layik/eAtlas


text:
Alternative protocol - on demand score calculation

Instead of requiring every manager to calculate the scores continuously, we should have them calculate the score on demand, meaning when they are requested of them.
Lets first say we will calculate the score for 10 iterations.

The request will be sent for a score at 10th, e.g. Request(10, peer_id) iteration from the manager.
If the manager has the proof, it will simply return it. If not, it will send the request to all the managers of neighbors of peer_id for scores at iteration 9, e.g. for j in neighbors: Request(9, peer_id).
After sending a request, there should be a timeout set (see below). After the timeout has passed, we cancel all the
On every response, check if all the neighbors have responded for that iteration, in which case we should make a proof for the next iteration and send it to our neighbors if there is a pending request for it.
The requests will be sent recursively to neighbors of neighbors until iteration 0, and the requests will be kept track of and saved to memory so that the managers can send the responses back.
The timeout will be calculated based on iteration with formula: iteration * 10s or similar, meaning the iteration 10 will have a timeout of 100s and iteration 1 will have a timeout of 10s.

Decided not to implement this due to the complexity

repo: lazovicff/eigen-trust


text:
Some required fields updates

This pr:

prevents the users from creating a minister position before selecting a function role first
adds required field styling as shown here: https://appuniversum.github.io/ember-appuniversum/docs/patterns/au-card-edit
updates the previous implemented required field on the mandatory creation page

Note: This is temporary / quick validation fix. The real validation implementation will include error messages and other data validations.

@Dietr Yes indeed, this is the basic / quick "validation" implementation until the actual validations are implemented. Ones those are implemented the button won't be disabled and the user will see error messages when clicking the button and the state is invalid. :+1:

repo: lblod/frontend-contact-hub


text:
Confirmations fix

Fixing wrong confirmation number (#57)
Corrected Claim link on home page (#58)

Thanks @marcdeb1 , you da man! Will shoot you a DM on Slack. @nikooo777 / @akinwale can you please review / merge / deploy?

repo: lbryio/block-explorer


text:
Edit: channel-selector should re-populate with original channel

From Discord:

Japhet — Today at 4:28 AM
Was wonding how my video become unlinked from my channel.  I realized that I'd edited the thumbnail and by default, the edit form does not keep the channel name.  The default value of the "channel" field is "Anonymous!"  I suggest changing that to be the channel it's currently on.  (Encountered in 0.50.1 Linux and in Android).

Steps:

Repost something using Anonymous
Edit one of your content.  The channel-select is selecting last value (Anonymous)

Ah, so that's how it happens...
Also happens if channel list is not returned in time and edit is clicked.

authors: infinite-persistence tzarebczan

repo: lbryio/lbry-desktop


text:
Rename this repo

lbry.go is a confusing name for what this does.
Also, should this be public?

please let me know if we do this as Chainquery depends on its packages.

We use a lot of stuff. So does internal-apis. It is the repo grin has designated as the Go repo for all things LBRY. So if anything is shared between go apps it goes here. Specifically from the gopkg.lock file
packages = [
    "api",
    "errors",
    "jsonrpc",
    "lbrycrd",
    "null",
    "querytools",
    "stop",
    "travis",
    "util",
    "validator"
  ]

So obviously this repo should be named lbry-libraries.go.

how about bookshelf.go? Stays with the LBRY theme and signifies lots of choices. No strong preference, just thought it was a playful name. @lyoshenka remarked "The swiss army knife" previously, although I think he removed that for the same reasons you want to rename the repo.
I strongly believe any lbry.go repo should be reserved for the daemon rewrite as that is what any one would think this repo was.
Additionally, lbryschema.go, and reflector.go use this as well I believe.

@kauffj and @lyoshenka is this something you want to tackle? It won't be easy, but sooner rather than later. Perhaps a better readme?

This is for @lyoshenka only. I noticed he already started splitting some parts of this repo out.

ill rename this eventually

closing for now

authors: alyssaoc kauffj lyoshenka tiger5226


text:
fix blank thumbnails

for some reasons some videos have blank thumbnails. We should be able to detect that and do something about it.
What we could possibly do:

stall the sync until the thumbnail is available
mark the video as failed and retry a couple of hours later
sync it with a default thumbnails and build some code to update it at a later moment

https://github.com/lbryio/ytsync/issues/82

https://github.com/lbryio/ytsync/issues/82

New ones should be fixed, older ones will need manual fixing.

this has been partially fixed. At least one livestream still failed to fetch the right thumbnail so perhaps we have to increase the wait period or detect when such thumbnail is wrong and wait/fail.

repo: lbryio/ytsync