[TodoSkill] To Do pagination shows first page twice

Project
Skills, TodoSkill
Description
The first page shows twice when paginating over the a list.
To Reproduce

Create a list with more items than the ones that can be displayed on a page. In this version the page size is items so I created a To Do list with 8 items
Say show my to do (and the first 6 items will show up)
Say yes when prompted to see more. The same page is repeated

Expected behavior
I would expect pagination to work.
Screenshots

Additional context
Also the text in the chat window says "Do you want to hear more from your list?" In the text window it should say "Do you want to see more from your list?" or "Do you want to read more from your list?" not "hear", hear is fine for the Speak response but not for text.

Current design from Quirine is that it will display 6 items but only read the first 3. And then it will read next 3 items but keep the same card if you answer "yes" to "Do you want to hear more from your list?". Let's discuss with Quirine about the experience here

I think that what is read aloud shows match what's on the screen. Otherwise is confusing and doesn't make sense in a bot that doesn't have speech.


Kivy Installation on MacOS 10.13 not working

Versions:

Python 2.7.10
-OS: MacOS 10.13
-Xcode 9.2
-Kivy Installation Method: brew + pip

Description:
When attempting to install pip via https://kivy.org/docs/installation/installation-osx.html#using-homebrew-with-pip I'm running into installation errors.
Code and Logs:
Installation Process:
$ brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
No issues.
$ pip install Cython==0.26.1
Received Error as follows:
Collecting Cython==0.26.1
Using cached Cython-0.26.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: Cython
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 784, in install
**kwargs
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 323, in clobber
shutil.copyfile(srcfile, destfile)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/cython.py'
Next Step in Installation:
pip install kivy
Received error as follows: (Obviously Cython is needed.)
Collecting kivy
Using cached Kivy-1.10.0.tar.gz
Complete output from command python setup.py egg_info:
Using distutils
Cython is missing, it's required for compiling kivy !

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/gl/zg315dvs3j1c791yq6mgt55w0000gn/T/pip-build-8uhVgT/kivy/setup.py", line 219, in <module>
    from Cython.Distutils import build_ext
ImportError: No module named Cython.Distutils

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/gl/zg315dvs3j1c791yq6mgt55w0000gn/T/pip-build-8uhVgT/kivy/
I'm at a loss. This issue is beyond my knowledge. Anybody have any suggestions? Thanks.

+1 And if you attempt to continue the installation afterwards, you get this:
/private/tmp/pip-build-_27j98g8/kivy/kivy/graphics/svg.c:1:2: error: Do not use this file, it is the result of a failed Cython compilation.
#error Do not use this file, it is the result of a failed Cython compilation.
^
1 error generated.
error: command 'clang' failed with exit status 1

with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/cython.py'

Seems like it wants to write this file, but your user doesn't have permission. I'm not familiar with MacOS specifically, but pip install --user Cython (to install on a per-user basis without root access) or sudo pip install Cython (for a system-wide installation) might work?
Another option is pyenv, it works well for me on linux

pip3 install --user https://github.com/kivy/kivy/zipball/master
worked fine for me...

Where is this "pip3 install --user https://github.com/kivy/kivy/zipball/master" command comes from? I can't seem to find it in https://kivy.org/docs/installation/installation-osx.html#using-homebrew-with-pip

I saw it in another issue regarding the install on MacOS.
5345

Closing as is referring to Python 2.7 which reached EOL a long time ago + that seems a support request.
Feel free to re-open if needed.


Eager loading

This adds Relation::Lazy#eager_load interface backed by Relation::Graph.
TODO

[x] add Relation::Lazy#eager_load which sets up a relation graph
[x] make it possible to eager-load multiple times which results in a nested structure
[x] make sure curried relations behave properly
[x] make sure rom-sql will be able to build efficient queries

closes #208

So, this is it, eager-loading. Thoughts? /cc @cflipse @aflatter @splattael @gotar @maetl

I should mention that this adds eager-loading only to relation API. Support for mapping eager-loaded relations will be added in a separate PR

+1

This is excellent.
It’s surprisingly abstract, and I found it difficult to comment on or explain my ideas, so apologies if the following doesn’t make much sense.
Things I like:

Neat and concise layering/composition that leverages existing behaviour
Cohesive API symmetry/design patterns (sharing consistent method arguments and the left-right pipelining)
It requires a tiny amount of code

API design considerations:

Is #eager_load the right name in the high level API? It describes what it is rather than what it does, and requires a bit of context around ORM patterns or experience with ActiveRecord to understand what it means, which feels a bit out of place with the rest of the API. A simple verb like #load, #fetch, #materialize, #embed, #combine, etc, might be more expressive.
Unlike the rest of the ROM::Relation interface, it’s not immediately obvious at a glance what structure the results are returned as (nested objects? flat tuples? callable proc?)
There’s a bit of an inside/outside ambiguity with the relation style—#eager_load is only available on the Lazy relation instance, which may confuse people who are drawn to trying to encapsulate these kinds of operations behind methods in the relation declaration itself. Some guidance around what does and doesn’t go in the relation classes/DSL would be useful (something to consider for the docs I guess).

Thanks @maetl for this awesome feedback. Let me try to reply:

Is #eager_load the right name in the high level API? It describes what it is rather than what it does, and requires a bit of context around ORM patterns or experience with ActiveRecord to understand what it means, which feels a bit out of place with the rest of the API. A simple verb like #load, #fetch, #materialize, #embed, #combine, etc, might be more expressive.

I used eager_load because that's how it's called in other Ruby ORMs although method names are different (AR's includes Sequel's eager). I'm absolutely happy to rename it to something shorter and more descriptive. Maybe combine would be good since we are combining results from multiple relations.

Unlike the rest of the ROM::Relation interface, it’s not immediately obvious at a glance what structure the results are returned as (nested objects? flat tuples? callable proc?)

It returns parent relation with children in nested arrays. ie: [users, [tasks, [tags]]]. So left is parent and right are children. Mappers will be able to collapse that into an aggregate.
When I say "it returns" I mean that by calling it you get that result. This is a common pattern used for all ROM objects - they respond to call and also relations are coercible to arrays.

There’s a bit of an inside/outside ambiguity with the relation style—#eager_load is only available on the Lazy relation instance, which may confuse people who are drawn to trying to encapsulate these kinds of operations behind methods in the relation declaration itself. Some guidance around what does and doesn’t go in the relation classes/DSL would be useful (something to consider for the docs I guess).

Yes this is something that must be documented. Lazy and friends are interfaces for composing relations and sending data through data-mapping pipeline whereas "plain" relations are meant to be simple data-access encapsulation layer and nothing more.

I like that; the graph structure looks quite useful, as I was considering that something simliar is needed for commands (create a user, stream it into several task creations, for example).
#eager_load might do with some synonym poking ... I like combine,  possibly even merge though I'm not sure that's the right connotation.  nest might be overload with other mapper related methods and cause confusion, and tree is probably too implementation revealing.
Something to emphasize in the docs might be that the right side is a tree structure; and therefore eager_load can come in with multiple arguments ... I see it in the specs, but it's not called out in the YARD.
Additionally, it might be good to be able to expand nodes in some way ... maybe Graph#eager_load which returns a new graph at the same level, with the additional ags appended to the node list?  Allows for gradual construction, still.

Additionally, it might be good to be able to expand nodes in some way ... maybe Graph#eager_load which returns a new graph at the same level, with the additional ags appended to the node list? Allows for gradual construction, still.

Yep I was planning to add that later on, I want to tackle mapping part first though as it may influence Graph API (it probably won't, but who knows).
FYI: compose has got 3 thumbs-up already (:


Assets not loading properly.

I've loaded the gem on my Gemfile but when I run my app the fancybox assets do not appear to be loading. The css at least shows an empty comment block.

Your problem @lb0202 is the you require fancybox before the jquery.
change from
//= require fancybox
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
to
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require fancybox

@diegosax, Thanks for chiming in to help @lb0202. :beers:
@verygreenboi Does this solve your problem too? I'd like to close this issue out.

Yes it does! Silly me. Thanks!

I'm having the same problem as @verygreenboi, I'm including the assets in the right order. What's loaded in the browser is:
fancybox.css
/*

 */

fancybox.js
Just a bunch of empty lines
In development, because those two files only have requires in them, and ?body=1 is being passed to them, they will of course be empty. The problem is that the required files aren't being loaded in separately by the asset pipeline though.
I'm using the latest version of 4.1.

@brendon - I'm also having a problem with "Uncaught TypeError: $(...).fancybox is not a function".

@ACPK, shouldn't that be $(...).fancybox(); closing parentheses? If it's not that, it looks like fancy box isn't loaded so you need to dig a bit deeper as to why that is. Are there any console logs?


Add the robot_client_node to the moveit2_utils package

I've looked into trying to separate the robot client_dependency from the gripper_client and move_client, but there's a few issues to face. There's an odd linked dependency where robot_client has references to move_client and gripper_client, but gripper_client also has a reference to move_client, which only gets called in change_gauge, a function which is in turn exclusively called by robot_client.
In short: The dependencies are a bit odd.
The first solution which comes to mind is to have the robot_client only interact with the move_client and the gripper_client through service calls instead of directly holding references to the nodes, but it must be noted that this would require a fair bit of refactoring of both the gripper_client and robot_client node. To ensure this would be the way to go, perhaps the basic structure of these interfaces would need to be discussed. Otherwise, the robot_client_node still loses its ability to be a more general high-level manipulation node, which defeats the point

@SahWag thanks for the analysis. The reason we have it like that here, it is that for the gripper to change gauge, one needs to move the robot. This is the reason for this “interlocking”. We can leave this for now as it is, but for the machine tending project we don't need that, so this will add clarity how to manage this in the future.
OK, we keep this for now as it is and then see later how to fix it.

As an additional note I hadn't noticed before, the move_client is not designed as a node, but as a helper class. As such, the move_client would have also had to be updated to be an individual node if service calls were used as a solution


Improve invite dialog

[x] Show avatar for chips inside input
[x] Show full mxid in input chips
[x] Focus/Hover over suggestion will show mxid as tooltip
[x] Show full mxid if suggestion have same name
[x] Enter will submit invite form if input is empty else it will add mxid in input chips or search for suggestion otherwise
[x] Suggestion search will work if input text does not start with @
[x] Suggestions are not scrollable anymore

LGTM 👍


Update Footer.tsx

Description

What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

Mobile & Desktop Screenshots/Recordings

Added tests?

[ ] 👍 yes
[ ] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

Hey @Fa1thinyourself, thanks for the pr. We already have a link to our dev.to account, I'm going to close this pr.
Consider opening an issue first the next time before sending a pr.


Add additional Qualification Type Codes for MATS Averaging Groups

Sources electing to use emissions averaging under §63.10009 can average for more than just one MATS parameter.  For example, individual HAP metals or both PM and Hg.
The only applicable qualification type code currently is HGAVG, which has a label of "MATS Hg Averaging Group" in ECMPS 1.0.
Per 3/28/2024 weekly support meeting with EPA, this list needs to be expanded to include additional codes for other parameters.
Table 83 in the current QA Beta RI includes the following parameters for averaging.
We need to clarify with EPA if we should add a code for each of these (besides HG which is covered by HGAVG) or if some of them can be consolidated into one code.

PM: Filterable particulate matter
HG: Mercury
HCL: Hydrogen Chloride
HF: Hydrogen Fluoride
SO2: Sulfur Dioxide
TNHM: Total non-Hg HAP metals (except for oil-fired sources)
TMIH: Total HAP metals including Hg (oil-fired sources, only)
SB: Antimony
AS: Arsenic
BE: Beryllium
CD: Cadmium
CR: Chromium
CO: Cobalt
PB: Lead
MN: Manganese
NI: Nickel
SE: Selenium

4/9/24: Email sent to Chris and Charlie for their review of the list.

4/10/24 email response from Chris:
Realistically people are only using PM, HG, S02, TNHM, and maybe TMIH if we have any oil fire units left. So please add these codes. We can always revise later if we find something different.

PM: Filterable particulate matter
HG: Mercury
HCL: Hydrogen Chloride
HF: Hydrogen Fluoride
SO2: Sulfur Dioxide
TNHM: Total non-Hg HAP metals (except for oil-fired sources)
TMIH: Total HAP metals including Hg (oil-fired sources, only)
Other including one or more of SB: Antimony, AS: Arsenic, BE: Beryllium, CD: Cadmium, CR: Chromium, CO: Cobalt, PB: Lead, MN: Manganese, NI: Nickel, SE: Selenium


Resolve urls

Overview
This PR looks at https://github.com/roocs/rook/issues/91 - resolving lists of files/URLs
inventory_url will need to be changed back to use master branch when it is ready
2 tests are still failing tests/test_wps_orchestrate.py::test_wps_orchestrate and tests/test_wps_subset.py::test_wps_subset_cmip6_original_files - need to look into these

@cehbrecht If it's to do with the outputs is no longer a list change, any idea why these 2 tests are failing? I get the error IsADirectoryError: [Errno 21] Is a directory: '/' for the wps_orchestrate.py test

@cehbrecht If it's to do with the outputs is no longer a list change, any idea why these 2 tests are failing? I get the error IsADirectoryError: [Errno 21] Is a directory: '/' for the wps_orchestrate.py test

@cehbrecht If it's to do with the outputs is no longer a list change, any idea why these 2 tests are failing? I get the error IsADirectoryError: [Errno 21] Is a directory: '/' for the wps_orchestrate.py test

Can I reproduce it? Having the branches of roocs-utils etc in setup.py.
You can see the xml response in the test with:
print(f"resp={resp.data}")
assert_response_success(resp)

@cehbrecht If it's to do with the outputs is no longer a list change, any idea why these 2 tests are failing? I get the error IsADirectoryError: [Errno 21] Is a directory: '/' for the wps_orchestrate.py test

Can I reproduce it? Having the branches of roocs-utils etc in setup.py.
You can see the xml response in the test with:
print(f"resp={resp.data}")
assert_response_success(resp)

@agstephens @cehbrecht I've updated this in line with what we discussed yesterday - when the resolve_url branches from roocs_utils and daops are aligned with this branch all the tests pass for me apart from tests/test_wps_subset.py::test_wps_subset_cmip6_original_files which raises the error pywps.exceptions.FileSizeExceeded: 400 FileSizeExceeded: File size for input "?" exceeded. Maximum allowed: 1048576.0 megabytes
I haven't seen this before but I believe this test has passed previously

@agstephens @cehbrecht I've updated this in line with what we discussed yesterday - when the resolve_url branches from roocs_utils and daops are aligned with this branch all the tests pass for me apart from tests/test_wps_subset.py::test_wps_subset_cmip6_original_files which raises the error pywps.exceptions.FileSizeExceeded: 400 FileSizeExceeded: File size for input "?" exceeded. Maximum allowed: 1048576.0 megabytes
I haven't seen this before but I believe this test has passed previously


Kill two way data binding

RIP in peace 2015-2016. Probably won't be missed tho.

Once the build is green I'm going to merge to the 3.0.0 branch.
The 3.0.0 branch only exists because this PR removes the _updateValue() method and we need that to reproduce an issue for ember beta (#138)


Use  for example Clock component

Just because there’s an element for that.

Coverage remained the same at 100.0% when pulling 6a2b9e692d17f3af3917d0efcdb377a7fb84c144 on tigt:patch-1 into 8be9c5f70ba8453fb3c262f38bbc852ee59afb64 on developit:master.


Custom Parameter/ Json Payload for from_llm_and_api_docs() function

Feature request
I am trying to use the from_llm_and_api_docs() function with an API that only supports parameters via the "params" parameter in the request library:
The from_llm_and_api_docs works well with apis that encode parameters in the URl. Eg: https://api.open-meteo.com/v1/forecast/latitude=123&longitude=123
I would need langchain to generate a json_payload and input it into the "params" parameter in the request header. I looked into the Langchain code and it seems like that this line:
requests_wrapper = TextRequestsWrapper(headers=headers)
needs to be augmented with a "params" parameter.
Example:
r = requests.get('https://www.domain.com/endpoint',params=params,cookies=cookies, headers=headers,json=json_data)
json_data = {
'field_ids': field_ids,
'order': [
{
'field_id': 'rank_org_company',
'sort': sort_order,
},
],
'query': [
{
'type': 'predicate',
'field_id': 'founded_on',
'operator_id': 'gte',
'values': [
'01/01/2018',
],
},
{
'type': 'predicate',
'field_id': 'equity_funding_total',
'operator_id': 'lte',
'values': [
{
'value': 15000000,
'currency': 'usd',
},
],
},
{
'type': 'predicate',
'field_id': 'location_identifiers',
'operator_id': 'includes',
'values': [
'6106f5dc-823e-5da8-40d7-51612c0b2c4e',
],
}
],
'field_aggregators': [],
'collection_id': 'organization.companies',
'limit': 1000,
}
How do I need to change the from_llm_and_api_docs() accordingly?
Motivation
Many APIs are controlled via a json payload and not solely via parameters in the URL.
Your contribution
I could look into changing the request wrapper but maybe there is a more elegant way of doing so.

Thank you. This is partially solving the problem. I would like to define the parameters and how to use them in the  api_docs object. Then I want the agent to figure out how to modify the "params" object (example: list of dicts) to get the desired output.
The "params" object would replace the request URL that langchain generates. The agent would purely query the API via the parameters object.

Example:
API DOCS:
Parameter	Format	Required	Default	Description
funding_total	integer	No	Total funding amount of a company
Input: "I want to find companies that have a minimum total funding amount of 10million USD"
Parsed Query:
json_data = {
'field_ids': field_ids,
'order': [
{
'field_id': 'rank_org_company',
'sort': sort_order,
},
],
'query': [
{
'type': 'predicate',
'field_id': 'funding_total',
'operator_id': 'lte',
'values': [
{
'value': 10000000,
'currency': 'usd',
},
],
}
],
'field_aggregators': [],
'collection_id': 'organization.companies',
'limit': 50,
}
r = requests.get('https://www.domain.com/endpoint',params=params,cookies=cookies, headers=headers,json=json_data)
The agent will correctly have changed the json payload/ params object to facilitate the query.
The API will return a list of 50 companies that match the criteria: total_funding_amount > 10000000.

@dosubot How to call a Post API and pass request body in APIChain.from_llm_and_api_docs?


Add Buffer.AbsPath and a plugin function DirectoryName

Makes it easier for plugins to get full path of current buffer and directory where the file is!

Buffer.AbsPath

Absolute path of current buffer

DirectoryName

a plugin function that calls filepath/Dir golang function
Returns directory name of given path

Thanks!


test: use %empty-directory more aggressively

Convert the last embedded cases of rm -rf && mkdir -p to the
empty-directory lit substitution.  NFC.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @Rostepher

@swift-ci please test and merge


filtering host and gut material

Pierre Rouzé yesterday hinted on a possible application of the Unipept Shotgun Metagenomics/Metaproteomics Analysis Pipeline. They are sequencing a marine organism (forgot about the name), but after DNA extraction and sequencing, they end up both with DNA reads and transcript data from the marine organism they want to sequence and for example bacterial material that is also picked up. What they want to do is to filter out the DNA/transcripts they want to use in the assembly pipeline from the noisy sequences that do not come from the organism.
Bram Verhelst will pass by to discuss if the Unipept command line tools cannot be used for this purpose.
Original issue by @pdawyndt on Thu May 22 2014 at 06:52.

Bram Verhelst (VIB) uses MetaGeneMark (http://exon.gatech.edu/GeneMark/) for gene calling on metagenomics data sets. However, if I compare the HMM of both MetaGeneMark and FragGeneScan, I would expect the latter to perform better on correcting read errors. That's also what is shown in the FragGeneScan paper.
Original comment by @pdawyndt on Thu May 22 2014 at 07:39.


Fix broken link to schema.ts in README.md

In section **Credential Schema ** both links to schema.ts are broken.

Fixed in #150


Improve PKGBUILD

Hello, I've the program from AUR new feed and took a look at the pkgbuild, some things need or could to be improved

variable _name which is equal to pkgname is not needed
provides and conflicts are not needed (are 'variations' that need to provide and conflicts nickvision-tagger)
sha256sums is preferred
git submodules need to be downloaded in source=() and configured
is prohibited to touch users home, gtk-update-icon-cache is done by a pacman hook at installation

LGTM, however it seems to be missing gtk-update-icon-cache. How would I handle that?

Thanks for your contribution!

it seems to be missing gtk-update-icon-cache. How would I handle that?

gtk-update-icon-cache is required by gtk4, the package contain an hook and scripts that are performed by pacman automatically (instead of being done by the package like in .deb AFAIK)

About https://aur.archlinux.org/cgit/aur.git/commit/?h=nickvision-tagger&id=b31f26beeb23bd5349389eac6ddf81555e4e4b30
Don't use sudo in pkgbuilds, also reported https://aur.archlinux.org/packages/nickvision-tagger#comment-867791
Would be nice to have handy links, done with

 ln -s /usr/bin/org.nickvision.tagger ${pkgdir}/usr/bin/nickvision-tagger
 ln -s /usr/bin/org.nickvision.tagger ${pkgdir}/usr/bin/tagger

Ok i see what they were saying about gtk-update-icon-cache not being needed
I'll fix it and add in the links

Fixed in the latest PKGBUILD

Thanks for updating!


Fix broken lint workflow

Fix golangci-lint errors caused by go upgrade

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>8:
0.0%

Covered Lines:
462

Relevant Lines:
462

💛  - Coveralls


Update request: openssh 9.7p1 → 9.8p1 (critical vulnerability in sshd on glibc systems)

Package name: openssh

Latest released version: 9.8p1

Current version on the unstable channel: 9.7p1

Current version on the stable/release channel: 9.7p1

[x] Checked the nixpkgs pull requests

Notify maintainers
@Conni2461

There is a critical vulnerability in ssh
https://www.openssh.com/releasenotes.html
https://thehackernews.com/2024/07/new-openssh-vulnerability-could-lead-to.html
Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

Duplicate. #323753


[Proposal] Inline embeds

Many changes introduced in Ecto 2.0 move it away from being just a database library and bring it closer to being a general data modeling solution.
We'd like to propose an enhancement to schemas and changesets that targets easy processing of external data, and makes Ecto more robust when it comes to data modeling. The aim of this proposal is to make Ecto schemas easier to use as a first line of your application, processing external data and getting it into structured format, that can be easily processed by other layers.
For a long time Ecto had a perfect solution for modeling such data - embeds. With the recent removal of the __meta__ field from embeds and removal of callbacks, embeds are even closer to being regular elixir structs with additional type information than to full-blown Ecto schemas. They make it easy to declare typed structs with custom validation logic that can be completely separate from the database. Using embedded schemas as pure data structure gives you the power of changesets and Ecto types for modeling your data. Those could be a part of your applications architecture in a role similar to form objects or commands known from various OO solutions. The biggest issue is that they become rather verbose when dealing with nested data, what is a common situation in many APIs - each level of nesting requires defining separate modules with schema declaration.
Usage
We'd like to propose ability to define embedded schemas inline in the parent schema.
defmodule NewOrderCommand do
  use Ecto.Schema

  embedded_schema do
    field :user_id, Ecto.UUID

    embeds_one :address, Address do
      field :street, :string
      field :country, :string
      field :location, Geo.Point
    end

    embeds_many :items, Item do
      field :item_id, Ecto.UUID
      field :quantity, :integer
    end
  end
end

This would define two additional embedded schemas NewOrderCommand.Address and NewOrderCommand.Item. It's not yet clear if we'll go with the embeds_one/many accepting a block route or introduce separate inline_embeds_one/many macros.
The new schemas could be later used similarly to separately defined embeds with the exception that it woudn't be possible to define changeset functions that cast_embed expects. This shouldn't be an issue though, because we can use with option for passing arbitrary changeset function.
def changeset(struct, params) do
  struct
  |> cast(params, [:user_id])
  |> cast_embed(:address, with: &address_changeset/2)
  |> cast_embed(:items, with: &item_changeset/2)
  |> validate_required([:user_id, :address, :items])
end

defp address_changeset(struct, params) do
  struct
  |> cast(params, [:street, :city])
  |> validate_required([:street, :city])
  |> validate_existing_city
  |> find_location
end

defp item_changeset(struct, params) do
  struct
  |> cast(params, [:item_id, :quantity])
  |> validate_required([:item_id, :quantity])
  |> validate_number(:quantity, min: 0)
end

After validations, building the changeset Ecto.Changeset.apply_changes/1 allows us to extract the final struct for further processing - the final result is plain data we can safely pass into code that is completely unaware of ecto. With a simple function (such as changeset_to_tuple/1 shown below) we can format the changeset for easy processing in pipelines or with macros.
def changeset_to_tuple(%Ecto.Changeset{valid?: true) = changeset) do
  {:ok, Ecto.Changeset.apply_changes(changeset)}
end

def changeset_to_tuple(%Ecto.Changeset{errors: errors} do
  {:error, Ecto.Changeset.traverse_errors(changeset, &format_error/1)}
end

:+1:

This is so freaking awesome, this makes it super useful when the requirements are fluid 👍

This would also be really useful for creating an Elasticsearch adapter


[Action Item]

Removed : Occurences of bit set, as it has not been used;
Added :  Array has been used for the frequency count, so I have added
the comment with array part, modified the comment based on the approach;

Hi @alexhagiopol @howardwkim  @Vipul97  and @yuriaps , Did some minute changes in the comment section not much. I hope it turns helpful.


Bump required node version to >=12.14.0  and build using rollup

Description
A pair of breaking changes.

Update required node version to be >=12.14.0, and add an engines.node key to each package.json to enforce that.
Update sewing-kit-next build config to use the rollup build.

This PR also contains some CI simplifications copied from #1908. Hopefully that can get merged then I'll rebase this PR.
Type of change
Every package: MAJOR

Alrighty then. Major release time. Let's do this!


Hazelcast version upgrade

Currently vertx is using hazelcast version 4.0.2, this version is being marked as vulnerable. I can see the current snapshot is using 4.1.2 hazelcast, when this snapshot will be upgraded to release version.
Until the release version is ready, can I upgraded hazelcast alone, currently I am using 4.0.2 vertx version and I can try upgrading to 4.1.2 if necessary.

Duplicates #145


CLI tool

No, answer from #220, #191, #174, #147 are not answering this issue.
That doesn't answer the local development/presentation question, actually we can:

Buy the 4$/month subscription: Works with local file system, Live previews in the browser and A dedicated Desktop App. But it seems it still require the bundle from gitpitch.com to work offline (#174).

Free: upload a PITCHME.md file to a public repository, edit it locally, re-push, preview, edit it locally, re-push, preview, edit it locally, re-push, preview then download the build and serve it. If a modification is needed?  edit it locally, re-push, preview, then re-download. And not talking about slideshow that you do not want to put online or if you have no internet connection.

But actually people need a little gitpitch CLI tool just to preview an offline slideshow with liveload (not building the bundle or PDF). This only require an embedded web server and a javascript markdown renderer script like reveal.js is already doing:

You'll also need to add the plugin/markdown/marked.js and plugin/markdown/markdown.js scripts (in that order) to your HTML file.
This is based on data-markdown from Paul Irish modified to use marked to support GitHub Flavored Markdown. Sensitive to indentation (avoid mixing tabs and spaces) and line breaks (avoid consecutive breaks).
Source

This only require an embedded web server and a javascript markdown renderer...

The GitPitch server performs significant pre-processing of slide content to deliver the full set of features available to slide decks served online at gitpitch.com. The same pre-processing is required to serve slide decks generated by GitPitch Desktop offline.
The simple CLI tool w/ embedded web server you are requesting makes sense for simple reveal.js presentations. But will not work for GitPitch slide decks.

Smart answer, you mean "Pay". There is the desktop tool but you can do the same tool without a GUI. And there is the server but the server will work only for instance of gitlab, github, etc. why can't the server render a local directory? The true answer is: "because we want for people to pay". That's why you provided a bundled zip where the markdown was compiler as html instead of keeping the markdown file and loading it from a JS library so that people can't modify it easily offline. We are forced to use the online gitpitch.com with reduced feature or pay to get offline.
So GitPich is not free, it is freemium.
So GitPitch is not open source but mostly closed source (docker, gitpitch desktop) with partial open source code (server and revealjs fork).
But that is right to be a paid and closed source software  but as there is no description of the free plan here https://gitpitch.com/pricing, one begin to use the tool until he realizes that the free plan is more a demo or very reduced version and that he won't be able to do what he though I will be able to do for free.
So there is one action you must do: add the description of the free plan like GitHub did so people won't be deceived as I was:

Also most a the features of the Lite, Pro or Enterprise plan are enterprise there is nothing done for individuals.
An individual just want to make a presentation and be able to do it offline not to have it delivered by docker, export slide to PPTX, keynote, google slides, etc. Will I pay 50$/yr to do 1 presentation per year to make a conference I'm not paid for? Of course not only an enterprise can afford that.

Thanks for your suggestion. The GitPitch pricing page now links directly to the GitPitch community features page. That page provides a high-level summary of the free features available to everyone on GitHub, GitLab, and Bitbucket.
With regards your nothing-for-individuals comment. The GitPitch Documentation provides detailed guides for all features. If you read these docs you will see that the vast majority of features are free. And that feature list is extensive. Where a feature is subscription-only, that feature is clearly marked as such.
Ultimately, you appear to be looking for a free, offline slideshow tool. Ok. GitPitch is not for you. There are numerous other options out there for you to try. The old favorites PowerPoint and Keynote. Use reveal.js directly. Or try a markdown editor like Marp. Best of luck finding the tool that's right for you.

Instead of a hero announcing GitPitch Community  features I was more thinking about a 4th column so it will be very clear!

@gitpitch Thanks for suggestions, I knew Marp but the old deprecated version now the New Marp Next project is exactly what I need! Thanks.


Refs #28373: TIME_ZONE value in DATABASES settings is not used for date lookup

Greetings, here is the ticket of the issue:
https://code.djangoproject.com/ticket/28373
I create a test case and everything works fine on my computer, please take a look.

Did you run the tests with MySQL? There are some failures you can see if you click on "Details" in the pull request checks.

Yeah I also see the errors coming from that, trying to fix that...

Please send a new pull request if you get it working.


[BugFix] Fix split constant non-ASCII source and empty delimiter

The constant source and empty delimiter doesn't consider non-ASCII source.
MySQL> select split('膨胀', '');
'utf-8' codec can't decode byte 0xe8 in position 2: invalid continuation byte

What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.1
[x] 3.0
[x] 2.5
[x] 2.4

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:disappointed: fail : 16 / 24 (66.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/exprs/split.cpp
3
11
27.27%
[43, 44, 45, 46, 47, 48, 50, 65]

:large_blue_circle:
src/util/utf8.h
13
13
100.00%
[]

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:disappointed: fail : 16 / 24 (66.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/exprs/split.cpp
3
11
27.27%
[43, 44, 45, 46, 47, 48, 50, 65]

:large_blue_circle:
src/util/utf8.h
13
13
100.00%
[]

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:disappointed: fail : 16 / 24 (66.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/exprs/split.cpp
3
11
27.27%
[43, 44, 45, 46, 47, 48, 50, 65]

:large_blue_circle:
src/util/utf8.h
13
13
100.00%
[]

@Mergifyio backport branch-3.1

@Mergifyio backport branch-3.0

@Mergifyio backport branch-2.5

@Mergifyio backport branch-2.4


KAFKA-17233: MirrorCheckpointConnector should use batched listConsumerGroupOffsets

Of the Admin interface, the listConsumerGroupOffsets by groupSpecs was chosen
because it is the most similar method to the one by groupId. Both methods do
not need to specify options, but create them with the
ListConsumerGroupOffsetsOptions empty constructor and both end up calling
listConsumerGroupOffsets with a created groupSpecs map and default options.
For this reason, the method listConsumerGroupOffsets of class
MirrorCheckpointConnector needed to be changed to adjust itself to the new
method used.
Since all group offsets are now obtained asynchronously, it is necessary to
modify the for loop in findConsumerGroups: the ListConsumerGroupOffsetsResult
must be obtained outside of the for loop, and for each group it is needed to get
its topic partition and metadata.
To adjust the tests and perform the mock for listConsumerGroupOffsets, it has
needed to create futures to create a ListConsumerGroupOffsetsResult as the
return of listConsumerGroupOffsets. For this reason, the empty constructor has
become public to be accessed inside the test class.
The assertEquals argument order has been fixed as respectively expected and
actual.
The offsetsForGroup4 instance has been removed as listConsumerGroupOffsets could
not return it as part of the result. This is because group "g4" would be
filtered and not be in the filteredGroup that is passed to
listConsumerGroupOffsets.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@gharris1727, could you check it?

@gharris1727, thank you for the appointed issues! As suggested, the public access modifier has been removed, a single groupSpec for map entries has been created, and tests have been mocked!

Hi, @gharris1727! Could you review it, please?

@fonsdant Can you rebase the PR so it triggers the new CI? Thanks

@mimaison, done! Thanks :)

Thanks for the update. Spotless is failing, see the error in https://github.com/apache/kafka/actions/runs/11364366312/job/31628998328?pr=17038

@mimaison, thanks! I have pushed an update for it.

I'll leave the PR open for a couple of days in case @gharris1727 wants to take another look.

Thanks, @mimaison! 😄


useId() unusable with SSR

Moved from https://github.com/vikejs/vike/discussions/1291
useId() is supposed to generate deterministic unique IDs. Rendering the app first on the server and then on the client should lead to the same unique ID.
However in vike-react, because we feed react with different apps on server (including <head>) and on client (without <head>), we end up with different IDs, and so with hydration mismatches.
See steps to reproduce.
FYI @AndrejNemec

Makes sense, I think it's a regression that got introduced by https://github.com/vikejs/vike-react/pull/33.

@AndrejNemec PR welcome in case that's something you'd be interested in. The change is quite easy. Let us know if you're busy; we'll quickly fix it ourselves then.

Thank you for considering me for the PR contribution. I'm currently involved in a project named "vite-painless-react", which brings several key enhancements to the table:
i18n Support: Integrated with the i18next package for comprehensive internationalization.
Dark/Light Theme Support: Facilitates an easy switch between dark and light themes, fully compatible with both SSR and client-side environments.
Enhanced HTML Head Management: Offers improved handling and functionality of the HTML head section.

You can explore the project here: vite-painless-react
For a practical implementation example, check out: vite-painless-react example
While I'm currently focused on developing this package, I see potential synergies with Vike. If integrating these features aligns with your vision, my package could serve as a useful reference or even as a direct addition to Vike. I'm open to discussions about possibly making this an official part of the Vike portfolio. Looking forward to hearing your thoughts! 😄🌟

@phonzammi Yes, that’s exactly the issue
On Wed 29. Nov 2023 at 18:15, phonzammi @.***> wrote:

Hi @brillout https://github.com/brillout ,
About this
https://github.com/vikejs/vike-react/blob/a4ee8aa81dcc42873da311f6ab5642b3e0df16bd/vike-react/renderer/onRenderHtml.tsx#L38C3-L56C1
Shouldn't we just stream the page in the page-view tag? not the whole html?
—
Reply to this email directly, view it on GitHub
https://github.com/vikejs/vike-react/issues/36#issuecomment-1832366693,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHVQRRLAZEEQPRMXCI2RCTYG5UTXAVCNFSM6AAAAAA74EGZSWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZSGM3DMNRZGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

@brillout
Great, I've make a PR,
Please review it, I have a question in the code comment

I'm currently involved in a project named "vike-painless-react", which brings several key enhancements to the table:

@AndrejNemec It sounds like some of these enhancement should be made to vike-react (whose goal is also to be painless) and to the equivalent vike-vue and vike-solid packages. PRs welcome

Fixed in v0.3.5

create an npm organization @vike-react,

That's a great idea. I just created four npm orgs: @vike-{react,vue,solid,svelte}.

If you like this vision, we can jointly design it into the vike-react package, potentially replacing the vike-painless-react package.

Yes 👍

regarding head management. How do you plan to implement it?

One major issue with title/description defined by components is that it contradicts streaming: when the HTML stream starts then it's too late for setting title/description (because the <head> content is already sent).
That's why I'm relunctant to allow users to let components define <head> values.
I'm thinking +title.js and +description.js is more future-proof.
As much as I'd love to have title/description defined by components, I don't think it's possible because of how browsers work.

Actually, I'm wrong: a workaround would be to push this after the stream ends:
<script>
document.title = 'someTitleSetByAnyComponent'
</script>

As for SEO/social crawlers I'd recommend to disable streaming. This is actually what react-streaming does: https://github.com/brillout/react-streaming#options.
As for DX I'm thinking of that:
import { useTitle } from 'vike-react/useTitle'
// Can be vike-react-query or vike-react-telefunc
import { useData } from 'vike-react-someDataFetchingLibrary'

function Product() {
  const data = useData(() => fetch('...'))
  const head = useHead()
  head.setTitle(data.product.name)
  // No effect if streaming (which is fine since streaming is disabled for SEO/social bots)
  head.setDescription(data.product.description)
}

@AndrejNemec Thoughts?

That's a great idea. I would definitely also create components that use the useHead hook, allowing the setting of the title, description, and other useful meta tags like og:X, twitter:X through components like <HeadTitle/>, <HeadMeta/>, <HeadLink/>, etc.
Furthermore, it would be beneficial to implement a robust injection system for packages that will be outside of the vike-react repository. Currently, it's not properly resolved and there are quite a few shortcomings. If I want to register a plugin to vike-react, it's quite a pain.
I propose something like this:
Let's say in the application I want to register the module: @vike-react/head
In the application, a config would be created: +modules.ts
export default {
  'vike-react-head': {
    server<EMAIL_ADDRESS>    client<EMAIL_ADDRESS>  },
  'vike-react-query': { /* ... */ },
  // ...etc
}

The plan so far is this: https://github.com/vikejs/vike/issues/1283. Which is actually needed for seamlessly integrating vike-react-query with vike-react. But, if you think it isn't enough, then elaborate on any concrete issue you're having.


[BUG] diskStorage calls ReplaceComponentList function which deletes dir (not recreated again) when contents are empty

What happened:
diskStorage calls ReplaceComponentList function which deletes dir (not recreated again) when contents are empty.
For example, i installed cilium charts (version is 1.15.6). The cilium-agent component has a empty dir named /etc/kubernetes/cache/cilium-agent/cilium2announcementpolicies.v2alpha1.cilium.io. After diskStorage calls ReplaceComponentList function, the empty dir is renamed to /etc/kubernetes/cache/cilium-agent/tmp_cilium2announcementpolicies.v2alpha1.cilium.io.
Because the contents are empty, diskStorage does nothing and removes the tmp dir. So the original dir would not be recreated.
func (ds *diskStorage) ReplaceComponentList(component string, gvr schema.GroupVersionResource, namespace string, contents map[storage.Key][]byte) error {
	rootKey, err := ds.KeyFunc(storage.KeyBuildInfo{
		Component: component,
		Resources: gvr.Resource,
		Group:     gvr.Group,
		Version:   gvr.Version,
		Namespace: namespace,
	})
	if err != nil {
		return err
	}
	storageKey := rootKey.(storageKey)

	for key := range contents {
		if !strings.HasPrefix(key.Key(), rootKey.Key()) {
			return storage.ErrInvalidContent
		}
	}

	if !ds.lockKey(storageKey) {
		return storage.ErrStorageAccessConflict
	}
	defer ds.unLockKey(storageKey)

	// 1. mv old dir into tmp_dir when rootKey dir already exists
	absPath := filepath.Join(ds.baseDir, storageKey.Key())
	tmpRootKey := getTmpKey(storageKey)
	tmpPath := filepath.Join(ds.baseDir, tmpRootKey.Key())
	if !fs.IfExists(absPath) {
		if err := ds.fsOperator.CreateDir(absPath); err != nil {
			return fmt.Errorf("could not create dir at %s", absPath)
		}
		if len(contents) == 0 {
			// nothing need to create, so just return
			return nil
		}
	}
	if ok, err := fs.IsDir(absPath); err == nil && !ok {
		return fmt.Errorf("%s is not a dir", absPath)
	} else if err != nil {
		return fmt.Errorf("could not check the path %s, %v", absPath, err)
	}
	// absPath exists and is a dir
	if err := ds.fsOperator.Rename(absPath, tmpPath); err != nil {
		return err
	}

	// 2. create new file with contents
	// TODO: if error happens, we may need retry mechanism, or add some mechanism to do consistency check.
	for key, data := range contents {
		path := filepath.Join(ds.baseDir, key.Key())
		if err := ds.fsOperator.CreateDir(filepath.Dir(path)); err != nil && err != fs.ErrExists {
			klog.Errorf("could not create dir at %s, %v", filepath.Dir(path), err)
			continue
		}
		if err := ds.fsOperator.CreateFile(path, data); err != nil {
			klog.Errorf("could not write data to %s, %v", path, err)
			continue
		}
		klog.V(4).Infof("[diskStorage] ReplaceComponentList store data at %s", path)
	}

	//  3. delete old tmp dir
	return ds.fsOperator.DeleteDir(tmpPath)

What you expected to happen:
it should be recreate the empty dir
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

OpenYurt version: v1.5.0
Kubernetes version (use kubectl version): v1.27.4
OS (e.g: cat /etc/os-release): centos linux
Kernel (e.g. uname -a): 5.15.13-1.el7.elrepo.x86_64
Install tools:
Others:

others
/kind bug

@obitoquilt Thank you for raising the issue. I agree with you that there is a bug of Yurthub storage, would you like to make a pull request to fix this bug?

I make a pull request to fix this bug.


Can't shim 'pandoc.exe'

I have tried to update pandoc and got an error:

Uninstall&Reinstall didn't help.

Duplicate of ScoopInstaller/Main#812


Please add BarbBlock

list of sites which have used legal threats to remove themselves from other blacklists.
https://github.com/paulgb/BarbBlock

BarbBlock may not have been updated in a while but it still contains sites which are not in EasyList, or this list, so it still seems relevant.

A quick search of EasyList commit doesn't reveal any more DMCA takedowns since the original set, so unless they haven't included the word DMCA in the commit name, it probably hasn't been updated because there haven't been any more takedowns.
https://github.com/easylist/easylist/search?q=DMCA&type=Commits&utf8=✓

Thanks for the input, @DavidCWGA.

This list is not curated.  Closing.