Potential bug or unwanted behaviour of kglib categorical attribute range\embedder function

Description
The issue that most probably originates in categorical attribute embedder of kglib library. I have defined a categorical variable that can take 3 values: 'duct_type': ["NotDuct","SLD","DC"]. However in some examples, both 'SLD' & 'DC' will be present in the graph. For these examples grakn produces an error like the one below. It does not show up for any other case or combination of values.  After removing this variable from the list of variables and the query, the pipeline runs fine. It seems that the combination of two categorical labels is being treated as a unique value not in the specified range.
InvalidArgumentError: indices[0,0] = 5 is not in [0, 3)
     [[node KGCN_1/kg_encoder/node_model/sequential/ThingEmbedder/typewise_encoder/duct_type_cat_embedder_1/embed/embedding_lookup (defined at C:\Users\kubap\Anaconda3\envs\grakn-16\lib\site-packages\sonnet\python\modules\embed.py:182) ]]

Errors may have originated from an input operation.
Input Source operations connected to node KGCN_1/kg_encoder/node_model/sequential/ThingEmbedder/typewise_encoder/duct_type_cat_embedder_1/embed/embedding_lookup:
 KGCN_1/kg_encoder/node_model/sequential/ThingEmbedder/typewise_encoder/duct_type_cat_embedder_1/Cast (defined at C:\Users\kubap\Anaconda3\envs\grakn-16\lib\site-packages\kglib\kgcn\models\attribute.py:56)
 ThingEmbedder/typewise_encoder/duct_type_cat_embedder_1/embed/embeddings/read (defined at C:\Users\kubap\Anaconda3\envs\grakn-16\lib\site-packages\sonnet\python\modules\util.py:963)

Environment
OS (where Grakn server runs):Windows 10
Grakn version (and platform): Grakn Core 1.6.2
Grakn client: Python Client 1.6.1,
Other environment details: Workbase 1.2.7, grakn-kglib 0.2.1
It's been pointed out to me that you don't officially support Anaconda installations, but the same error is produces in VS Code, and all packages in my conda env were installed through pip.
Reproducible Steps
My kglib project is available at: https://github.com/Qbbz/SSP
with runtime instructions. Due to limited amount of time unfortunately I can't produce an exact example now, but I'm available to help you with that in the future.
Expected Output
Multiple categorical labels are treated separately and assigned an integer value within defined range OR the range needs to be defined in terms of possible combinations too.
Actual Output
The training wouldn't start due to error above: learn.py crashes at create_feed_dicts.

pardon, i didn't realise that i'm posting to the wrong branch. I'm happy it's solved now!


Add target for 'base' product.

This adds a file product which makes it easier for reasoner-based applications to control their OWL imports chain (see https://github.com/OBOFoundry/OBOFoundry.github.io/issues/560).
@sbello if you approve, could you add the file to your process for making releases?

Hi Sue, yes exactly, it's an an OWL version without imports and without any reasoning applied.

Thanks. Merged.

@cmungall what do I need to do to actually publish mp/mp-base.owl?
I see the products are built here: https://build.berkeleybop.org/job/build-mp-edit/
How do the files go from there to http://ontologies.berkeleybop.org/mp.owl ?
I'm wondering if I need to build mp-base.owl in src/ontology/mp/ instead of src/ontology/, and then just add it to "Files to archive" in Jenkins?

@sbello - correct, but you shouldn't need to do anything extra, as the top level make command should make all release products.
@balhoff - correct, keep it in src/ontology for now, for now mp is configured such that the central obo build picks up the jenkins artefacts, see http://obofoundry.org/faq/what-is-the-build-field.html


chore(ci): bumped perf unit tests threshold to 5% (relative) slowdown.

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area CI
Does this PR require a change in the driver versions?
What this PR does / why we need it:
Same threshold used for google benchmarks.
Sometimes it fails spuriously with only 1% threshold: https://github.com/falcosecurity/libs/actions/runs/10879002020/job/30182876688?pr=2069
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

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

/milestone 0.19.0

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

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

Also, I'm wondering if 5% is too high. Is there any compelling reason not to choose 2% or 4% instead?

We used 5% for the benchmarks CI; i think it will save us lots of false positives; having a sensibility of 1 or 2% (relative) is way too hard to reach consistently.


sys/log: Add number of entries support in log and add log version 4

Please check email on the devlist for more information:

This adds support for logging number of entries since a given index of the log, it is optional, so only used when enabled
The mynewt VAL for the same is LOG_FLAGS_NUM_ENTRIES
LOG_VERSION is incremented to 4 since this does require a new header
Backwards compatibility with LOG_VERSION:3 entries is currently not supported, so, if LOG_VERSION: 4 is enabled you will loose the ability to retrieve LOG_VERSION: 3 entries. This will be supported later.
CLI command support is also added to help read the number of entries since a particular index on the CLI
CLI command:

compat> log -ne reboot_log -i 50

043837 entries: 5

Example log entries:
7143966 [ih=0x92ea3333][ne=0] [1577940571820322]  [ix=16] {_ "rsn": "OTHER: 0x0", "cnt": 238, "img": "<IP_ADDRESS>805", "hash": "92ea3333ffe0c6eaa01b842e2a0f8692f6b4a748de10378423b7abc8887993d2", "flags": "active bootable confirmed"}
7143973 [ih=0x92ea3333][ne=1] [1577949942585905]  [ix=33] {_ "rsn": "SOFT", "cnt": 239, "img": "<IP_ADDRESS>805", "hash": "92ea3333ffe0c6eaa01b842e2a0f8692f6b4a748de10378423b7abc8887993d2", "flags": "active bootable confirmed"}
7143978 [ih=0x92ea3333][ne=2] [1577951411585993]  [ix=50] {_ "rsn": "SOFT", "cnt": 240, "img": "<IP_ADDRESS>805", "hash": "92ea3333ffe0c6eaa01b842e2a0f8692f6b4a748de10378423b7abc8887993d2", "flags": "active bootable confirmed"}
7143984 [ih=0x92ea3333][ne=3] [1577953577609410]  [ix=67] {_ "rsn": "SOFT", "cnt": 241, "img": "<IP_ADDRESS>805", "hash": "92ea3333ffe0c6eaa01b842e2a0f8692f6b4a748de10378423b7abc8887993d2", "flags": "active bootable confirmed"}
7143989 [ih=0x92ea3333][ne=4] [1577956085609419]  [ix=84] {_ "rsn": "WDOG", "cnt": 242, "img": "<IP_ADDRESS>805", "hash": "92ea3333ffe0c6eaa01b842e2a0f8692f6b4a748de10378423b7abc8887993d2", "flags": "active bootable confirmed"}

mcumgr PR: https://github.com/apache/mynewt-mcumgr/pull/172
newtmgr tool will be a follow on PR
unittests will be implemented in a follow on PR

Would be good to explain what's the purpose of logging number of entries in a log itself.
Since you introduce new log version which is not backwards compatible, why no just revamp this so we don't need to add new log version and bunch of ifdefs every time a new field is added, e.g. by using tlv.

If we want to make this change such that it can log various entries of different types, flags could be utilized but this header in itself won't be enough to make the log format generic enough, perhaps we could agree upon a log header/trailer format and define its functional aspect. I am open to making some changes to the way it works but do keep in mind we want to keep this change backwards compatible with log version 3.

If the base header is the same, you don't need the log version 4 in the first place. The new struct for v4 is redundant and also invalid since counter doesn't need to follow img hash - this depends on flags.

Yes, that’s what I have been thinking as well. I think the log version 3 was added at the time to add support for flags. So, I should be able to just add a field to the same header. Haven’t gotten to this yet again. Will let you know after I try it again and will update this PR accordingly.

@andrzej-kaczmarek  I did try this out, keeping the same log version works fine with upgrades but downgrades do not work as the header now has an extra field which the old firmware does not know about which is fine in a way.  I am thinking of adding the num_entries field after the log entry body, that way downgrades will work fine as well. Another option which we spoke about internally was to read the logs at bootup and populate number of entries and keep incrementing in RAM which is doable but then there are corner cases to worry about. What are your thoughts on it ?

@sjanc @andrzej-kaczmarek @kasjer  Can you please start reviewing this ?

TLV implementation looks suspicious to me.
Lets consider how log entry was stored in FCB
[2 byte len] managed by fcb code
[8 byte] time stamp
[4 byte index] that would be what num_entreis is not due to global log indexing
[1 byte] module
[1 byte] level
[1 byte] type/flags
[n bytes] of log body
[1 byte] crc managed by fcb
Now it would look like this
[2 byte len] managed by fcb code
[8 byte] time stamp
[4 byte index] that would be what num_entreis is not due to global log indexing
[1 byte] module
[1 byte] level
[1 byte] type/flags with TLV bit set
[n bytes] of log body
[6 bytes] for TLV with num_entries
[1 byte] crc managed by fcb
Code assumes that TLV start 6 bytes from the end of the body which is true if this is the only TLV with known size.
It there was more entries in TLV style possibly with dynamic size as is allowed by TLV there would be no way of finding place where all TLVs are.

That is a good point. There is a limitation in our current log implementation since the header itself does not contain the length and log entries are of variable length. The length of the log entry can only be known either from the fcb header or the cbmem header after it is written. For backwards/forwards compatibility this is important.
So, the TLVs have to start from the end of the actual body of the log entry.

Maybe if TLVs were place before normal log body it would be more future proof

The way the code is structured and the log entry in flash is accessed if the log entry has to be backwards/forwards compatible the TLV cannot be stored before the entry. That is exactly what I was doing earlier but it breaks compatibility with old format which we do not want in case of repeated upgrades/downgrades.
Well, one way to mitigate this concern is to do the following:

Have reverse TLVS which means this:

[2 byte len] managed by fcb code
[8 byte] time stamp
[4 byte index] that would be what num_entries is not due to global log indexing
[1 byte] module
[1 byte] level
[1 byte] type/flags
[n bytes] of log body
[4 bytes] for num_entries
[2 bytes] for tag and length in TLV
[1 byte] crc managed by fcb

So, what will happen in this case is while reading we would read at the end of the fcb entry, read the TLV and interpret the value and we can keep reading TLVs in a repeated fashion in that way so the dynamic nature of TLVs is preserved.

Let me know if that seems like a good approach ?


Documentation w/ Swift Docc

I am closing this out because it does not work and I would much rather focus my time and energy on some of the more consequential bugs and missing features


⚠ Jenkins Plugins Artifactory has degraded performance

In efe5d1a, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1149 ms

Resolved: Jenkins Plugins Artifactory performance has improved in f8abc44 after 55 minutes.


up_to doesnt work correctly when range start is 0

General Summary
the up_to operator doesnt work correctly when range starts at 0.
Steps to Reproduce

open the enso IDE
enter the graph below (this is the error case  - range  0..6 returns a list [0..4] with a length of 5)

change the range start to 1 -( correct use -  range  1..6 returns a list [1..5] with a length of 5)

Thank you for the report! Looks like a silly mistake in the definition of to_vector for ranges, on this line: https://github.com/enso-org/enso/blob/main/distribution/std-lib/Base/src/Data/Range.enso#L112 (it always creates a vector of the length equal to end - 1, not the correct expression). A nice low-hanging fruit for potential contributors, wink wink :D

Thank you for the report! Looks like a silly mistake in the definition of to_vector for ranges, on this line: https://github.com/enso-org/enso/blob/main/distribution/std-lib/Base/src/Data/Range.enso#L112 (it always creates a vector of the length equal to end - 1, not the correct expression). A nice low-hanging fruit for potential contributors, wink wink :D

wink wink :D

❤

wink wink :D

❤

Related #1361

Related #1361

As per discussions on discord, up_to should be changed to be inclusive, and until defined to be exclusive of its upper bound. This requires the concept of inclusive and exclusive bounds on ranges to be introduced.

This requires the concept of inclusive and exclusive bounds on ranges to be introduced.
Does it? Because I see nothing wrong with just defining

Integer.up_to that = Range this that+1
Integer.until that = Range this that

That also works!

Integer.up_to that = Range this that+1
Integer.until that = Range this that

I don't like the inconsistency here. We are using the word "up" in the first function but not in the second one. IMO more consistent versions are to + until, or up_to + up_until. The first of course doesn't make sense, as to is "reserved" for our type-mismatch auto conversion.

W8 so the perceived inconsistency is "not all english expressions start with the same word"?

No, but I feel that it is strange that the functions doing almost the same thing use different English constructs. If I know the function up_to and I want a non-inclusive version, I would be searching for up_until or up_to_non_inclusive. I'd be surprised to discover the until name then. I just think that consistency in naming things in API is very important.

Ok, as we discussed on Discord, lets use the following API:
range limit by=1 start_inclusive=true end_inclusive=true = ...

up_to limit by=1 start_inclusive=true end_inclusive=true =
    if this > limit
        then EptyRange
        else range limit by start_inclusive end_inclusive

down_to limit by=1 start_inclusive=true end_inclusive=true =
    if this < limit
        then EmptyRange
        else range limit by start_inclusive end_inclusive

until limit by=1 start_inclusive=true end_inclusive=false =
    range limit by start_inclusive end_inclusive

Please note that by doesnt dictate the direction (incrementation vs decrementation), so this expression 10 . range 0 by=2 will produce [10,8,6,4,2]. This way range is the most generic of all forms provided above.

I was thinking more about this issue and I think the proposed design (described by me in the previous comment is still wrong).
The problem with inconsistency in the API is very serious and we need to start designing APIs with much bigger caution. It may seem unharmful at the first sight, but it has serious consequences that we would not be able to resolve long-term if we do not put enough care right now. There are few fundamentals for this:

Range is a very popular operator (it will even have a special syntax in the language, like 10 .. 0).  Thus it's inconsistent naming raised my attention.
When designing a graph, it should be easy to design it in a way that works for a broad range of input values. Users should naturally choose components that work for a big range of inputs and should "limit" the inputs fully aware. For example, when creating a component that uses range, it can pass our tests, but users of this component can provide values in a different order (10,0) instead of (0,10). The component should still work correctly. So, for example, yesterday's proposal (on Discord) of range that works only for increasing numbers is bad, error-prone, and allows for accidental creation of non-generic graphs, which completely breaks the UX of the whole product.
When adding a component to a stage, its name should clearly tell the user what is its purpose without looking to docs. Otherwise, it is too easy to accidentally create errors that can happen much later, on production.
We are doing pilots now. If we use an API in pilot implementations, we would not be able to change it in the future. This is a very important aspect, especially as our stdlib is in so early stage. Thus, we should create a special # unstable doc pragma, which we will add to every function with yet unstable API, so we will not use this function when creating pilots.

Regarding the problem with range, I'd use the following functions to make the naming consistent:

Function name
special syntax
start inclusive by default
end inclusive by default
allows values to increase
allows values to decrease

range
10 .. 0
✅
✅
✅
✅

up_to
none
✅
✅
✅
❌

up_until
none
✅
❌
✅
❌

down_to
none
✅
✅
❌
✅

down_until
none
✅
❌
❌
✅

until
none
✅
❌
✅
✅

Using such naming convention:

up_ or down_ prefix tells us whether we are using a function that clamps the input. All functions starting with up_ will return an empty range if the start value is bigger than the end value.
to means inclusive, until means non-inclusive.
The most generic inclusive function is range, and its non-inclusive counterpart is until. This is the point I don't really like, but I don't have a better solution here. From the purity perspective, range should be named just to, but it is a reserved operator.

Of course, each function above should have optional arguments:

by:Number - how big is the step (by is positive even if values decrease!)
start_inclusive:Bool
end_inclusive:Bool

@wdanilo Please make a decision.

@iamrecursion Can we just use what I described above?

can we stick to simply 'range', or  'until'  and allow no special syntax so that range 0..5 represent 0,1,2,3,4,5 and range 1..6 will represent 1,2,3,4,5,6 and both will have the same number of elements (6) and both always start- and end- inclusive.  give a choice to allow or disallow reverse direction.   also allow a stepby option but validate its value at runtime so it agrees with range direction.
just my 2 cents.
thanks,manny
On Thursday, March 25, 2021, 5:13:28 AM PDT, Wojciech Daniło @.***> wrote:
@iamrecursion Can we just use what I described above?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@manyone Could you elaborate more? Especially, what do you mean by "no special syntax"? We have a syntax of 1 .. 6 - is this the special syntax you are talking about? Also, in my proposal above, there is a function range which is alias for this special sytnax which does exactly what you have written - it is inclusive by default, and works in both ascending and descending orders. There are also aliases like up_to or down_to which can be used if you want to be sure that the input provided for example by the user of your function should iterate in ascending or descending order only. Would you be so nice and provide a table of function that you would implement instead of the table I provided above with a justification why the things I provided are misdesigned for you, please? :)

by special syntax i was referring to the confusing way of coding 0.up_to 7 in order to get a vector of 0..6
what i meant was - why come up with multiple aliases when you can use only one form and tell our users of its behavior, namely - if you use say, 'from_to'  START..END, it will iterate from START to END, inclusive - always ...
 Especially, what do you mean by "no special syntax"? We have a syntax of 1 .. 6 - is this the special syntax you are talking about? Also, in my proposal above, there is a function range which is alias for this special sytnax which does exactly what you have written - it is inclusive by default, and works in both ascending and descending orders. There are also aliases like up_to or down_to which can be used if you want to be sure that the input provided for example by the user of your function should iterate in ascending or descending order only. Would you be so nice and provide a table of function that you would implement instead of the table I provided above with a justification why the things I provided are misdesigned for you, please? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@manyone, regarding confusing way of coding 0.up_to 7 in order to get a vector of 0..6 - this is a bug in the current stdlib and it is not present anymore in my proposal above. In my proposal, there is up_to function which is marked as inclusive by default on both ends.
In my opinion, there are many cases why we would need to provide several aliases. Sometimes, you want to design a function that will take 2 numbers and will convert that to an ascending range (and only ascending!). So then, you can use up_to. If you want a generic functionality that you have described, in my proposal above there is a range function that behaves exactly as in your table. Would you be so nice and take a look at my table again and check if the proposed functions, especially range suit your needs then?

sorry, i didn't mean to throw a monkey wrench into the process ..
as a matter of fact,the range function would be perfect for my needs.  even the  up_to may work.  my only hesitation about using an alias is that the start & end might be different than expected at run time.but otherwise range and up_to will work for me 99.9% of the time.
i love enso - i've never had so much fun coding!keep up the good work.
thanks,manny
On Friday, March 26, 2021, 10:47:33 AM PDT, Wojciech Daniło @.***> wrote:
@manyone, regarding confusing way of coding 0.up_to 7 in order to get a vector of 0..6 - this is a bug in the current stdlib and it is not present anymore in my proposal above. In my proposal, there is up_to function which is marked as inclusive by default on both ends.
In my opinion, there are many cases why we would need to provide several aliases. Sometimes, you want to design a function that will take 2 numbers and will convert that to an ascending range (and only ascending!). So then, you can use up_to. If you want a generic functionality that you have described, in my proposal above there is a range function that behaves exactly as in your table. Would you be so nice and take a look at my table again and check if the proposed functions, especially range suit your needs then?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Fixed in #1702


Autocomplete renderOption does not render children when props are spread

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
When working with Autocomplete, the following will result in a rendered list of options, with no styling:
// React:
renderOption={(props, option) =>
{option.name}
}

// DOM:

Foo

However if the props are spread, an empty
 is rendered instead:
// React:
renderOption={(props, option) =>
{option.name}
}

// DOM:

Current behavior 😯
It seems that spreading props over the list element overrides the manually entered children.
Expected behavior 🤔
That renderOption={(props, option) =>
{option.name}
} renders an autocomplete list with list items.
Context 🔦
Obviously, having duplicate labels in the first place is not ideal because the user doesn't know which version they are selecting. So this would be solved if we used getOptionLabel to ensure unique labels. But we are in an MVP stage and although there are some duplicates in our crusty data set, they have unique UUIDs so for the time being I figured setting their key to be the UUID should fix the problem for now.
That being said, again, although I get the idea that what is rendered on screen should be unique, using human readable labels as unique keys instead of array indexes or some other field (like uuid) is just sloppy programming. That's sort of separate from this bug since there's other use cases for rendering custom autocomplete list items, but it should be reconsidered IMO.
Your environment 🌎
I can't seem to get this to work but here are my versions:
"@emotion/react": "^11.8.2",
"@emotion/styled": "^11.8.1",
"@mui/icons-material": "^5.5.1",
"@mui/lab": "^5.0.0-alpha.80",
"@mui/material": "^5.11.1",
"@mui/x-data-grid": "^5.7.0",
"@mui/x-date-pickers": "^5.0.0-alpha.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",

It doesn't look like this bug report has enough info for one of us to reproduce it.
Please provide a CodeSandbox (https://mui.com/r/issue-template), a link to a repository on GitHub, or provide a minimal code example that reproduces the problem.
Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve


Refactor Client

In consideration of having multiple bots, we want to refactor the CustomClient structure into its own repository

Issue #103 fully moves the bot client into its own repo for better maintain ability


[Bug]: Indexing a large number of Documents resulted in ValueError with ChromaDB

Bug Description
Indexing a large number of Documents resulted in ValueError with ChromaDB.
In my case, I had 34k files, loaded into 191k+ Documents, and parsed into 229k Nodes.
I found #7648, and https://github.com/chroma-core/chroma/issues/1049.
From the log, it seems that LlamaIndex correctly run in batch of 41665 as the fixed for #7648 intended. However, chromadb complains that the maximum batch size is 5461.
Log available below.
Using LlamaIndex 0.9.15 and ChromaDB 0.4.19
Version
0.9.15
Steps to Reproduce
Run this code against a large set of document. I suspect >5500 will do.
# initialize client, setting path to save data
db = chromadb.PersistentClient(path="./chroma_db")

# create collection
chroma_collection = db.get_or_create_collection("collection_name")

# assign chroma as the vector_store to the context
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)

index = VectorStoreIndex.from_documents(
    documents,
    show_progress=True,
    storage_context=storage_context,
)

Relevant Logs/Tracbacks
[REDACTED project folder]\venv\Scripts\python.exe [REDACTED project folder]\main.py
2023-12-14 13:46:57,044 I main.py L62: <module>(): Loading starts
2023-12-14 13:46:58,055 I [REDACTED custom loader module].py L74: _add_files(): Total files added: 34155
Loading files: 100%|██████████| 34155/34155 [02:20<00:00, 243.86file/s]
2023-12-14 13:49:18,132 I main.py L71: <module>(): Loading ends
2023-12-14 13:49:18,132 I main.py L72: <module>(): Indexing starts
Parsing nodes: 100%|██████████| 191025/191025 [02:54<00:00, 1094.34it/s]
Generating embeddings: 100%|██████████| 229210/229210 [1:09:27<00:00, 54.99it/s]
Traceback (most recent call last):
  File "[REDACTED project folder]\main.py", line 84, in <module>
    index = VectorStoreIndex.from_documents(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\base.py", line 106, in from_documents
    return cls(
           ^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\vector_store\base.py", line 49, in __init__
    super().__init__(
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\base.py", line 71, in __init__
    index_struct = self.build_index_from_nodes(nodes)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\vector_store\base.py", line 255, in build_index_from_nodes
    return self._build_index_from_nodes(nodes, **insert_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\vector_store\base.py", line 236, in _build_index_from_nodes
    self._add_nodes_to_index(
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\indices\vector_store\base.py", line 190, in _add_nodes_to_index
    new_ids = self._vector_store.add(nodes, **insert_kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\llama_index\vector_stores\chroma.py", line 243, in add
    self._collection.add(
  File "[REDACTED project folder]\venv\Lib\site-packages\chromadb\api\models\Collection.py", line 168, in add
    self._client._add(ids, self.id, embeddings, metadatas, documents, uris)
  File "[REDACTED project folder]\venv\Lib\site-packages\chromadb\telemetry\opentelemetry\__init__.py", line 127, in wrapper
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "[REDACTED project folder]\venv\Lib\site-packages\chromadb\api\segment.py", line 344, in _add
    validate_batch(
  File "[REDACTED project folder]\venv\Lib\site-packages\chromadb\api\types.py", line 505, in validate_batch
    raise ValueError(
ValueError: Batch size 41665 exceeds maximum batch size 5461

Process finished with exit code 1

Workaround for now is to just index the data in batches.
We need to update the vector index code, its generating all embeddings in memory and then doing one giant insert into the db

@logan-markewich The logic in LlamaIndex is already there, provided by #8019.
The error log also reflects that the fix is working: The insert is for a size of 41665 exactly instead of everything (~219k).
It could be that ChromaDB updated their maximum again, but I have no way of confirming it.


browser-supports-log-styles

I need a check if a browser supports console log styles in another library, so I created a tiny npm package browser-supports-log-styles for that, and thought you might want to use that as well, so we can keep that up-to-date together?
Let me know if you want any changes in that, it's your work after all, I don't mean to take any credit for it

Trying to keep our library as minimal as possible.  Thanks anyway!  Closing PR


unblock doesnt work

when i try to unblock someone i have blocked i get null pointer exception
InstagramSearchUsernameResult userfrom = Instagram.sendRequest(newInstagramSearchUsernameRequest("luxcashery"));
instagram.sendRequest(new InstagramBlockRequest(userfrom.getUser().pk));

java.lang.NullPointerException

any tips?

This code works without errors if "Instagram" not null.


Remove unused stringsdict file

I defined a few plural localizations in the sheet. After converting to singular, Lingua created a strings file with all new translations, but the old one remained in the stringsdict files untouched.
I think we should remove redundant files altogether.

It would be probably the best thing to purge all files and recreate them on each script run 🤷♂


Thank you

Wasn't sure how to tell you this other than publishing an issue : THANK YOU. I'm so grateful, I had been struggling to publish my react / rails app to heroku, and it works like a charm, with the added benefit of hot reloading. Thank you so much.

We are really happy seeing this :)
The best way to say thank you is to give us feedback on what do you like, what could be improved or changed :D

Sure I will !
Actually i do have a question : in rails, when providing an image asset,
you can use a helper. How would you recommend doing this in RWR ?
On 13 June 2016 at 08:00:24, Radosław Piątek<EMAIL_ADDRESS>wrote:
We are really happy seeing this :)
The best way to say thank you is to give us feedback on what do you like,
what could be improved or changed :D
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/netguru/react_webpack_rails/issues/101#issuecomment-224023454,
or mute the thread
https://github.com/notifications/unsubscribe/AHymFaW3_-1VcZHj9tnc_-_WyjQfsWfmks5qJFSrgaJpZM4IvFUo
.

related: https://github.com/netguru/react_webpack_rails/issues/61


Decide what do when Tweet ID is a reply to tweet by another user

By @Mira-Alf

This is not an issue because of the svelte changes. This is a unique error happening in a special circumstance. We need to discuss on how to handle this.
Here is the tweet id: Tweet link
The tweet is a reply to another user and consequently not the first tweet of the thread
Code tries to locate the first tweet of the thread but the first tweet has not been made by the same user - consequently it returns undefined
Since the lookup fails - it is unable to find/search other tweets on the same thread
What should be done in this case? ThreadReader app simply states this is a reply and cannot be rolled. Should we take a similar approach or tweak the logic to print the original post and the reply?

What do you think we should do in this scenario?

What do you think we should do in this scenario?


feat: add ephemeral-storage limit for emptyDir's

Closes #1548

/test limit=local

/test limit=local

/test limit=local

/test limit=local

We still miss the documentation, I cannot merge it unfortunately

@jlong49 the patch has been fixed to address the difference between the emptyDir volume, which is storage-based, and the shm volume, which is allocated in memory.
The implementation has been changed deeply, and I'd appreciate it if you could take another look and write the documentation so that we can merge it.

Thank you @jlong49!

Mhh ... why did we end up creating a new page for the volumes? For example, we already define projected volumes here: https://cloudnative-pg.io/documentation/current/cluster_conf/
I'd personally avoid creating a new page for just those few entries. What do others think?


Import resolve naming conflicts

Purpose
Resolve naming conflicts when importing, as it currently just fails and says the import is incompatible.
Resolves according to:
Account: use existing, unless name is sub-string of account address. (This is to handle the upcoming account recovery)
Identity: use existing. (When Account Recovery is implemented, this should change name if the identity is a placeholder)
AddressBookEntry name: use existing, unless bound to a local account, which has changed.
AddressBookEntry note: use existing, unless existing is empty.
Credential note: use existing, unless existing is empty.
Changes
Changes the import functions to handle these conflicts
Checklist

[x] My code follows the style of this project.
[x] The code compiles without warnings.
[x] I have performed a self-review of the changes.
[x] I have documented my code, in particular the intent of the
hard-to-understand areas.

A couple of things I noticed:
* If I import anything that already exists, it reads as if accounts, ID's, etc. (except for address book entries) are imported, even though they are discarded as they already exist? Should we clarify this as well, and not just when a naming conflict appears?

* Took me a while to understand the code. I don't know if it's possible to simplify or split into more pieces? Maybe it isn't and that might also be OK, but there are some really meaty functions in `importHelpers.ts`

I have added messages for duplicates with the same name.
I have tried to simplify/refactor it.

Nice refactor, IMO.
When looking at the imported data now, a couple of things spring to mind:
* I could do with some spacing between the ID line, and the "Accounts" section (added 10px in image below)

* I think it would be nice with a difference in font size and some indication that the messages are an annotation made by the desktop wallet to explain. In the image below I tried adding 2 different ways to do this (I think I prefer the "-" version, but if you prefer another one, I don't mind)

What do you think about these suggestions?

I agree with the spacing between identity and account.
I agree we could make it clearer, I prefer the parenthesis though.
I don't think we need to have a different font size, I've tried to add some spacing though:

I agree with the spacing between identity and account.
I agree we could make it clearer, I prefer the parenthesis though.
I don't think we need to have a different font size, I've tried to add some spacing though:

Sounds good to me 👍


Initial import (CI and code)

This should be merged after #3 is merged into this branch.

A bit late to the party, but for future we should consider extracting code preserving it's history.
Something like:
https://medium.com/@ayushya/move-directory-from-one-repository-to-another-preserving-git-history-d210fa049d4b


Add hide account button on UI

Implement hide account functionality in the Accounts list screen

@eswarasai PR #619 will be adding a menu on the account item, where the button to hide the account should go.


Error: Case analysis on sort Set is not allowed for inductive definition IsSmart

Require Export Coq.Lists.List.
Export Coq.Lists.List.ListNotations.

(*
We want to represent some nested function calls for a very restricted language, for example:

and(lt(3, 5), contains("abcd", "bc"))

We represent the parsed ast, like so:
*)

Inductive Func: Set :=
  mkFunc:
    forall
    (name: nat)
    (params: list Func)
    (hash: nat),
  Func.

(*
We are still using `nat` instead of string to represent the names, please ignore this, this is just for temporary simplicity.
The `hash` field is important, because it is very important to be able to efficiently compare functions calls, so that we can reorder and simplify.  For example:

 - and(lt(3, 5), contains("abcd", "bc")) => and(contains("abcd", "bc"), lt(3, 5))
 - and(lt(3, 5), lt(3, 5)) => lt(3, 5)
 - or(and(lt(3, 5), contains("abcd", "bc")), and(contains("abcd", "bc"), lt(3, 5))) => and(contains("abcd", "bc"), lt(3, 5))

For this hash field to mean anything, it needs an associated property that it was constructed using a smart constructor:
*)

Definition get_params (x: Func): list Func :=
  match x with
  | mkFunc _ params _ => params
  end.

Definition get_hash (x: Func): nat :=
  match x with
  | mkFunc _ _ hash => hash
  end.

Definition hash_per_elem (state: nat) (x: nat): nat :=
    31 * state + x.

Fixpoint hash_from_func (f: Func): nat :=
  match f with
  | mkFunc name params _ =>
    let name_hashed := 31 * 17 * name in
    let param_hashes := map hash_from_func params in
    fold_left hash_per_elem param_hashes name_hashed
  end.

Inductive IsSmart (f: Func): Prop :=
  | isSmartNil: forall
    (name: nat)
    (hash: nat)
    (feq: f = mkFunc name [] hash)
    (heq: hash = hash_from_func (mkFunc name [] hash)),
    IsSmart f
  | isSmartCons: forall
    (name: nat)
    (p: Func)
    (ps: list Func)
    (hash: nat)
    (feq: f = mkFunc name (p::ps) hash)
    (heq: hash = hash_from_func (mkFunc name (p::ps) hash))
    (peq: IsSmart p)
    (peqs: Forall IsSmart ps),
    IsSmart f
  .

Definition SmartFunc := { func & IsSmart func }.

Definition get_func (x: SmartFunc): Func :=
  match x with
  | existT _ f p => f
  end.

Definition hash_from_params (hname: nat) (params: list Func): nat :=
  let param_hashes := map hash_from_func params in
  fold_left hash_per_elem param_hashes hname.

Definition hash_from_sparams (hname: nat) (sparams: list SmartFunc): nat :=
  let param_hashes := map get_shash sparams in
  fold_left hash_per_elem param_hashes hname.

Lemma hash_from_params_is_hash_from_sparams:
  forall (hname: nat) (sparams: list SmartFunc),
    hash_from_sparams hname sparams
    =
    hash_from_params hname (map get_func sparams).
Proof.
intros.

(* induction on params *)
generalize dependent hname.
induction sparams as [| sp sps].
- reflexivity.
- intros.

  (* step hash_from_params *)
  unfold hash_from_params.
  cbn [map].
  cbn [fold_left].
  assert (
    fold_left
      hash_per_elem
      (map hash_from_func (map get_func sps))
      (hash_per_elem hname (hash_from_func (get_func sp)))
    =
      hash_from_params (31 * hname + (get_shash sp)) (map get_func sps)
  ) as Hfunc.
+ destruct sp as [f s].
  destruct s;
  cbn [get_func];
  cbn [get_shash];
  unfold hash_from_params;
  unfold hash_per_elem;
  rewrite feq;
  rewrite <- heq;
  cbn [get_hash];
  reflexivity.
+ rewrite Hfunc. clear Hfunc.

  (* step hash_from_sparams *)
  unfold hash_from_sparams.
  cbn [map].
  cbn [fold_left].
  assert (
    fold_left
      hash_per_elem
      (map get_shash sps)
      (hash_per_elem hname (get_shash sp))
    =
      hash_from_sparams (31 * hname + (get_shash sp)) sps
  ) as HsmartFunc.
* destruct sp as [f s].
  destruct s;
  cbn [get_shash];
  unfold hash_from_sparams;
  rewrite feq;
  cbn [get_hash];
  unfold hash_per_elem;
  reflexivity.
* rewrite HsmartFunc. clear HsmartFunc.
  apply IHsps.
Qed.

Definition forall_smart_from_sparams
  (sparams: list SmartFunc):
  Forall IsSmart (map get_func sparams).
induction sparams as [| p ps].
- cbn. constructor.
- cbn.
  destruct p as [f s].
  cbn.
  constructor.
  + exact s.
  + exact IHps.
Qed.

Definition smart_from_sparam
  (s: SmartFunc):
  IsSmart (get_func s).
destruct s as [f s].
induction s.
- apply (isSmartNil f name hash).
  + exact feq.
  + exact heq.
- apply (isSmartCons f name p ps hash).
  + exact feq.
  + exact heq.
  + exact s.
  + exact peqs.
Qed.

Lemma is_smart (name: nat) (sparams: list SmartFunc):
  IsSmart
    (mkFunc
      name
      (map get_func sparams)
      (hash_from_sparams (31 * 17 * name) sparams)
    ).
Proof.
induction sparams as [| p ps].
- eapply isSmartNil.
  + eexists.
  + reflexivity.
- apply ((isSmartCons (mkFunc name (map get_func (p::ps)) (hash_from_sparams (31 * 17 * name) (p::ps)))) name (get_func p) (map get_func ps) (hash_from_params (31 * 17 * name) (map get_func (p::ps)))).
  + rewrite hash_from_params_is_hash_from_sparams. reflexivity.
  + unfold hash_from_params.
    unfold hash_from_func.
    fold hash_from_func.
    cbn [map].
    reflexivity.
  + apply smart_from_sparam.
  + apply forall_smart_from_sparams.
Qed.

Definition mkSmartFunc (name: nat) (sparams: list SmartFunc): SmartFunc :=
existT
  _
  (mkFunc
    name
    (map get_func sparams)
    (hash_from_sparams
      (31 * 17 * name)
      sparams
    )
  )
  (is_smart
    name
    sparams
  )
.

(*
But we have issues when we try to reconstruct our list of SmartFuncs again
*)

Fixpoint get_smart_params'
  (params: list Func)
  (smarts: Forall IsSmart params)
  : list SmartFunc.
destruct params as [|p ps].
- exact [].
- apply Forall_cons_iff in smarts.
  destruct smarts as [smart smarts].
  exact (
    (existT _ p smart)
    :: (get_smart_params' ps smarts)
  ).
Defined.

Definition get_smart_params (s: SmartFunc): list SmartFunc.
destruct s as [f s].
destruct f.
destruct params as [| p ps].
- exact [].
- destruct s.
(* Case analysis on sort Set is not allowed for inductive definition IsSmart. *)

It seems you can only destruct IsSmart a Prop if you are working on a program that is going to return a Prop, but if you plan to return something in Set then you cannot destruct something in Prop
See https://github.com/coq/coq/issues/5342 for a better error message

Although even if I change the last theorem to
Definition get_smart_params (s: SmartFunc): { params & Forall IsSmart params }.
destruct s as [f s].
destruct f.
destruct s.

I still get the same error

Theorem get_smart_params (s: SmartFunc): { params & Forall IsSmart params }.
destruct s as [f s].
induction s.

Gives the following error:
Cannot find the elimination combinator IsSmart_rec, the elimination of the
inductive definition IsSmart on sort Set is probably not allowed.

This also seems related https://stackoverflow.com/questions/27322979/why-coq-doesnt-allow-inversion-destruct-etc-when-the-goal-is-a-type

These Axioms will mean that we won't be able to extract the code, which is necessary for these functions.

Small adjustments, but same error
Require Export Coq.Lists.List.
Export Coq.Lists.List.ListNotations.

(*
We want to represent some nested function calls for a very restricted language, for example:

and(lt(3, 5), contains("abcd", "bc"))

We represent the parsed ast, like so:
*)

Inductive Func: Type :=
  mkFunc:
    forall
    (name: nat)
    (params: list Func)
    (hash: nat),
  Func.

(*
We are still using `nat` instead of string to represent the names, please ignore this, this is just for temporary simplicity.
The `hash` field is important, because it is used to efficiently compare functions calls, so that we can reorder and simplify.  For example:

 - and(lt(3, 5), contains("abcd", "bc")) => and(contains("abcd", "bc"), lt(3, 5))
 - and(lt(3, 5), lt(3, 5)) => lt(3, 5)
 - or(and(lt(3, 5), contains("abcd", "bc")), and(contains("abcd", "bc"), lt(3, 5))) => and(contains("abcd", "bc"), lt(3, 5))

For this hash field to mean anything, it needs an associated property that it was constructed using a smart constructor:
*)

Definition get_params (x: Func): list Func :=
  match x with
  | mkFunc _ params _ => params
  end.

Definition get_hash (x: Func): nat :=
  match x with
  | mkFunc _ _ hash => hash
  end.

Definition hash_per_elem (state: nat) (x: nat): nat :=
    31 * state + x.

Fixpoint hash_from_func (f: Func): nat :=
  match f with
  | mkFunc name params _ =>
    let name_hashed := 31 * 17 * name in
    let param_hashes := map hash_from_func params in
    fold_left hash_per_elem param_hashes name_hashed
  end.

Inductive IsSmart (f: Func): Prop :=
  | isSmart: forall
      (name: nat)
      (params: list Func)
      (hash: nat)
  , f = mkFunc name params hash
  ->  hash = hash_from_func f
  ->  Forall IsSmart params
  ->  IsSmart f
  .

Ltac destructIsSmart S :=
  let Name := fresh "name" in
  let Params := fresh "params" in
  let Hash := fresh "hash" in
  let Feq := fresh "feq" in
  let Heq := fresh "heq" in
  let HSmarts := fresh "Hsmarts" in
  destruct S as [Name Params Hash Feq Heq HSmarts].

Definition SmartFunc := { func | IsSmart func }.

Ltac destructSmartFunc SF :=
  let F := fresh "f" in
  let S := fresh "s" in
  destruct SF as [F S];
  destructIsSmart S.

Definition get_func (x: SmartFunc): Func :=
  match x with
  | exist _ f p => f
  end.

Definition hash_from_params (hname: nat) (params: list Func): nat :=
  let param_hashes := map hash_from_func params in
  fold_left hash_per_elem param_hashes hname.

Definition hash_from_sparams (hname: nat) (sparams: list SmartFunc): nat :=
  let param_hashes := map get_shash sparams in
  fold_left hash_per_elem param_hashes hname.

Lemma hash_from_params_is_hash_from_sparams:
  forall (hname: nat) (sparams: list SmartFunc),
    hash_from_sparams hname sparams
    =
    hash_from_params hname (map get_func sparams).
Proof.
intros.

(* induction on params *)
generalize dependent hname.
induction sparams as [| sp sps].
- reflexivity.
- intros.

  (* step hash_from_params *)
  unfold hash_from_params.
  cbn [map].
  cbn [fold_left].
  assert (
    fold_left
      hash_per_elem
      (map hash_from_func (map get_func sps))
      (hash_per_elem hname (hash_from_func (get_func sp)))
    =
      hash_from_params (31 * hname + (get_shash sp)) (map get_func sps)
  ) as Hfunc.
+ destructSmartFunc sp.
  cbn [get_func].
  cbn [get_shash].
  unfold hash_from_params.
  unfold hash_per_elem.
  rewrite feq.
  rewrite feq in heq.
  cbn [get_hash].
  rewrite <- heq.
  reflexivity.
+ rewrite Hfunc. clear Hfunc.

  (* step hash_from_sparams *)
  unfold hash_from_sparams.
  cbn [map].
  cbn [fold_left].
  assert (
    fold_left
      hash_per_elem
      (map get_shash sps)
      (hash_per_elem hname (get_shash sp))
    =
      hash_from_sparams (31 * hname + (get_shash sp)) sps
  ) as HsmartFunc.
* destructSmartFunc sp.
  cbn [get_shash].
  unfold hash_from_sparams.
  rewrite feq.
  cbn [get_hash].
  unfold hash_per_elem.
  reflexivity.
* rewrite HsmartFunc. clear HsmartFunc.
  apply IHsps.
Qed.

Definition forall_smart_from_sparams
  (sparams: list SmartFunc):
  Forall IsSmart (map get_func sparams).
induction sparams as [| p ps].
- cbn. constructor.
- cbn.
  destruct p as [f s].
  cbn.
  constructor.
  + exact s.
  + exact IHps.
Qed.

Definition smart_from_sparam
  (s: SmartFunc):
  IsSmart (get_func s).
destructSmartFunc s.
cbn.
apply (isSmart f name params hash).
- exact feq.
- exact heq.
- exact Hsmarts.
Qed.

Definition mkIsSmart (name: nat) (sparams: list SmartFunc):
  IsSmart
    (mkFunc
      name
      (map get_func sparams)
      (hash_from_sparams (31 * 17 * name) sparams)
    ).
Proof.
induction sparams as [| p ps].
- cbn [map].
  unfold hash_from_sparams.
  cbn [map].
  cbn [fold_left].
  apply (isSmart _ name [] (31 * 17 * name)).
  + reflexivity.
  + cbn. reflexivity.
  + constructor.
- apply (isSmart _ name (map get_func (p :: ps)) (hash_from_sparams (31 * 17 * name) (p :: ps))).
  + reflexivity.
  + rewrite hash_from_params_is_hash_from_sparams. reflexivity.
  + constructor.
    * apply smart_from_sparam.
    * apply forall_smart_from_sparams.
Defined.

Definition mkSmartFunc (name: nat) (sparams: list SmartFunc): SmartFunc :=
exist
  _
  (mkFunc
    name
    (map get_func sparams)
    (hash_from_sparams
      (31 * 17 * name)
      sparams
    )
  )
  (mkIsSmart
    name
    sparams
  )
.

(*
This works and we can even reconstruct our list of SmartInfo again.
*)

Fixpoint get_smart_params'
  (params: list Func)
  (smarts: Forall IsSmart params)
  : list SmartFunc.
destruct params as [|p ps].
- exact [].
- apply Forall_cons_iff in smarts.
  destruct smarts as [smart smarts].
  exact (
    (exist _ p smart)
    :: (get_smart_params' ps smarts)
  ).
Defined.

Theorem get_smart_params (s: SmartFunc): { params | Forall IsSmart params }.
destruct s as [f is].
destruct is.

The  question was answered in the stack exchange post https://proofassistants.stackexchange.com/questions/1048/coq-recursive-smart-constructors-and-sigma-types-how-to-avoid-axioms/1050#1050

We can now also prove that the smart constructor is correct:
Require Export Coq.Lists.List.
Export Coq.Lists.List.ListNotations.

(*
I am using a recursive smart constructor to return a sigma type, which includes the property that the type was constructed in a smart way.  This is very basic compared to the smart constructors and number of properties I tend to have, but I am already running into problems.  I was wondering if there is a better way to work with smart constructors and sigma properties.  Here is my current example with the problem I ran into:

We want to represent some nested function calls for a very restricted language, for example:

and(lt(3, 5), contains("abcd", "bc"))

We represent the parsed ast, like so:
*)

Inductive Func: Type :=
  mkFunc:
    forall
    (name: nat)
    (params: list Func)
    (hash: nat),
  Func.

(*
We are still using `nat` instead of string to represent the names, please ignore this, this is just for temporary simplicity.
The `hash` field is important, because it is used to efficiently compare functions calls, so that we can reorder and simplify.  For example:

 - and(lt(3, 5), contains("abcd", "bc")) => and(contains("abcd", "bc"), lt(3, 5))
 - and(lt(3, 5), lt(3, 5)) => lt(3, 5)
 - or(and(lt(3, 5), contains("abcd", "bc")), and(contains("abcd", "bc"), lt(3, 5))) => and(contains("abcd", "bc"), lt(3, 5))

For this hash field to mean anything, it needs an associated property that it was constructed using a smart constructor:
*)

Definition get_params (x: Func): list Func :=
  match x with
  | mkFunc _ params _ => params
  end.

Definition get_hash (x: Func): nat :=
  match x with
  | mkFunc _ _ hash => hash
  end.

Definition hash_per_elem (state: nat) (x: nat): nat :=
    31 * state + x.

Fixpoint hash_from_func (f: Func): nat :=
  match f with
  | mkFunc name params _ =>
    let name_hashed := 31 * 17 * name in
    let param_hashes := map hash_from_func params in
    fold_left hash_per_elem param_hashes name_hashed
  end.

Inductive IsSmart (f: Func): Prop :=
  | isSmart: forall
      (name: nat)
      (params: list Func)
      (hash: nat)
  , f = mkFunc name params hash
  ->  hash = hash_from_func f
  ->  Forall IsSmart params
  ->  IsSmart f
  .

Ltac destructIsSmart S :=
  let Name := fresh "name" in
  let Params := fresh "params" in
  let Hash := fresh "hash" in
  let Feq := fresh "feq" in
  let Heq := fresh "heq" in
  let HSmarts := fresh "Hsmarts" in
  destruct S as [Name Params Hash Feq Heq HSmarts].

Definition SmartFunc := { func | IsSmart func }.

Ltac destructSmartFunc SF :=
  let F := fresh "f" in
  let S := fresh "s" in
  destruct SF as [F S];
  destructIsSmart S.

Definition get_func (x: SmartFunc): Func :=
  match x with
  | exist _ f p => f
  end.

Definition hash_from_params (hname: nat) (params: list Func): nat :=
  let param_hashes := map hash_from_func params in
  fold_left hash_per_elem param_hashes hname.

Definition hash_from_sparams (hname: nat) (sparams: list SmartFunc): nat :=
  let param_hashes := map get_shash sparams in
  fold_left hash_per_elem param_hashes hname.

Lemma hash_from_params_is_hash_from_sparams:
  forall (hname: nat) (sparams: list SmartFunc),
    hash_from_sparams hname sparams
    =
    hash_from_params hname (map get_func sparams).
Proof.
(* For the actual proof see https://github.com/katydid/proofs/issues/10 *)
Admitted.

Definition forall_smart_from_sparams
  (sparams: list SmartFunc):
  Forall IsSmart (map get_func sparams).
(* For the actual proof see https://github.com/katydid/proofs/issues/10 *)
Admitted.

Definition smart_from_sparam
  (s: SmartFunc):
  IsSmart (get_func s).
(* For the actual proof see https://github.com/katydid/proofs/issues/10 *)
Admitted.

Definition mkIsSmart (name: nat) (sparams: list SmartFunc):
  IsSmart
    (mkFunc
      name
      (map get_func sparams)
      (hash_from_sparams (31 * 17 * name) sparams)
    ).
(* For the actual proof see https://github.com/katydid/proofs/issues/10 *)
Admitted.

Definition mkSmartFunc (name: nat) (sparams: list SmartFunc): SmartFunc :=
exist
  _
  (mkFunc
    name
    (map get_func sparams)
    (hash_from_sparams
      (31 * 17 * name)
      sparams
    )
  )
  (mkIsSmart
    name
    sparams
  )
.

(*
We can reconstruct our list of SmartFunc again from our list of params and the Forall property.
*)

Definition getSmartParamsFromMkFunc (name : nat) (params : list Func) (hash : nat)
  (is : IsSmart (mkFunc name params hash)): Forall IsSmart params :=
match is with
| isSmart _ _ _ _ feq _ Hsmarts =>
  eq_ind_r
    (fun params' : list Func => Forall IsSmart params')
    Hsmarts
    (f_equal get_params feq)
end.

Definition get_smart_sig_params (s : SmartFunc): {params : list Func | Forall IsSmart params} :=
let (f, is) := s in
match f as f' return (IsSmart f' -> {params : list Func | Forall IsSmart params}) with
| mkFunc name params hash =>
  (fun (is' : IsSmart (mkFunc name params hash)) =>
    exist
      (fun params' : list Func => Forall IsSmart params')
      params
      (getSmartParamsFromMkFunc name params hash is')
  )
end is.

Definition Forall_cons_if
  {A : Type} {P : A -> Prop} (x : A) (xs : list A)
  (HForall : Forall P (x :: xs)): P x /\ Forall P xs :=
match
  HForall in (Forall _ xxs) return (xxs = x :: xs -> P x /\ Forall P xs)
with
| Forall_nil _ =>
	fun Heq_refl : [] = x :: xs =>
    False_ind (P x /\ Forall P xs) (
      eq_ind []
        (fun e : list A => match e with
                           | [] => True
                           | _ :: _ => False
                           end) I (x :: xs) Heq_refl
    )
| @Forall_cons _ _ x' xs' Px' Pxs' =>
    fun Heq_refl : x' :: xs' = x :: xs =>
    let xeq : x' = x :=
      f_equal (fun e : list A => match e with
                                 | [] => x'
                                 | a :: _ => a
                                 end) Heq_refl in
    (let xseq : xs' = xs :=
       f_equal (fun e : list A => match e with
                                  | [] => xs'
                                  | _ :: l => l
                                  end) Heq_refl in
      eq_ind xs' (fun xs'' : list A => P x /\ Forall P xs'')
        (eq_ind x' (fun x'' : A => P x'' /\ Forall P xs')
          (conj Px' Pxs') x xeq)
        xs xseq)
end eq_refl.

Fixpoint zip_list_of_smart_params
  (params : list Func)
  (smarts : Forall IsSmart params):
  list SmartFunc :=
  match params as ps return (Forall IsSmart ps -> list SmartFunc) with
  | [] => fun _ : Forall IsSmart [] => []
  | p :: ps => fun (smarts' : Forall IsSmart (p :: ps))
      =>
        match (Forall_cons_if p ps smarts': IsSmart p /\ Forall IsSmart ps) with
        | conj sp sps => (exist _ p sp) :: (zip_list_of_smart_params ps sps)
        end
  end smarts.

Definition get_smart_params (s : SmartFunc): list SmartFunc :=
  let (params, Hsmarts) := get_smart_sig_params s in
  zip_list_of_smart_params params Hsmarts.

Lemma list_cons_eq (A: Type) (x y: A) (xs ys: list A):
  x :: xs = y :: ys <-> x = y /\ xs = ys.
Proof.
split; intros.
- inversion H.
  constructor; reflexivity.
- inversion H.
  rewrite H0.
  rewrite H1.
  reflexivity.
Qed.

Theorem get_smart_params_is_correct:
  forall (s: SmartFunc),
  map get_func (get_smart_params s)
  =
  get_params (get_func s)
.
Proof.
intros.
destruct s as [f is].
destruct f.
cbn [get_func].
cbn [get_params].
unfold get_smart_params.
unfold get_smart_sig_params.
unfold getSmartParamsFromMkFunc.
destructIsSmart is.
injection feq.
intros.
subst params0.
subst name0.
rewrite <- H in heq.
subst hash0.
clear heq.
induction params as [| p ps].
- reflexivity.
- cbn.
  destruct Forall_cons_if as [sp sps].
  cbn.
  apply list_cons_eq.
  split.
  + reflexivity.
  + specialize (IHps eq_refl sps).
    rewrite <- IHps.
    cbn.
    reflexivity.
Qed.


Cannot remove default prompt on inputBox

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

createInputBox
inputBox.prompt = "new prompt"

no matter what you set the prompt to, or how long the prompt gets the default message "press 'enter' to confirm, or 'escape' to cancel" still appears in parentheses.
i would like to be able to remove this so that i can display a custom message with my own keybindings.
link to discussion:
https://github.com/microsoft/vscode-discussions/discussions/1435#discussion-7074932

How would you want your users interact with your input box?

How would you want your users interact with your input box?

it would be better to have the ability to put a completely custom message. For this particular case. I just want to change the description of what the enter button does. In my case, it selects the previous action instead of the current action.

We'd need API for this, the text is there so that users always know what their options are so we don't get issues saying: "how do I dismiss/accept this input?"

We'd need API for this, the text is there so that users always know what their options are so we don't get issues saying: "how do I dismiss/accept this input?"

that is perfectly acceptable for showQuickInput, but i feel like the purpose of createQuickInput is to give the developer more autonomy.


[API]  add issue subscription check

close #10962
Info

added smal refactor c7ad54cea0fce8e06493cc38cf54f27011cf76c8 witch isn't worth its own pr

ToDo

[x] add check via api
[x] write test

Codecov Report

Merging #10967 into master will increase coverage by 0.09%.
The diff coverage is 65.59%.

@@            Coverage Diff             @@
##           master   #10967      +/-   ##
==========================================
+ Coverage   43.61%   43.70%   +0.09%
==========================================
  Files         597      597
  Lines       83923    84000      +77
==========================================
+ Hits        36602    36712     +110
+ Misses      42809    42776      -33
  Partials     4512     4512

Impacted Files
Coverage Δ

routers/api/v1/user/watch.go
0.00% <0.00%> (ø)

models/issue.go
51.32% <33.33%> (-0.09%)
:arrow_down:

models/issue_watch.go
69.73% <53.84%> (-3.28%)
:arrow_down:

routers/api/v1/repo/issue_subscription.go
55.84% <72.30%> (+55.84%)
:arrow_up:

routers/repo/issue.go
37.46% <80.00%> (-0.26%)
:arrow_down:

routers/api/v1/api.go
76.40% <100.00%> (+0.03%)
:arrow_up:

services/pull/check.go
31.09% <0.00%> (-21.96%)
:arrow_down:

modules/git/command.go
86.95% <0.00%> (-2.61%)
:arrow_down:

models/unit.go
41.97% <0.00%> (-2.47%)
:arrow_down:

models/pull.go
42.30% <0.00%> (-0.56%)
:arrow_down:

... and 9 more

Continue to review full report at Codecov.

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

Isn't this getting too intrusive for the users?

It will impruve GitNex IssueSubscritpion a lot.
current Implementation: https://gitea.com/gitnex/GitNex/pulls/203

@guillep2k -> 7c4f75d069d94f43cdc41869d2a270fb7bd40670 :tada:
it breaks somehow the api pattern but is eaven easy to use and dont leek data

ping lgtm


bump aws-sdk-cloudwatchlogs to latest

thank you!

Hmmm, ci is failing. I'll try to handle it.

@TimeToogo thank you for PR
latest version published with 0.1.3


Does it work with Brotli?

Does it handle "br" responses?

No, Alamofire supports the same compression formats as the underlying URLSession networking APIs, which I don't believe includes Brotli.


Add some Questions in linked list

Description
I want to add some standard questions of linkedlist like check weather loop present in linked list or not , concatenate 2 linked list and many more
kindly assign this to me under gssoc 22 . It 'll help  the learners .
Domain
Data Structure
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

Hello,
I would like to work on this issue, please assign it to me.


[BUG] Snake case environment variables for settings do not work

What is the bug?
We are migrating from Elasticsearch to Opensearch. We mostly use bitbucket pipelines to run functional or integration api testing where Elasticsearch is required as a service.
Currently, configuration of Opensearch via Docker variables is possible. -e discovery.type=single-node
However, Bitbucket pipelines does not allow dots in variable definition for services.
See https://jira.atlassian.com/browse/BCLOUD-18007

As a very quick example, running echo $DOT.VARIABLE in Shell or Bash would evaluate $DOT as a variable and then append .VARIABLE verbatim, rather than evaluate $DOT.VARIABLE as a whole. Though there are some scenarios where this does work as expected, such as how Elasticsearch reads the variables.

As far as I can tell from this ticket, this feature was needed primarily for the Elasticsearch Docker image. And Elasticsearch has offered a workaround for this problem:

See Elasticsearch's workaround https://github.com/elastic/elasticsearch/issues/74036
For example discovery.type would become ES_SETTING_DISCOVERY_TYPE. This type of environment variable no longer works in Opensearch and it fails to boot up because of the bootstrap checks.
How can one reproduce the bug?
Start a simple container passing in a snake cased variant of the configuration option.
docker run --rm -it -e "ES_SETTING_DISCOVERY_TYPE=single-node" opensearchproject/opensearch:latest
Results in the following logs
[2023-03-16T23:39:08,792][INFO ][o.o.b.BootstrapChecks    ] [fcd52ae49431] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_cluster_manager_nodes / cluster.initial_master_nodes] must be configured
ERROR: OpenSearch did not exit normally - check the logs at /usr/share/opensearch/logs/docker-cluster.log

What is the expected behavior?
A workaround or an alternative syntax to pass in variables without the dot format like Elasticsearch.
For example the docker environment variable ES_SETTING_DISCOVERY_TYPE is the same as discovery.type
What is your host/environment?
Docker version 23.0.1, build a5ee5b1
Do you have any additional context?
I am not sure if this is the right repository to raise this but it seems to be the most related.

any news here?

Hi we are not using this repo for building docker images.
All the building scripts are currently reside here:
https://github.com/opensearch-project/opensearch-build/tree/main/docker
Thanks.

I am also facing the issue. Still looking for potential solutions.


Helios-Base cannot play penalty kick.

We noticed that helios-base cannot play penalty kick and so do us.
So we modified the function actionImpl in sample_player.cpp
    if(world().gameMode().isPenaltyKickMode()) {
        dlog.addText(Logger::TEAM, __FILE__ ": penalty kick");
        std::vector<int> tmp = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; // add sequence
        M_worldmodel.setPenaltyKickTakerOrder(tmp); // add order
        Bhv_PenaltyKick().execute(this);
        return;
    }

All players start excuting penalty kick normally, but some other warings appear.
left : 2 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.
left : 10 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.right :
left10 : 4 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick. cannot change the kicker order during penalty kick.

left : 3 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.
right : 3 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.
right : 9 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.
right : 1 ***ERROR*** (WorldModel::setPenaltyKickTakerOrder)  cannot change the kicker order during penalty kick.

I'm still not clear about where the problem is. So I'm not sure about two things.

Was my solution right?
Why it gives these warnings?

WorldModel::setPenaltyKickTakerOrder must be called at least once before starting the penalty shootouts.
Usually, teams decide the kick taker order according to the heterogeneous player parameters.
So, this method should be called just after the first player substitution.
Of course, you may need to call it after any player substitution.

Thanks for reply. The warnings above was caused by missing coach. And in my opinion, helios-base may offer a sample for this problem. Otherwise, new teams who start with helios-base may got problems with penalty kick.

OK.
An example code will be added later.


TypeError in index.android.bundle:743

Error in mSupply Mobile
TypeError in index.android.bundle:743
null is not an object (evaluating 'e.itemBatch.id')
View on Bugsnag
Stacktrace
index.android.bundle:743 -

View full stacktrace
Created automatically via Bugsnag

An error linked to this issue has been marked as fixed in Bugsnag
TypeError in index.android.bundle:743


prevent users from using both capybara and webrat

Capybara and Webrat use some of the same method names which leads to runtime collisions that reveal themselves in confusing ways. We should raise an error if both libraries are present, but we should also support an override for this so that people who know what they are doing can use Webrat and Capybara in different contexts in the same suite.

can I have a summary of the current status of possible coexistence of both capybara and webrat? I have a set of tests that worked when both capybara and webrat are used (and both are included in the Gemfile), and another set of tests that only work when webrat is disabled. I would like to know if there is any way to specify a certain test file to use only capybara constructs and exclude webrat from it.

@prusswan there has been no progress on this issue since last august, but there are plenty of suggestions in this thread about how you can get around it.


improve ImageCaptioning

The current ImageCaptioning module uses Salesforce's BLIP, which is pretty inaccurate at times.
OpenAI's CLIP could be an alternative option.

Update: We played a bit with CLIP pretrained with COCO, and Clip-Interrogator:a tool that combines OpenAI's CLIP and Salesforce's BLIP,
but found blip2-opt-2.7b BLIP-2 far better-performing:
See results/comparison [BLIP v/s BLIP-2]:

Blocked by #10

could use mm-react or image-to-paragraph


Date of access to Webpage

Ticket: #5
Type: Improvement
Changes

Added a release notes page to the docs, included these changes only
Refactored webpage to use properties instead of explicit getters/setters
Added unix time in UTC at instantiation as a property, can be modified at a later time as any other property.

Looking through #17, there shouldn't be any conflicts with those changes.  The only interface change here is in explicit after-the-fact setting of url or source, which before could be done with either: foo.set_source('bar') or foo.source = 'bar'.  Now only the property-style dot-access will work.
Impacted Areas
Webpage
Docs
Checklist

[x] Add information to the release notes documentation
[x] Add new feature to the usage documentation
[ ] Add tests

Once #17 is merged in, I'll pull in those changes to merge the release notes, and convert my docstrings to the same format you have there.


New Template Added

name: Pull Request Template
on:
pull_request:
types:
- opened
- synchronize
jobs:
pr-template:
runs-on: ubuntu-latest
steps:
  - name: Check PR title
    run: |
      title=$(git log --pretty=format:%s origin/main..HEAD)
      if [[ $title != *"JIRA-"* ]]; then
        echo "Error: PR title must include a JIRA ticket number"
        exit 1
      fi

  - name: Check PR description
    run: |
      description=$(git log --pretty=format:%b origin/main..HEAD)
      if [[ $description != *"JIRA-"* ]]; then
        echo "Error: PR description must include a JIRA ticket number"
        exit 1
      fi

  - name: Request more information
    run: |
      echo "👋 Thank you for your contribution! To help the reviewer understand your changes better, please provide the following information:"

      echo ""
      echo "## Description"
      echo ""
      echo "<!-- Please provide a brief summary of your changes. -->"
      echo ""

      echo "## Why This PR ?"
      echo ""
      echo "<!-- Why is this change necessary? What problem does it solve? -->"
      echo ""

      echo "## How Has This Been Tested?"
      echo ""
      echo "<!-- Please describe the tests that you ran to verify your changes. -->"
      echo ""

      echo "## Screenshots (if applicable)"
      echo ""
      echo "<!-- If applicable, add screenshots to help explain your changes. -->"
      echo ""

      echo "## Related Issues"
      echo ""
      echo "<!-- If this PR is related to any issues, please mention them using the GitHub issue linking syntax (e.g., 'Fixes #123', 'Closes #456'). -->"
      echo ""

      echo "## Types of Changes"
      echo ""
      echo "<!-- What types of changes does your code introduce? Put an `x` in the boxes that apply. -->"
      echo "- [ ] Bug fix (non-breaking change which fixes an issue)"
      echo "- [ ] New feature (non-breaking change which adds functionality)"
      echo "- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)"
      echo "- [ ] Documentation update"
      echo ""

      echo "## Checklist"
      echo ""
      echo "<!-- Put an `x` in the boxes that apply. -->"
      echo "- [ ] My code adheres to the established style guidelines of this project"
      echo "- [ ] I have conducted a self-review of my code"
      echo "- [ ] I have commented my code, particularly in hard-to-understand areas"
      echo "- [ ] I have made corresponding changes to the documentation"
      echo "- [ ] My changes generate no new warnings"
      echo ""

issue no : #153
@ZapeeoSheikh please Check Let me Know Changes
I have not added image, please add it when your website become ready.

@PatilHarshh thank you for contributing. please resolve the issue so that i can merge it.


feat: Update Default Gemini Base URL to v1beta

In this PR, I updated the default base URL in the googleai_client.rs file to point to the beta version endpoint by changing "https://generativelanguage.googleapis.com/v1" to "https://generativelanguage.googleapis.com/v1beta".
This mirrors the default implementation used in the Google AI Python SDK.
Functionally this opens up a larger variety of models including gemini 1.5 pro experimental from this month.
v1:
models/embedding-001
models/gemini-1.0-pro
models/gemini-1.0-pro-001
models/gemini-1.0-pro-latest
models/gemini-1.0-pro-vision-latest
models/gemini-1.5-flash
models/gemini-1.5-flash-001
models/gemini-1.5-flash-001-tuning
models/gemini-1.5-pro
models/gemini-1.5-pro-001
models/gemini-pro
models/gemini-pro-vision
models/text-embedding-004
v1beta:
models/aqa
models/chat-bison-001
models/embedding-001
models/embedding-gecko-001
models/gemini-1.0-pro
models/gemini-1.0-pro-001
models/gemini-1.0-pro-latest
models/gemini-1.0-pro-vision-latest
models/gemini-1.5-flash
models/gemini-1.5-flash-001
models/gemini-1.5-flash-001-tuning
models/gemini-1.5-flash-latest
models/gemini-1.5-pro
models/gemini-1.5-pro-001
models/gemini-1.5-pro-exp-0801
models/gemini-1.5-pro-latest
models/gemini-pro
models/gemini-pro-vision
models/text-bison-001
models/text-embedding-004

+1, with the pace at which stuff is changing in the broader LLM landscape, Google's slowness in promoting v1beta to v1 is irrelevant for us here.


Add async thread pool for generating diskann cache and catch unexpected return.

/lgtm
/approve

/kind improvement

Note: This PR is to solve slow loading time for DiskANN. It lets segments use a shared global threadpool to make cache.


fix: Use correct url schema for luarocks

Luarocks requires that https repo use a particular url format.
Ensure we comply with them.
Ref: https://github.com/luarocks/luarocks/blob/8dae2fce37b75c9c5eefb334b12cd2359ba48d7e/src/luarocks/fetch/git_https.lua

I think it can be re-released as 1.2.1


Add WTR-LAB Source (Beta Branch)

Add wtr-lab.com en source
https://github.com/LNReader/lnreader-sources/issues/686#issue-2080201054

I think we need thoughts for multiple languages sources

splitting it into multiple files is not a good idea tho

Yeah, I think so too, but please merge this one first so I can use it first hehe..
Then we can open an issue and figure it out later.

So use only one lang which is the primary. remove the others.

So use only one lang which is the primary. remove the others.

done

Altho, trying to find a better way to handle multi-lang sources is kinda of overkill IMO.. not a lot of multi-source lang sources in the first place to worth the effort.


az sql update should support --license-type option

Az Sql update does not support changing the --license-type, meanwhile the PowerShell equivalent of the same statement (Set-AzSqlDatabase (https://docs.microsoft.com/en-us/powershell/module/az.sql/set-azsqldatabase?view=azps-7.0.0), does support this behavior, and the setting of 'License Type' can be changed within the portal.
Azure CLI should support this as well. I have checked using the Azure Shell; PowerShell allows for the changes to be made, Portal allows the change to be made, AZ CLI errors with an unrecognized arguments error.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c1bdd674-b454-e863-c943-9c979b466a92
Version Independent ID: b15341f9-3f1b-00e0-a1c2-970f25a6ab03
Content: az sql db
Content Source: latest/docs-ref-autogen/sql/db.yml
Service: sql-database
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Adding SQL service team to take a look.

I have just run into this same problem. Azure Powershell supports --license-type but Azure CLI does not.


chore: bdd-gh-1583167412 to 0.0.1

chore: Promote bdd-gh-1583167412 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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


Remove email case sensitive of Control Tower shared accounts

AFT Version:
1.4.0
Bug Description
The version 1.4.0 introduced the ability to manage Audit, Logarchive and Management. I've run recently into an issue where AFT was unable to manage the Audit account because the email did not exactly match.
We already run into this issue in the past here https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/90. I've looked into the current code and in fact it checks the email address matches with the same case.
https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/6005cfe765ca05241ec20a1392c119baa6883e76/sources/aft-lambda-layer/aft_common/shared_account.py#L59
To Reproduce
Steps to reproduce the behavior:
Onboard a shared account using an email address with at least 1 letter with different case.
Expected behavior
Since an email address is unique no matter the case used, AFT should not ensure strong case matching.
Thanks,
Francisco

Thanks for bringing this up @fjromerom, I'll go ahead and bring this up with the team

Hi @fjromerom,
AFT 1.8.0 resolves this issue. Thanks for the report!


Fixes syntax errors in examples

I tried to copy/paste the example code but it had some syntax errors so I opened this PR to fix them.
There's a better way to do examples in Go that prevents syntax errors.
https://go.dev/blog/examples
Would you like me to migrate all the examples to Testable Examples after this PR is merged?

@kevburnsjr the one issue iirc in go examples is that you can't align them to interface methods. Is that still the case?


Remove rules not included in chef

Include an option to remove rules not created by chef.

:+1: for that. Things can go out of sync quite quickly without that.


Problem with marker icon

Hi,
I want to use vue2-leaflet & vue-choropleth at the same time in two routes and I tested it with webpack. To use customised icon, I wrote this in main.js:
import { L } from 'vue2-leaflet'; delete L.Icon.Default.prototype._getIconUrl; L.Icon.Default.mergeOptions({   iconRetinaUrl: require('./assets/hb_sd_logo.png'),   iconUrl: require('./assets/hb_sd_logo.png'),   // shadowUrl: require('./assets/marker-shadow.png'),   iconSize: [18, 18],   iconAnchor: [9,9] });
The icon can be shown locally and correctly with webpack.
However, when I was going to import vue-chororpleth by:
import { InfoControl, ReferenceChart, ChoroplethLayer } from 'vue-choropleth' and add them to components, then the icons were all gone with error message.

If I take out the import of vue-choropleth then it works fine again. Do you know what the problem is here?

I couldn't reproduce the issue reported. Can you try again with v0.3.1?


Add powerpc64{le,} cross-compilers for gcc svn ibm branch

Hey Matt,
Took a different approach just using the crosstool-ng to build from the gcc svn branch.
closes #109

@grooverdan interesting. When I played with ct-ng for the ARM compilers I couldn't quite get it working. But perhaps I was too focused on the older compilers? So more recent ones seem to work?
And if I read the config correctly, this build will include gfortran as well, doesn't it?

What was your working/not working test case? Yes this includes gfortran. Will need a https://github.com/mattgodbolt/compiler-explorer/blob/master/etc/config/fortran.amazon.properties entry however since it models the c++ case, may as well ensure those paths are right first.

Just seeing #85, did you use the Dockerfile and ct-ng that is currently in the repository?

I think I've dug up the previous container that I've used for my tests. If I'm not mistaken, ct-ng 1.23 (the latest release), doesn't seem to build gcc-7.1.0 for ARM. This is one of the configs provided in build/new. So I'm a little confused. And that's not helped by the fact that gcc-7.2.1 is available on the live site.

Hi @grooverdan - I'll try and catch up with your PRs and the conversations between you and @dbroemmel tonight too: sorry I've been so far behind on this!

All good @mattgodbolt. We know this is a voluntary, for the love it, project for you. Hope what we've come up with is clean and sane.


WARNING AT COMPILE TIME on javax.annotation.meta.When.MAYBE

Hi,
When i compile my project, i have this warning (I use @Nullable annotation). FYI my target source is java 8 but i use java 17.
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] unknown enum constant javax.annotation.meta.When.MAYBE
reason: class file for javax.annotation.meta.When not found
[WARNING] unknown enum constant javax.annotation.meta.When.MAYBE
reason: class file for javax.annotation.meta.When not found
[WARNING] unknown enum constant javax.annotation.meta.When.MAYBE
reason: class file for javax.annotation.meta.When not found
[WARNING] unknown enum constant javax.annotation.meta.When.MAYBE
reason: class file for javax.annotation.meta.When not found
[WARNING] unknown enum constant javax.annotation.meta.When.MAYBE
reason: class file for javax.annotation.meta.When not found
Maybe you don't have to use javax.annotation.meta.When.MAYBE  https://github.com/openrewrite/rewrite/blob/eee01ddc30f343f98c355a8c9344081c228c692e/rewrite-core/src/main/java/org/openrewrite/internal/lang/Nullable.java#L39

Does your project have a dependency on https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305/3.0.2 ?
That contains the javax.annotation.meta.When for as much as I can tell, and could resolve your issue.

I see the same warning just running "gradlew test" on the HEAD of the rewrite project itself, with no local changes.

Does your project have a dependency on https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305/3.0.2 ? That contains the javax.annotation.meta.When for as much as I can tell, and could resolve your issue.

OK for me after added this deps


Uncaught Error: Unrecognized property: WeatherChangeIntervalMax

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Load Save
modify anything
Click Save / Download
Nothing happen
In Console stands:
Uncaught Error: Unrecognized property: WeatherChangeIntervalMax
at studio.js:1:235024
at HTMLButtonElement. (studio.js:1:235308)

Expected behavior
A clear and concise description of what you expected to happen.
Download dialog for new Save
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS] Windows
Browser [e.g. chrome, safari] Operea GX
Version [e.g. 22] Newest

@knoellix can you please include the affected sav file?

Fixed in #86


Remove source channel from ics20 withdrawal action

The source_channel field in astria.protocol.transactions.v1alpha1.Ics20Withdrawal is not necessary: it must be part of the asset to be withdrawn. In fact, astria-bridge-contracts is parsing it out from the asset and placing it in the action.
┆Issue Number: ENG-926

This issue is not actionable, the source channel is necessary because of the following scenarios:

transfer of sequencer native assets.
transfer of non-native assets to yet another chain (for example, tia bridged to sequencer that is being sent to osmosis).

The only case in which source channel is not needed is if a wrapped asset (an asset for which sequencer is the sink zone) is returned back to its source (so that sequencer can pop the leading port/channel pair and determine the channel from there).


Bot Permissions

Hello,
I have a permission issue for bot I created. Hope it can be fixed.
Well, I created generic rss bot using (python-zulip-api)[https://github.com/zulip/python-zulip-api/blob/master/zulip/integrations/rss/rss-bot] according this and it works perfectly for public streams. But when the bot subscribed to public stream with enabled _ Restrict posting to organization administrators_ option and trying to post rss feed it gets error:
{u'msg': u'Only organization administrators can send to this stream.', u'code': u'BAD_REQUEST', u'result': u'error'}
Obviously, bot hasn't organization admin rights. But I am organization admin and generic bot created by me able to do the same, according this article.
So my question is:
is it possible to make bot posting to streams like this? Or I need to use API Super Bot for this purpose?
We're using Zulip v. 2.0.4 hosted at Ubuntu 18.04
Thanks!

Thanks for the report @crizise!  This is fixed in master and 2.1-rc1 (soon to be Zulip 2.1).


Add my first file.

I have created a branch, created a file and made a commit.

all looks good. We are merging


Compile from Source Fails - rmf_visualization_obstacles module

Bug report
Required information:

Operating system and version:

Ubuntu 22.04

OpenRMF installation type:

Installed based on Github Instructions for compiling from Source

OpenRMF version or commit hash

Install from source - RMF Source Repository

ROS distribution and version:

ROS 2 Humble

ROS installation type:

Install from source based on ROS2 Humble Install Guide

Package or library, if applicable:

Not applicable

Description of the bug

The build from source fails at the colcon build --mixin release lld  step.
You get the following error message:

--- stderr: rmf_visualization_obstacles
CMake Error at CMakeLists.txt:13 (find_package):
  By not providing "Findvision_msgs.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "vision_msgs", but CMake did not find one.

  Could not find a package configuration file provided by "vision_msgs" with
  any of the following names:

    vision_msgsConfig.cmake
    vision_msgs-config.cmake

  Add the installation prefix of "vision_msgs" to CMAKE_PREFIX_PATH or set
  "vision_msgs_DIR" to a directory containing one of the above files.  If
  "vision_msgs" provides a separate development package or SDK, be sure it
  has been installed.

---

Steps to reproduce the bug
Follow the install from source guide as listed in the Open RMF repository.
Expected behavior

Successful compile and build of the RMF.
Actual behavior

Build fails and does not complete.

vision_msgs is an external package that has a binary release for humble. It should get installed automatically when you run the rosdep install command in the instructions. Make sure to run rosdep update prior if you haven't done so in a while.

i installed ROS2 from source using the link i posted in my bug report above. And i do a rosdep update prior to installing RMF. However, i realise that when going with ROS2 installed from source instead of binary then the vision_msgs package is not available but when i install ROS2 using binary as the RMF install guide assumes, then it works. Let me know if you need me to provide more detailed messages or logs. I am happy to install a new machine with ROS2 from source followed by RMF from source using the links i've highlighted in the posts above.

Oh I see, I missed the detail that you installed ROS 2 from source. In this case, you need to also clone in the vision_msgs pkg into your workspace (checkout the ros2 branch).

Ah ok. Then should we update the install readme to include that as a point to note for people who are installing ROS2 from source. Especially given the RMF Demos page actively encourages folks to install ROS2 from source to ensure maximum compatibility and easy debugging.

Especially given the RMF Demos page actively encourages folks to install ROS2 from source

Not sure where you saw this. The build instructions clearly state to install humble binaries. If users choose to use ROS 2 binaries, then they will need to ensure other dependencies which are otherwise installed by rosdep, are cloned in. I'm closing this issue for now, but feel free to reopen it if you feel otherwise.


workbox-range-request 3.6.2 does not load from CDN

Library Affected:
workbox-range-requests
Browser & Platform:
all browsers
Issue or Feature Request Description:
workbox-range-request 3.6.2 does not load from CDN
Trying to use workbox.rangeRequests.createPartialResponse(request, cachedResponse); results in:
Unable to import module 'workbox-range-requests' from 'https://storage.googleapis.com/workbox-cdn/releases/3.6.2/workbox-range-requests.dev.js'
Uncaught (in promise) DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'https://storage.googleapis.com/workbox-cdn/releases/3.6.2/workbox-range-requests.dev.js' failed to load.
    at Object.loadModule (https://storage.googleapis.com/workbox-cdn/releases/3.6.2/workbox-sw.js:1:1128)
    at Object.get (https://storage.googleapis.com/workbox-cdn/releases/3.6.2/workbox-sw.js:1:757)
    at respondFromCache (http://localhost:5000/custom-service-worker.js:6:18)
loadModule @ workbox-sw.js:1
get @ workbox-sw.js:1
respondFromCache @ custom-service-worker.js:6

Nevermind. It works if I do const createPartialResponse = workbox.rangeRequests.createPartialResponse at the beginning of the file. Apparently it doesn't like an importScripts right in the middle of a fetch event.

Right—please see https://developers.google.com/web/tools/workbox/modules/workbox-sw#avoid_async_imports


[Bug][Config UI] Errors when update project conection's scopes

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
https://github.com/apache/incubator-devlake/assets/5844806/d8bb65f1-9167-4140-a71f-d67d37268ecf
Look at this video.

When I choose "ALL",  some iterms are not included.
When I update scopes, an error occured.

What do you expect to happen

I choose "ALL", and all scopes are included.
I can update scopes successfully.

How to reproduce
Create a project and add a bamboo connection to it.  Do the operations like me in the video.
Anything else
None
Version
main
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @d4x1, question 1 is in line with expectations. When you click 'ALL', the data scope is not loaded all, so it only selects the loaded data scope.
I will check question 2.

hi @d4x1, I checked question 2 and found it is a backend error, please check it.


fix #209 - don't fail if the source annotation isn't available

cc/ @onilton @lvicentesanchez @godenji @jilen @gustavoamigo

:+1:

:+1:


refactor: Remove compiler warnings

Refactor to remove compiler warnings and unused code that is unlikely to be used by anyone anymore.

:tada: This PR is included in version 7.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Added OTEL for tracing, metrics, logging (Console and OTLP exporters)

Foundation for https://github.com/FritzAndFriends/TagzApp/issues/136
Added Grafana setup utilizing Tempo for tracing (backed by Prometheus), Prometheus for metrics and Loki for logging. Enabled features to correlate traces, metrics and logs within Grafana. All services added to:
https://github.com/FritzAndFriends/TagzApp/blob/a1fdd75f314bbcee7d6d10ccafa278ec6545a548/docker-compose.local.yml
until @csharpfritz figures out what he wants to do with them going forward. Simply run docker compose -f ./docker-compose.local.yml up and the observability service stack will spin up. Run TagzApp.Blazor pointed at otlp exporter for traces, logs and metrics and let OTEL collector forward to the appropriate places/formats.
Note: The newly announced .NET 8 dashboards are pre-installed and wired up to prometheus (see here):
https://devblogs.microsoft.com/dotnet/introducing-aspnetcore-metrics-and-grafana-dashboards-in-dotnet-8/
TODO:

[ ] Azure Monitor Exporter
[ ] Zipkin Exporter

Started a blog post series related to this work. Part 1 up - https://shawn.vause.us/posts/opentelemetry-dotnet/

Logs are here @csharpfritz

Something doesn't seem to be working though with the trace to logs feature I will have to look into that. You should be able to explore the tempo traces and have a link on the trace/span to jump to logs.

Scratch that it is here:

@csharpfritz what would you like to see so we can get this merged up?

Let's put together some samples around creating custom metrics and traces
from the Mastodon provider to show how we can create a custom TagzApp
dashboard and metrics.
This way we can start rolling this work through the rest of the application
Thoughts?
Jeff
On Mon, Mar 4, 2024 at 4:15 PM Shawn Vause @.***> wrote:

@csharpfritz https://github.com/csharpfritz what would you like to see
so we can get this merged up?
—
Reply to this email directly, view it on GitHub
https://github.com/FritzAndFriends/TagzApp/pull/384#issuecomment-1977468659,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAATF4MCOKPFQ56LSEBIGYTYWTP67AVCNFSM6AAAAABDUCOHQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGQ3DQNRVHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Initial Dashboard:


Samples framework doesn't sign in

I just donload the sample framework and i am trying it out. Signing in AAD seems to be successful (i get an valid token) but the framework never signs in. here is a screenshot what is happening and i have no clue where it gets stuck.
Any idea's

The same situation,
when will you fix it?


Allow multiple parent features

GAG currently does not seem to fully follow GFF3 convention with respect to parent-child relationships. Specifically, it seems to not allow multiple parents for e.g. an exon. Example GFF line:
scaffold_3      maker   exon    26745   27044   .       +       .       ID=POPTREM201E100992;Parent=POPTREM201T100196,POPTREM201T100197,POPTREM201T100198;Name=POPTREM201E100992
This results in exons to be assigned to only the first parent - all other transcripts end up with no exons and are then rejected. Condensing GFF3 files in this way however is a very sensible thing to do so it would be great if support for this data structure could be added.

Dear Brian,
I have the same issue with your updated code.
I replace gff_reader and i've got error with it.
Can you please check this?
Traceback (most recent call last):
File "/Users/wyim/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/gag.py", line 45, in
main()
File "/Users/wyim/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/gag.py", line 42, in main
controller.execute(args)
File "/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/controller.py", line 44, in execute
self.read_gff(gffpath, out_dir)
File "/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/controller.py", line 252, in read_gff
genes, comments, invalids, ignored = gffreader.read_file(reader)
File "/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py", line 320, in read_file
splitlines = self.validate_line(line)
File "/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py", line 68, in validate_line
splitlines = self.split_multi_parent_line(splitline)
File "/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py", line 39, in split_multi_parent_line
for parent in parents:
TypeError: 'NoneType' object is not iterable

Hi there,
I no longer work on GAG but if you can send me a copy of your input files
I'll take a quick look!
Aloha,
Brian
On Mon, Dec 5, 2016 at 4:47 PM Won Cheol Yim<EMAIL_ADDRESS>wrote:

Dear Brian,
I have the same issue with your updated code.
I replace gff_reader and i've got error with it.
Can you please check this?
Traceback (most recent call last):
File
"/Users/wyim/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/gag.py",
line 45, in
main()
File
"/Users/wyim/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/gag.py",
line 42, in main
controller.execute(args)
File
"/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/controller.py",
line 44, in execute
self.read_gff(gffpath, out_dir)
File
"/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/controller.py",
line 252, in read_gff
genes, comments, invalids, ignored = gffreader.read_file(reader)
File
"/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py",
line 320, in read_file
splitlines = self.validate_line(line)
File
"/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py",
line 68, in validate_line
splitlines = self.split_multi_parent_line(splitline)
File
"/Volumes/Aeron/Dropbox/iceplant_genome_final/final_seqeunce_gff/gff_need_fix/GAG/src/gff_reader.py",
line 39, in split_multi_parent_line
for parent in parents:
TypeError: 'NoneType' object is not iterable
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/genomeannotation/GAG/issues/145#issuecomment-265026588,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACb7RLlQbtOoTS9BdEKhKk7aXHoLgFBIks5rFLCRgaJpZM4CpW82
.


Form submission and Google map not working

The form show up on Netlify Forms section but when I submit a form it gets submitted but submissions are empty for both FormSimple and FormSimpleAjax. Please explain how the form works in your theme.
I have tested form by creating a simple form (named referrals) as instructed here https://docs.netlify.com/forms/setup/#html-forms and submissions are working with this form as shown in below screenshot.

Google Map shows For development purpose only, how can I make it work normaly

Try to make your own form following the docs then you will better understand how the forms work.
Google map requires an API key.
Add it manually for testing after that I recommend using environment variables.
https://github.com/thriveweb/yellowcake/blob/master/src/components/GoogleMap.js
let mapkey = ''
if (process.env.NETLIFY_MAP_KEY) {
mapkey = process.env.NETLIFY_MAP_KEY
}