Prevent chmod collisions in multi-agent per instance stacks

If we chmod the whole builds directory at the beginning of every build then we might chmod files which are currently in use by another agent's build.
The builds path has a first component which is the agent name. We can safely chmod recursively inside there. But we don't know this path, and don't expose it anywhere. And it's not as simple as builds-path/agent-name because the agent name is sanitized, but how it is sanitized depends on the agent version.
So we can grab the checkout path and work backwards. It's kinda hacky, but it works.
Like @tim suggested, it might be nice to extract the munging from the fix script into the environment hook and just pass in a prepared agent directory name and just make sure it has no slashes and isn't a traversal component in the script.

Thanks! I'll give this a test once it's built.

Will this fix issues like this?
git clean -fxdq
warning: failed to remove tmp/cache/assets/sprockets/v3.0/xJ/xJp0BBSfoEY_xAaV-vNHd_oy26vDwZJQIIawkxXEoqk.cache
warning: failed to remove tmp/cache/assets/sprockets/v3.0/FH/FHdUqc7Xi1zv_N7zZOP2by38NrLESpyeiKuFuCLkdD0.cache

We're getting these occasionally and we only have one agent running per instance.

@shuber oh dear. If you're having that problem with a single agent then I don't think so. Are you running docker with the build directory mapped in? If it writes files to the volume they're probably owned by root, which is what this sudo script is meant to fix up at the beginning of the next run. This is an unfortunate side effect of using Docker. We're also looking into a better fix using user namespaces to make sure files on host filesystem end up owned by buildkite-agent.

@sj26 Correct we're running docker and mounting volumes for stuff like node_modules right in the build directory itself. Our environment hooks run the sudo script that you're describing but occasionally we still get those errors. We run like 80 agents per build and more often then not it wont just be one agent that has that issue. Instead like 20-40 of them will fail within 10 seconds with that error, all in the same build.

@shuber definitely only one agent per instance? That does sound like the issue this PR is intended to fix, but with multiple agents per instance.

Anything I can do to help get this over the line? :)

@sj26 yea we use
{
    "ParameterKey": "AgentsPerInstance",
    "ParameterValue": "1"
  }

@tim did you end up giving it a test?

@shuber I don't think it's related to this change then I'm afraid. I'll reach out separately and maybe we can figure it out!


MX-116 - Fixes markdown bug causing Artwork crash

https://artsyproduct.atlassian.net/browse/MX-116

Wraps the returned markdown in a Text element. In some edge cases React-native would crash due to text not being in a text component.

Ah yes, that pesky little space :+1:

:rocket: PR was released in v1.19.7 :rocket:


[graphiql] generated bundles of graphiql is incompatible with strict CSP

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
The top level readme in the repo states:

codemirror-graphql and the graphiql browser bundle use the .browserslistrc, which targets modern browsers to keep bundle size small and keep the language services performant where async/await is used, and especially to avoid the requirement of regenerator-runtime or special babel configuration.

But in fact regenerator-runtime is used here
If I run build-bundles in graphiql the generated graphiql.min.js file includes regenerator-runtime and actually differs from the version served here https://graphiql-test.netlify.app/ (the hosted version uses a newer build of regenerator-runtime which doesn't have this issue)
The easiest solution would be to remove regenerator-runtime by just removing the one line.
regenerator-runtime was updated recently to fix the issue https://github.com/facebook/regenerator/commit/cc0cde9d90f975e5876df16c4b852c97f35da436
If the lib should be kept, we could update regenerator-runtime to 0.14.8 or make sure that strict mode is not used
Expected Behavior
No response
Steps To Reproduce
No response
Module pattern

[ ] graphiql-umd
[ ] graphiql-esm
[ ] graphiql-commonjs

Environment
No response
Anything else?
No response

first of all, we need to replace webpack with vite or use webpack 5 at least, there are two PRs outstanding attempting to do this. but I did not realise that regenerator runtime was re-added, that hasn't been needed for a while since we dropped IE support a few years ago

Looks this regenerator-runtime was re-added recently, here. @LekoArts do you remember your motivation for this change?

Looks like regenerator-runtime was re-added to support graphiql-plugin-code-exporter.
As far as I can tell, there isn't a way to package regenerator-runtime with the vite library build for graphiql-plugin-code-exporter.  There's a vite plugin for this, @vitejs/plugin-legacy, but it doesn't run in library mode.

Looks like regenerator-runtime was re-added to support graphiql-plugin-explorer.

It was in cdn.ts already before that, the commit blamed by git did only reorder imports, see here: https://github.com/graphql/graphiql/pull/2715/files#diff-bbf2e336517679d4c3102227c21f5e33b354a5518d9844c6302f2b2bcf4b542f
In fact, regenerator-runtime has been in there since I started working on this repo in May 🤨


Adjust timeout for HTTP watch requests according to wait parameter

Motivation:
Currently Central Dogma server does not adjust timeout for watch requests.
So every watch request would be timed out after the default timeout in the server even if the request contains wait value which is greater than the default timeout. It causes that the server responds 503 Service Unavailable to the client.
Modifications:

Adjust timeout for watch requests in WatchRequestConverter.
Fix test cases.

Result:

A user can adjust the timeout of a watch request.

This PR changes the behavior when a user wants to set a timeout which exceeds the upper bound.

AS-IS: the max value is Long.MAX_VALUE. If the timeout exceeds that, 0 will be set, which means 'unlimited'.
TO-BE: the max value is TimeUnit.DAYS.toMillis(365). If the timeout exceeds that, the max will be set.

Had a chat with @trustin about that the max timeout. We agreed that 1 day is enough. So I changed it from 365 days to 1 day.

Thanks, @hyangtack !


Fix build for OSX ARM64 - platform says arm64, not aarch64. Also, set…

Fix local build for OS ARM64 as platform reports its name as 'arm64', not 'aarch64'. Also, increased numpy version, to avoid building it from sources.
What needs to be done is a CI step specific for OSX ARM64 - similar to what is done for windows

And do not forget to export flgas: export LDFLAGS="-L/opt/homebrew/lib"; export CPPFLAGS="-I/opt/homebrew/include

Fixes for OSX ARM64 build will be added in another PR.


fix regex to ignore username

@raisedadead @systimotic I think this fixes the issue with someone having a 'thanks' keyword in their username. Care to test?
Closes #144

I'm not late at all! 😅😉
I'm currently still really low on time and not set up to test camperbot. @raisedadead could you take a look at this?

@raisedadead could you QA this when you get a second, please :) ?

@dhcodes thanks a lot for the changes, @BerkeleyTrue can you please deploy when you have a moment.

This is now live


Add ability to get an official object type name

Noah, I'm sorry but I suddenly got a massive brainstorm of ideas

god damnit Alex


Packed Library Support Regression

Since restructuring the integration tests the packed library support now fails.  It appears to fail to launch into LabVIEW.

Probably related to #155


Refactor topic renaming slightly to use TableId instead of two maps

Did several things in this PR:

Refactored topic rename from #44 to remove some duplicate maps.
Cleaned some checkstyle issues
Fixed a 404 error with some javadoc links

Current coverage is 76.15% (diff: 91.17%)

Merging #47 into master will decrease coverage by 0.29%

@@             master        #47   diff @@
==========================================
  Files            25         25
  Lines           964        952    -12
  Methods           0          0
  Messages          0          0
  Branches        134        134
==========================================
- Hits            737        725    -12
  Misses          184        184
  Partials         43         43

Diff Coverage
File Path

••••••••   87%
...m/wepay/kafka/connect/bigquery/BigQuerySinkTask.java

••••••••   88%
...fka/connect/bigquery/utils/TopicToTableResolver.java

•••••••••• 100%
...ay/kafka/connect/bigquery/BigQuerySinkConnector.java

•••••••••• 100%
...afka/connect/bigquery/config/BigQuerySinkConfig.java

Powered by Codecov. Last update d2c6d29...b5d4e0b


Support assignment of proptypes inside ifs.

Hi @yannickcr! Firstly, thanks for the awesome project. It's made my life so much easier when working with a team of react devs, trying to set project conventions :stuck_out_tongue_closed_eyes:.
Now to the real issue: we have established a pattern for making stateless function components that looks like this:
export default function FooBar(props) {
  const bar = props.bar;
  return (

);
}
if (process.env.NODE_ENV !== 'production') {
  FooBar.propTypes = {
    bar: React.PropTypes.string
  }
}

The key bit to note is the if (process.. guard, which lets us compile out proptype validation when in production (saving those precious, precious bytes!).
The problem is, we have enforced the prop-types rule and it complains that we aren't validating for any proptypes - we are, we're just guarding it in an if.
I understand if you think it'd be too complex to support this kind of pattern, but I'd really love to be able to keep using the pattern, and keep enforcing proptype validation :smile:

This is a bug, this pattern should be supported.

:+1: awesome, thanks so much @yannickcr. Really appreciate this project and your work btw!


stake-pool: Add program_id to all instruction ctors

Problem
We're going to have more than one stake pool program, and some of the instruction constructors don't allow you to set a program id.
Solution
Add program_id as a parameter on all constructors.
cc @ruuda let me know how this looks

Hey, @joncinque , would you be able to give an explanation of why we'd like to have multiple stake pool programs?

@jon-chuang Yep, that's exactly the point, they will have their own program, which they can maintain and upgrade in lockstep with the Lido program.  This way, the foundation / community stake pools and program can operate totally independently.  Since Lido users are trusting the Lido program already with their deposits, in their case it makes sense to have a trusted stake pool program to go with it, that can't get changed in any undesired way.  They can also control when to update to new code as needed, after it passes their regression testing suite and any other checks needed.


Question/concern About Mixing Logic Between Separate Responsibilities

So, I have a question/concern about mixing logic between separate modules/responsibilities.
My page has two forms:

Subscription form (enter your email and submit)
Feedback form (enter text and submit)

I show the subscription form first. Once it's submitted, I replace it with the feedback form. Both submissions go to separate routes and API endpoints and are handled by separate modules/services/controllers/etc.
Now, to hide one form and show another, both forms/logic must know about each other. That's what concerns me.
Either the subscription controller

must render the subscription-form-initial-view first,
then, upon submission, it renders the feedback-form-initial-view.

Or the feedback controller

renders the subscription-form-initial-view first,
then, upon submission, it renders the feedback-form-initial-view.

Or

both controllers render both forms (pieces) and inject them into the page via, e.g., partial views,
the subscription-form-initial-view is visible,
the feedback-form-initial-view is hidden,
and a third entity manages the visibility of blocks depending on submit/click events (which is also an implementation question):
-- either make another request to render the block
-- or have the feedback form "listen" to the subscription form's "state"
-- or?

I'm missing some obvious implementation or still thinking in the 'old way'.
I would appreciate any insights from you or any suggestions on this.

After a couple of days of thinking, I decided to add the following action, which looks for a parent block for "instructions" on what to do once the form is submitted.
ts-req-after="#on-subscription-form-submit, click"

Good. Thanks for the response =)


Fix critical vulnerability CWE-78

I have simply fixed the linting errors in the PR raised by @Narvey
https://github.com/postcss/postcss-filter-plugins/pull/18

I repeat:

@RyanZim Repeat noted. If that provides the same solution and doesn't cause any issues, I'm with you. I was under the impression that the unique lib was being used to reduce the chance of two random strings ending up being the same.
But you may very well be right, Math.random().toString() may achieve that just fine.

We're talking about giving each plugin an id; most plugin chains aren't crazy long, I don't think the uniqueness will be an issue.

@RyanZim Yeah, that makes sense.

Also, should have mentioned this the first time; please remove package-lock.json from git.

Thanks!

Feel free to add yourself here if you'd like: https://github.com/postcss/postcss-filter-plugins#contributors

Will do 👍


Feature request: exclude breakpoints with use_external

It would be nice to be able to exclude certain breakpoints when exporting to an external file.
Example use:
In [src].css I want to combine media queries for mobile landscape (eg. up to 40em), but don't want them to be exported in a separate file. Whereas [src].responsive.css would only contain media queries for tablet and desktop (40em and up).
The why here is Mobile First, where tablet & desktop styling is being served as a separate file. The plugin already does a great job at facilitating this workflow, but I'd hate to give up styling mobile landscape...

+1


Preset for a way designated for both cyclists and pedestrians, with separate spaces (segregated=yes)

a mirror of  #317
It is really needed as some mappers are confused and repeatedly damage data as iD is not showing it clearly what is mapped already

Update: See https://github.com/openstreetmap/id-tagging-schema/issues/317#issuecomment-2553332363 – please use the preview link in that comment to test out if the merged and proposed change does what this issue is about.


Stop propagation of mouse events on tooltip.

Fixes Leaflet bug with 'close' button.

This should be addressed on the modest maps side in recent versions; in compliant browsers, MM will confirm that the event target is a map tile before using the event.

This is also a problem in recent versions of Leaflet.

Ah, Mr. Leaflet. Hmm.

Perhaps the preferred fix would be to check for a tile in the event callbacks in leaf/interaction.js?


hg19 reference genome bug

Dear developers,
Thanks for creating CircMiMi, it's an easy to use and very useful tool. However, I am having problems creating an hg19 reference genome instead of hg38.  I get the following error:
`circmimi_tools genref --species hsa --source ensembl --version 75 refs/
--2022-11-09 12:05:13--  ftp://ftp.ensembl.org/pub/release-75/gtf/homo_sapiens/Homo_sapiens.GRCh37.75.gtf.gz
=> './Homo_sapiens.GRCh37.75.gtf.gz'
Resolving ftp.ensembl.org (ftp.ensembl.org)... <IP_ADDRESS>
Connecting to ftp.ensembl.org (ftp.ensembl.org)|<IP_ADDRESS>|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/release-75/gtf/homo_sapiens ... done.
==> SIZE Homo_sapiens.GRCh37.75.gtf.gz ... 39344043
==> PASV ... done.    ==> RETR Homo_sapiens.GRCh37.75.gtf.gz ... done.
Length: 39344043 (38M) (unauthoritative)
Homo_sapiens.GRCh37.75.gtf.gz  100%[=================================================>]  37.52M  33.3MB/s    in 1.1s
2022-11-09 12:05:15 (33.3 MB/s) - './Homo_sapiens.GRCh37.75.gtf.gz' saved [39344043]
--2022-11-09 12:05:15--  ftp://ftp.ensembl.org/pub/release-75/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.75.dna.primary_assembly.fa.gz
=> './Homo_sapiens.GRCh37.75.dna.primary_assembly.fa.gz'
Resolving ftp.ensembl.org (ftp.ensembl.org)... <IP_ADDRESS>
Connecting to ftp.ensembl.org (ftp.ensembl.org)|<IP_ADDRESS>|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/release-75/fasta/homo_sapiens/dna ... done.
==> SIZE Homo_sapiens.GRCh37.75.dna.primary_assembly.fa.gz ... 869930767
==> PASV ... done.    ==> RETR Homo_sapiens.GRCh37.75.dna.primary_assembly.fa.gz ... done.
Length: 869930767 (830M) (unauthoritative)
Homo_sapiens.GRCh37.75.dna.pri 100%[=================================================>] 829.63M  45.3MB/s    in 27s
2022-11-09 12:05:43 (30.4 MB/s) - './Homo_sapiens.GRCh37.75.dna.primary_assembly.fa.gz' saved [869930767]
--2022-11-09 12:05:43--  ftp://ftp.ensembl.org/pub/release-75/fasta/homo_sapiens/cdna/Homo_sapiens.GRCh37.75.cdna.all.fa.gz
=> './Homo_sapiens.GRCh37.75.cdna.all.fa.gz'
Resolving ftp.ensembl.org (ftp.ensembl.org)... <IP_ADDRESS>
Connecting to ftp.ensembl.org (ftp.ensembl.org)|<IP_ADDRESS>|:21... connected.
Logging in as anonymous ...
Length: 60646070 (58M) (unauthoritative)
Homo_sapiens.GRCh37.75.cdna.al 100%[=================================================>]  57.84M  33.5MB/s    in 1.7s
2022-11-09 12:05:46 (33.5 MB/s) - './Homo_sapiens.GRCh37.75.cdna.all.fa.gz' saved [60646070]
--2022-11-09 12:05:46--  ftp://ftp.ensembl.org/pub/release-75/fasta/homo_sapiens/ncrna/Homo_sapiens.GRCh37.75.ncrna.fa.gz
=> './Homo_sapiens.GRCh37.75.ncrna.fa.gz'
Resolving ftp.ensembl.org (ftp.ensembl.org)... <IP_ADDRESS>
Connecting to ftp.ensembl.org (ftp.ensembl.org)|<IP_ADDRESS>|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/release-75/fasta/homo_sapiens/ncrna ... done.
==> SIZE Homo_sapiens.GRCh37.75.ncrna.fa.gz ... 7735481
==> PASV ... done.    ==> RETR Homo_sapiens.GRCh37.75.ncrna.fa.gz ... done.
Length: 7735481 (7.4M) (unauthoritative)
Homo_sapiens.GRCh37.75.ncrna.f 100%[=================================================>]   7.38M  12.3MB/s    in 0.6s
2022-11-09 12:05:47 (12.3 MB/s) - './Homo_sapiens.GRCh37.75.ncrna.fa.gz' saved [7735481]
Traceback (most recent call last):
File "/Users/migab/miniconda3/envs/circmimi/bin/circmimi_tools", line 8, in
sys.exit(cli())
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/circmimi/scripts/circmimi_tools.py", line 164, in generate_references
info, ref_files = genref.generate(species, source, version, ref_dir)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/circmimi/reference/genref.py", line 311, in generate
anno_ref.generate()
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/circmimi/reference/genref.py", line 26, in generate
gendb.generate(self.src_name, self.filename)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/circmimi/reference/gendb.py", line 193, in generate
tables_raw_data.parse(gtf_path)
File "/Users/migab/miniconda3/envs/circmimi/lib/python3.10/site-packages/circmimi/reference/gendb.py", line 113, in parse
biotypes = sorted(set(map(itemgetter(2), genes + transcripts)))
TypeError: '<' not supported between instances of 'NoneType' and 'str'`
Could you help me with fixing this issue?
Best wishes,
Migle

Hi Migle,
Thanks for the feedback on CircMiMi package!
This bug is due to the annotation GTF file from Ensembl 75, which not having the "transcript_biotype" attribute for "transcript".
You may try the GTF file from Gencode v19 instead, it should be work nicely.
We would fix this bug in the near future.
Best,
tw


Come up with a more standarized post structure

or will we do this just for future posts?

I think we can start just having this for new posts, and the ones we will need to update due to broken links (#12 )
How about having something like:
-image/embedded video
-short paragraph
-contact info of the original developers

Yes, so the "form" would be something like?
Title
[INSERT IMAGE HERE]
short paragraph
contact info

This sounds reasonable enough to automate

I think yeah. I mean, at least in the beginning to get things going?
Or did you have something else in mind?

No, I was just thinking about implementation (using Google Forms?)
I think a form with fields is the easiest for people and for us to just read a csv table and generate posts on a scheduled task, like a cron job.
Should we send rendered preview to the authors to approve or just post and have them modify if there's a mistake?

google forms plus scheduled job sounds good, as well as sending the authors the rendered image

TODO:

[ ] Finalize Google Forms
[ ] Figure out script to create a post from .csv results on GoogleDrive + cron scheduling

This is mostly done on my side. I have no idea how to fix what we discussed today, so I asked on StackOverflow https://stackoverflow.com/questions/61960739/prevent-writelines-overwriting-md-files
remainder is to write the little cron job to run autoposter.R every once in a while

Added the cron job task to a new issue so we can close this one


forbid .only in playwright tests

#954  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @shakyShane and the rest of your teammates on  Graphite


confuse about vocab.py/get_control_mapping

Great project! Thanks for your contribution.
When I read through the whole project. I am confused about the get_control_mapping method on vocab.py. This method seems like to convert the vocabulary table as a list to a vocabulary mapping as a dictionary. But the parameter "symbols" is not used in this method since the vocabulary table already has ,   and . Even those symbols do not exists in vocabulary table, this method can not add those to the mapping dictionary.

@chenvega get_control_mapping method is used to convert control symbols (e.g. , , ) to numeric ids. For example, we can use params.mapping[params.eos] to find eos_id, which is useful during decoding.


Update create-upload-generic.md

Fixing note in document, removing "Blocklisting" to make note more descriptive.

@srijang
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Yatin: Watch devselz.com

Yatin requests the watch of the watch_keyword devselz\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by cigien in Charcoal HQ


[Question]: Retrieval with LlamaIndex

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
Hi. I want to read data. And answer my questions about data with retrieval architecture. I want to do this with llama-index techs.
Within the scope of this task:
--- Any model should not be used.
--- Only vector store and retrieval mechanisms should be used.
Can you give me code for this task?

@4entertainment you need a model to embed data. In any case, you could do something like
from llama_index import SimpleDirectoryReader, VectorStoreIndex, ServiceContext

documents = SimpleDirectoryReader("./data").load_data()

service_context = ServiceContext.from_defaults(llm=None, embed_model="local:BAAI/bge-base-en-v1.5")

index = VectorStoreIndex.from_documents(documents, service_context=service_context)

retriever = index.as_retriever(similarity_top_k=2)

nodes = retriever.retrieve("cats")

@logan-markewich thank you so much for your reply. Is there any way I can do this without using a model?

@4entertainment if you are using embeddings, you need a model or API to generate embeddings, there's no way around that.
You could look into using bm25 instead. But that's more of a keyword search

So what if I don't prefer to use embeddings:
Can I develop an application with a retrieval mechanism where I give my document and question with llama-index without using models? This is my task. Or what can I do regarding this task?

@4entertainment bm25 is what you want, it's not really a model and lightweight


C++ client build fails when USE_LOG4CXX is ON

Motivation
When I set USE_LOG4CXX to ON, C++ client build fails with the following error:
/tmp/apache-pulsar-2.3.2/pulsar-client-cpp/lib/ClientImpl.cc: In constructor ‘pulsar::ClientImpl::ClientImpl(const string&, const pulsar::ClientConfiguration&, bool)’:
/tmp/apache-pulsar-2.3.2/pulsar-client-cpp/lib/ClientImpl.cc:103:17: error: ‘Log4CxxLoggerFactory’ has not been declared
                 Log4CxxLoggerFactory::create(clientConfiguration_.getLogConfFilePath()));

This is because the header file Log4CxxLogger.h is not included in ClientImpl.cc.
Modifications
Fixed ClientImpl.cc to include Log4CxxLogger.h only when USE_LOG4CXX is ON.
Verifying this change

[ ] Make sure that the change passes the CI checks.

run java8 tests


Upgrade to Firebase 3

Thanks for merging @mikelehen
I've forgotten about updating the README so I'll push another PR


wrong google user

I run flutterfire configure
It automatically chooses the user

But this user doesn't have access to the Firebase project. So this config utility fails.
I actually need<EMAIL_ADDRESS>as a user. How can I choose the custom user?
I tried to login in Chrome as<EMAIL_ADDRESS>into Firebase, but configuration utility still uses<EMAIL_ADDRESS>address.

This is done by using the firebase CLI.
For your specific use case, these are the sub-commands that might be handy:

firebase login:list: logs a list of the registered authorized accounts.
firebase login:add [options] <email>: starts the auth flow to register the <email> account locally.
firebase login:use <email>: sets <email> as default account.

For more in-depth info about these sub-commands or about the Firebase CLI itself, use firebase --help.

Hello, @subzero911
This is done by using the firebase CLI.
For your specific use case, these are the sub-commands that might be handy:

firebase login:list: logs a list of the registered authorized accounts.
firebase login:add [options] <email>: starts the auth flow to register the <email> account locally.
firebase login:use <email>: sets <email> as default account.

For more in-depth info about these sub-commands or about the Firebase CLI itself, use firebase --help.

flutterfire cli also supports the --account option when running commands, e.g.  flutterfire<EMAIL_ADDRESS>configure


State wise travel guidelines

Context
As flight operations have resumed and curbs have been lifted on interstate travel, people have been traveling to their native places or are making urgent trips to other states. Every state has some set of guidelines to follow when somebody comes from a different state e.g. in Rajasthan, a 14 day home quarantine is mandatory for people coming from other states via flights.
Problem
I have observed that a lot of people are not aware of updated guidelines and procedures to follow when making such trips and there is not a single source to find the relevant information directly. It causes a lot of uncertainty and fear amongst travelers and renders them anxious about the same. Secondly, most of the search result that pops up on search engines is not always updated with the latest changes.
Solution
Showing state-wise travel guidelines in the current dashboard can provide valuable information without making people ramble on the internet on their own.

Would be very difficult to maintain given the frequent changes in these and lack of reliable sources.


Add custom Admin theme

Currently the PiLSI admin area uses the default filament light theme.  Add themes for light/dark modes to suit the PiLSI branding 😆
Or at least just make it look cool

See also:  https://filamentphp.com/docs/2.x/admin/appearance#building-themes


Merge all 'release-8.1-gc' changes into 'master'

This pull request releases the current, most reliable, version of the (8.1) garbage collector.  Additionally, it also includes a number of bug fixes and useful ancillary changes made in the process.
Among the significant garbage collector changes are the use of:

only inter-container handle references during the cdMark phase of the garbage collector to determine the subset of referenced container handles that are not reachable from outside the container mesh (commit 5f089302b3b8ccf40a046ac7bd4b3a9874741af8).
generation managed container marking and reclamation (commit  f2b62031319668ac8d82367379ab5f628062c2dd).

The bug fixes include the repair of:

a pointer alignment problem in the frontend (e408a61f12505718253074c76f9f8004caf60a27).
an incorrect test in VContainerHandle::flushCachedResources (4ebea79525be4428c3e61912674a72619c8472c4).
an orphaned CPD in rtSELUV_Set::compact (42fea953a9f76e564d011130d26c06d4e4afa9b9).
an incorrectly NDFPathName deduced OSDPathName when the NDFPathName references the current directory (9c790458e487214ca43b7c8cda2ba58880e62a86).

Among the ancillary changes are:

better identification of platform specific system resource (particularly memory) utilization policies (7b866eb67c092f3ff0cba9f83da128f56fd3e10e).
better and more comprehensive optional logging of garbage collector activity (4515e6441430141fa855bdf14f0ca3193a70332b).
better update annotation modularity and availability (846aae3172845b67d30b1bba159eb066a10f2d09).
better annotation of bootstrap updates (8d3fb57522518ab64e3a3cb2f59404a0535f4b4d).
the use of hard links in pushBinaries when creating tool aliases (e.g., onprof and _onck) (25ba45e3172e0b782baf790dcc27fbb57b5e7da9)

Closing as a duplicate of pull request #19.


V2 - plot tree, iterations and tree building example

Transfer of plot tree function
Addition of multiple iterations for transverse the tree in different orders
update of example/tree_building.ipynb to illustrate how to setup a tree.

Further updates, made, i have closed this and will push new version with it all


names: extract pid to a systemfield

requires https://github.com/inveniosoftware/invenio-records-resources/pull/308
closes #156
There are two approaches to this issue:
a) ModelPIDField, data would be stored in the DB separately. Could be used to resolve a names record. (Implemented in the first last commit of this PR) <-- IRL discussions made us choose this approach
b) ExtractedPIDField, data would not be duplicated, it would be extracted at run-time from a configurable field (identifiers). (Implemented in the 2 first commits of this PR)
Problems, with both approaches

The "identifiers" field mandatory. Either to set it to a DB column or to extract it from metadata with a systemfield, it needs to be there. (I do understand that names use recidv2 but funders would use the ror so we have this problem).
Resolution would be implemented using the ES resolver (currently at service level, need to move to the Provider, need to check how to do to keep separation of concerns).

cc @slint

@slint resolvers and systemfields can easily move to invenio-records-resources, Im not 100% sure about the provider in this case, since it is quite specific to contrib vocabularies and the identifiers field.

closing PoC, will be added in #147


Build Error 'script/bootstarp'. Ubuntu 16.04.3

When I've tried 'bootstrap' at the first time, it was  /usr/bin/env 'node': No such file or directory
So i did following step.
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 1 --slave /usr/bin/js js /usr/bin/nodejs
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install  -y nodejs
After these steps, i tried again. i got another error...
I've been looking for the solution in issues... but i couldn't find it.
garam@ubuntu:~/atom$ script/bootstrap
Node:	v6.12.0
Npm:	v3.10.10
Installing script dependencies
prebuild-install info begin Prebuild-install version 2.3.0
prebuild-install info looking for local prebuild @ prebuilds/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info looking for cached prebuild @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install http request GET https://github.com/level/leveldown/releases/download/v1.9.0/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install http 200 https://github.com/level/leveldown/releases/download/v1.9.0/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info downloading to @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz.1940-8a1ac934fd27e.tmp
prebuild-install info renaming to @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info unpacking @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info unpack resolved to /home/garam/OpenSourceDir/final_Project/atom/script/node_modules/leveldown/build/Release/leveldown.node
prebuild-install info unpack required /home/garam/OpenSourceDir/final_Project/atom/script/node_modules/leveldown/build/Release/leveldown.node successfully
prebuild-install info install Successfully installed prebuilt binary!
/home/garam/OpenSourceDir/final_Project/atom/script/node_modules/electron-mksnapshot/download-mksnapshot.js:16
if (error != null) throw error
^
Error: read ECONNRESET
at exports._errnoException (util.js:1020:11)
at TLSWrap.onread (net.js:568:26)
npm ERR! Linux 4.10.0-40-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "--loglevel=error" "install"
npm ERR! node v6.12.0
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node ./download-mksnapshot.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node ./download-mksnapshot.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the electron-mksnapshot package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./download-mksnapshot.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs electron-mksnapshot
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls electron-mksnapshot
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/garam/OpenSourceDir/final_Project/atom/script/npm-debug.log
child_process.js:495
throw err;
^
Error: Command failed: npm --loglevel=error install
prebuild-install info begin Prebuild-install version 2.3.0
prebuild-install info looking for local prebuild @ prebuilds/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info looking for cached prebuild @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install http request GET https://github.com/level/leveldown/releases/download/v1.9.0/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install http 200 https://github.com/level/leveldown/releases/download/v1.9.0/leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info downloading to @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz.1940-8a1ac934fd27e.tmp
prebuild-install info renaming to @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info unpacking @ /home/garam/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.9.0-leveldown-v1.9.0-node-v48-linux-x64.tar.gz
prebuild-install info unpack resolved to /home/garam/OpenSourceDir/final_Project/atom/script/node_modules/leveldown/build/Release/leveldown.node
prebuild-install info unpack required /home/garam/OpenSourceDir/final_Project/atom/script/node_modules/leveldown/build/Release/leveldown.node successfully
prebuild-install info install Successfully installed prebuilt binary!
/home/garam/OpenSourceDir/final_Project/atom/script/node_modules/electron-mksnapshot/download-mksnapshot.js:16
if (error != null) throw error
^
Error: read ECONNRESET
at exports._errnoException (util.js:1020:11)
at TLSWrap.onread (net.js:568:26)
npm ERR! Linux 4.10.0-40-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "--loglevel=error" "install"
npm ERR! node v6.12.0
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node ./download-mksnapshot.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node ./download-mksnapshot.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the electron-mksnapshot package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./download-mksnapshot.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs electron-mksnapshot
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls electron-mksnapshot
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/garam/OpenSourceDir/final_Project/atom/script/npm-debug.log
at checkExecSyncError (child_process.js:472:13)
at Object.execFileSync (child_process.js:492:13)
at module.exports (/home/garam/OpenSourceDir/final_Project/atom/script/lib/install-script-dependencies.js:9:16)
at Object.<anonymous> (/home/garam/OpenSourceDir/final_Project/atom/script/bootstrap:28:1)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)

ECONNRESET indicates a network error.  If you are behind a proxy, ensure that Node is setup to correctly read your proxy.  Otherwise, try again at a later time.


Show hide location row on applications that have the location automatically selected

Context
A candidate may or may not have the option to choose a school placement.
If they may not, then we shall not show them the School placement we have auto selected for them anywhwere in the CandidateInterface. However, if the Provider allows the Candidate to choose a School Placement then the School is visible.
The Provider interface requires that the location is always visible. We must only denote whether the Location was automatically chosen or explicitly chosen by the Candidate.
The Support Interface should behave like the Provider interface for the School placement.
Changes proposed in this pull request

Guidance to review

Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated added to the Azure KeyVault
[ ] Inform data insights team due to database changes
[ ] Make sure all information from the Trello card is in here
[ ] Rebased main
[ ] Cleaned commit history
[ ] Tested by running locally
[ ] Add PR link to Trello card

Closed in favour of multiple PRs based on the interface


Tile lifecycle typing

This improves the typing of the tile container model hooks and tileEnv.  I started on this because I wanted to add a new hook (which will be in a different PR).
The hook typing was very painful to figure out. I think what I ended up on was good, but getting there was really hard.
It isn't perfect because it makes all hooks optional even when we know they are defined. But here is what it helps with:

calling of hooks doesn't need to use any or any casting.
implementers of hooks now have typing and  documentation available.
searches for references of hooks in VSCode now work.

The trickiness of this was to solve the following problems:

not allowing unknown or mis-spelled hooks when tiles are implementing them
keeping the conditional calling of a hook as simple as model.hook?()
making sure the resulting instance type of at least the specific content model included the hook functions. And if possible make sure that ToolTileModel also includes these hook functions as optional.

MST's actions method requires the return value of the function to be a dictionary. So it won't allow returning something of type ITileContentModelHooks.  And if I simply cast an object of type ITileContentModelHooks to  ModelActions before returning it, this makes the return value generic, so then the type of the instance does not know about the actual hooks. Another way to look at this is that MST "classes" don't have a concept of "implements" like TS classes do.  One of the nuances of "implements" is that it doesn't actually change the type of the class it just makes sure the class has the methods in the interface.

@kswenson can you take a look at this one? The codecov/project check is wrong for some reason. If you look at the results  on codecov directly the project coverage did not decrease:
https://app.codecov.io/gh/concord-consortium/collaborative-learning/compare/1308?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr comments&utm_term=concord-consortium


adds example of a 'Chameleon ready' pipeline

Addresses https://github.com/systemslab/popper/issues/358

Hello @eltrufas! Thanks for submitting the PR.

In the file pipelines/chameleon-benchmarking/scripts/release.py, following are the PEP8 issues :

Line 38:1: W391 blank line at end of file


Plugin error in Strapi 4.4.7

Description
I'm not sure what happened, the plugin used to work with our Strapi project version 4.3.4, but it seems after updating to 4.4.7, it no longer works and throwing the below errors without much of context.

Cannot read properties of undefined... as we open the plugin page and load the collections.
Method Not Allowed as we attempt to select or update a collection type for indexing.

Environment:

OS: Windows 10
strapi-plugin-meilisearch version: 0.7.1 (updating to the latest 0.9.1 doesn't help)
Meilisearch version: docker image's latest version
Strapi version: 4.4.7

It turns out the error was due to the outdated meilisearch docker image, I needed to pull the new one for it to work again 🤷♂

Thanks for your update! It might help someone with the same issue :)

I had the same error and pulling the latest image also resolved it. But after that, i got the following error:  Error: Your database version (0.27.2) is incompatible with your current engine version (1.2.0).
To fix that, I had to remove the volume that the meilisearch container was using, as it was created using the old image.


Fix header parsing for 32bits architecture

When using a 32 bit CPU architecture if payload length is 8 bytes wide, the library crash with
thread 'tokio-runtime-worker' panicked at /cargo/git/checkouts/fastwebsockets-0824f4774dd6468b/6433d9d/src/lib.rs:680:58:
called `Result::unwrap()` on an `Err` value: TryFromSliceError(())

The reason is that usize is machine size dependent and on a 32Bit architecture, it is only 4 bytes wide.
When the lib is trying to stuff 8 bytes into the usize the convertion fails.
As https://datatracker.ietf.org/doc/html/rfc6455#page-29 it should be considered a u64 length on any architecture.
Sadly, while the patch avoid the immediate crash on 32bit arch if the payload length is 8 bytes wide, it does not solve the potential overflow if the payload length goes beyonf usize::MAX.
I tried to change the length from usize to u64, but as all Rust struct use usize and not u64 for their capacity/indexing it was not tractable.
If you prefer, I can do a checked conversion and return an error but, as there are a lot of unwraps and still some potential overflow, I was not sure if you want to bother with 32 bit CPU arch and correctness.
      match extra {
        2 => u16::from_be_bytes(head[2..4].try_into().unwrap()) as usize,
        8 => match usize::try_from(u64::from_be_bytes(head[2..10].try_into().unwrap())) {
          Ok(len) => len,
          Err(_) => return Err(WebSocketError::FrameTooLarge),
        },
        _ => unreachable!(),
      }
    } else {
      usize::from(length_code)
    };

Other part of the code tha can overflow, if length == usize::MAX
let required = 2 + extra + mask.map(|_| 4).unwrap_or(0) + length;

Thanks for the PR. I think the checked conversion sounds like a better option, maybe with a conditional compilation block:
match extra {
  // ..
  #[cfg(target_pointer_width = "32")]
  8 => match u32::try_from(u64::from_be_bytes(...)) {
    Ok(size) => size,
    Err(_) => return Err(WebSocketError::FrameTooLarge),
  }
}

I have updated the PR, let me know if it feels right to you.

Thank you :)


Player not working in Modals in React

I am using Plyr in React with MaterialUI. When i use it in normal components, it is working (not perfectly because vtt subtitles are not showing even though i validate them but this is not the important part of my problem) When i use it in modal it doesn't work. I also tried with React bootstrap and got the same result. Then I tried it with Vanilla javascript + bootstrap, it worked. React is causing the problem but couldn't figured it out why. The sample code is in the link below. It was working with plyr-react package but since it is an old copy of this project i decided not to use it.
Expected behaviour
To work in modals
Actual behaviour
Not working in modals
Steps to reproduce
I don't know.
Environment

Browser: Google Chrome
Version: 87
Operating System: Windows
Version: 10

Console errors (if any)
None
Link to where the bug is happening
Codesandbox

Try this one.
  useEffect(() => {     setTimeout(function () {       const player = new Plyr("#player");       player.source = {         type: "video",         sources: [           {             src: "bTqVqk7FSmY",             provider: "youtube"           }         ]       };     }, 100);   });

Try this one.
 useEffect(() => { setTimeout(function () { const player = new Plyr("#player"); player.source = { type: "video", sources: [ { src: "bTqVqk7FSmY", provider: "youtube" } ] }; }, 100); });
It works, thanks.


Removed need to enter password on profile page except for email

Issue #533

User now only has to enter password when changing their email address
When user changes their email a modal window opens asking them to enter their password to confirm the change (similar to @jollopre suggestion on the ticket)

updated to display the modal on form submission rather than on blur.


Crunchyroll country fix

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
I edited the regex for Crunchyroll playlist urls to include other languages like the following

https://www.crunchyroll.com/de/the-rising-of-the-shield-hero
https://www.crunchyroll.com/pt-pt/the-rising-of-the-shield-hero
https://www.crunchyroll.com/es/the-rising-of-the-shield-hero
https://www.crunchyroll.com/es-es/the-rising-of-the-shield-hero
and so on...
and added a new test case.

Apparently I misunderstood searching for pending pull requests (I only checked open issues). There is a similar one at https://github.com/ytdl-org/youtube-dl/pull/20501


How to declare an empty structure

I have an empty um structure used in a union
export const test1= koffi.struct('test2', {   data: koffi.union({     t2: test,    }) })
If used directly
koffi.struct('test',{})
the error:
is not allowed in C

I looked at the source code and it was disabled by this commit.
https://github.com/Koromix/rygel/commit/c5a14b6a813f76b358810b04a81c0593a4757240
There is an empty structure in the union defined by the dll I am using. Is there any other way to define it? Or I can fork it separately and handle it.

Empty structs are not allowed in C (although GCC accepts them). From what I can see, the various ABIs are ambiguous about 0-sized objects.
However, C++ allows empty structs but defines as 1-byte sized.
Anyway, what is the purpose of this empty struct? Can't you just skip it?

Empty structs are not allowed in C (although GCC accepts them). From what I can see, the various ABIs are ambiguous about 0-sized objects.
However, C++ allows empty structs but defines them as 1-byte sized, as if it was struct { char __dummy; } or something like that.
Anyway, what is the purpose of this empty struct? Can't you just skip it?

Thanks for the reply. I contacted the sdk provider to take care of it. I am currently studying the source code of koffi, which is very helpful to me.


[BugFix] [Connector-V2] [Source-Doris] Index: 0, Size: 0 #8210

[[BugFix] [Connector-V2] [Source-Doris] Index: 0, Size: 0 #8210](fix: source doris have error : ErrorDescription:[arrow read error] - Index: 0, Size: 0),  hope  close #8210

Purpose of this pull request

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist
Add ci label in label-scope-conf
Add e2e testcase in seatunnel-e2e
Update connector plugin_config

[ ] Update the release-note.

Hi @KAILINYmq , could you add a test case to reproduce this bug?

Hi @KAILINYmq , could you add a test case to reproduce this bug?

I can debug locally, but I don't know how to write this test case，Can you provide an example for reference？or, you can look this: #8210, The reason is that the Doris table field array format has data of [].

We have doris e2e test case. You can add some special data into test case to reproduce the bug. https://github.com/apache/seatunnel/blob/06df51bcbbb3294f40ebb5607c70bc031c5175f8/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-doris-e2e/src/test/java/org/apache/seatunnel/e2e/connector/doris/DorisIT.java#L553

@KAILINYmq hi,Please resolve the conflict


Indirect recursion

Description
Description
I want to add c++ code file for indirect recursion in types of recursion folder with proper comments and easy to understand way.
Domain
Data Structure
Type of Contribution
Addition, Enhancement
Code of Conduct

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

/assign


(PDB-2004) Alter tests to fix Travis jdk_switcher

Refer to this link for build results (access rights to CI server needed):
http://jenkins-enterprise.delivery.puppetlabs.net/job/enterprise_puppetdb_init-multijob_githubpr-stable/16/
Test PASSed.


WIP: Add Terra programming language support

I want to add Terra to linguist. But, I'm stuck at adding grammar for Terra.
Terra have the same syntax as Lua. Is another grammar required?
I would like to use existing lua grammar as terra grammar. But I don't know how to do it. Any help is appreciated.
Thanks!
Related #2820

Link to Github search result

Is this still work in progress or do you need some help?

Hi @pyk, thanks for starting this. This PR is looking in pretty good shape but there are way too many samples - would you mid reducing this to ~3-5 reasonably-sized sample files?

:flags: flagging this as stale :flags:

Replaced by #2875


Compiling SASS with Bower fails

I pulled the library via Bower and added the toolkit import as directed in the README. The compile failed with errors until I made the following changes:

_import.scss: ...normalize -> ...normalize.css
_btn.scss: @extend .dc-cf -> @extend %dc-cf
_dropdown.scss: @extend .dc-cf -> @extend %dc-cf

Please fix these changes in the base library if they are indeed bugs or advise on how to avoid these compile issues.

@cjhowald  Do you know which version and which type of sass compiler are you using?

Compass version 0.1.1 (latest)

@cjhowald Thanks. We will check compatibility issues. ASAP.


Roll Flutter Engine from 4b949d7d6065 to dbdab1a539f2 (3 revisions)

https://github.com/flutter/engine/compare/4b949d7d6065...dbdab1a539f2
2024-04-17<EMAIL_ADDRESS>Roll Dart SDK from 376f1b4040d3 to bd7627bca67b (1 revision) (flutter/engine#52191)
2024-04-17<EMAIL_ADDRESS>Roll Skia from 2b32391252f3 to 1832de338187 (1 revision) (flutter/engine#52190)
2024-04-17<EMAIL_ADDRESS>Roll Skia from f404603cc9e7 to 2b32391252f3 (1 revision) (flutter/engine#52189)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jsimmons@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


0000-add-support-for-conversion-fp16-to-fp32.patch limit to compute 6.1

In your 0000-add-support-for-conversion-fp16-to-fp32.patch you convert fp16 to fp32. Is there a way to limit this to compute 6.1 so that P100 (compute 6.0) keesp FP16?
The reason is that FP16 is twice as fast on P100.

@cduk Trust me you want this conversion, it's preventing a crash with --enable-prefix-cache

In your 0000-add-support-for-conversion-fp16-to-fp32.patch you convert fp16 to fp32. Is there a way to limit this to compute 6.1 so that P100 (compute 6.0) keesp FP16?

Is this a confirmed behavior? Do you have a crash with the original triton? There is an attempt to autocast the dot results in FP32 on P40, but I'm not sure if this autocast happens on P100 since it has good F16 performance.


fix(v-model): fix v-model not generate ref assignment code for setup-reactive-const bindings

fix #7429

This is not a fix for a bug, see comment in the linked issue.


Wrong patch format in find.b445af98(find13)-OTcyZjg1Mz's patch

I got the following when trying to apply the patches:
Cannot apply OTcyZjg1Mz's patch to find.b445af98 (find13).
It seems that the patch file has a broken header.

Correct. The header is broken. Can you fix it and submit a pull request?
The header should look something like this
diff --git a/find/pred.c b/find/pred.c
index 27db863..eea102d 100644
--- a/find/pred.c
+++ b/find/pred.c
@@ -1723,7 +1723,11 @@ pred_type (const char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)

Thanks @Ultimanecat!


The short survey to improve Tania

Hi, GitHub community,
We are constantly improving Tania, the farm management software. We would like to hear from you the software developer and the farmer (some software developers are farmers too.) We invite you to participate in this short survey to help us create the best software to help farmers manage their farm business better. https://forms.gle/ShDVZm9FijMiM5KMA
Thank you,
Tanibox team

to further answer the platform question in the survey, i think it should be for all platforms) using electron

Hi @prasmalla,
I don't have any experience with Golang and Electron. What I only know is we can write a desktop app with Electron in JS. Absolutely, Vue.js can be wrapped into an Electron app, but what about the Golang server?


async chunked sequences can produce empty chunks

async chunked sequences can produce empty chunks if signals are received before primary chunk elements.
This commit also includes an accompanying evolution proposal.

This should resolve https://github.com/apple/swift-async-algorithms/issues/247

Forums post on this https://forums.swift.org/t/swift-async-algorithms-proposal-produce-empty-chunks/72575


Assembly Dependencies Organization

Hi,
is there any way to make it easier to organize the needed dependencies. Maybe a nuGet Package with all current dll files. It would safe time because you have to check each depedency about the correct version now.
Greets,
TimBo

For the needed AForge Assemblys current Nuget packages can be used:

AForge
AForge.Video
AForge.Video.DirectShow


How to add a new section in airline?

Ex: g:airline_section_d
I want to add new infomation on statusline with airline(, and refresh it every minutes)
Can give me a detail example about add new section?

not easily possible. Why do you need a new section?


Changelog filter

Resolve: https://github.com/Azure/azure-sdk-for-go/issues/19539

Could we also add a test case for the new enum value accumulation?

updated TestEnumFilter test


Element._update_state() does more stuff than it needs to when it's called

See original issue on GitLab
In GitLab by [Gitlab user @jonathanmaw] on Feb 11, 2019, 14:16
Summary
Element._update_state() is a very long function that does a lot of work and is called frequently, often for very different reasons.
The full list of reasons are:

Pipeline.resolve_elements(), so that we know the initial state of the elements.
Stream._run(), so that we know the state of the elements after a run (to provide a useful summary)
{Build,Fetch,Pull}Queue.status(), in case changes to dependencies have changed the element's state. Used by Queue.harvest_jobs() to be sure whether the job should still be run.
FetchQueue.done(), to check whether the element is now cached
Element._schedule_tracking(), to set the element state to be inconsistent
Element._tracking_done(), to set the cache key now the element has been tracked.
Element._set_required(), to schedule assembly if certain conditions are met.
Element._schedule_assemble(), to synchronise the element state before it gets used in a subprocess.
Element._assemble_done(), to synchronise the element state after the subprocess has done jobs.
Element._pull_done(), to synchronise the element state after a pull attempt.

i.e. the purposes are broadly:

Calculating the initial state
Scheduling assembly
Deciding whether a job should be run
Deciding whether the whole dependency tree should be recalculated
Synchronising the state because of things that have happened / will happen in a subprocess

Possible fixes
Given a lot of work is done in Element._update_state(), there is likely to be a performance improvement if we can reduce the amount of redundant work that is done each time we call Element._update_state().
Other relevant information

BuildStream version affected: /milestone %BuildStream_v1.x

In GitLab by [Gitlab user @jonathanmaw] on Feb 11, 2019, 15:08
This issue is related to !1070. !1070 will reduce the amount of places that we use Element._update_state(), and so any work on this issue will be affected.

In GitLab by [Gitlab user @jonathanmaw] on Mar 1, 2019, 17:28
Looking at the specific behaviour inside _update_state, a fairly expensive and also quite complex part is https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L1185, where the build is not strict, it's possible that there are still uncached, workspaced elements that need to have assembly scheduled.
I have not yet fathomed the specific circumstances that require this code to be here.

In GitLab by [Gitlab user @jonathanmaw] on Mar 1, 2019, 17:49
It seems https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L1214 is an unnecessarily-complex comparison - it can only be true if context.get_strict(), or if the strict cache key and weak cache key are identical. The latter condition is basically impossible because the weak cache key is generated based off the direct build dependencies' names, while the strict cache key is generated based off all build dependencies' strict cache keys.
i.e. just change that conditional to if not context.get_strict()

In GitLab by [Gitlab user @jonathanmaw] on Mar 1, 2019, 17:49
Also, https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L1249 does nothing.

In GitLab by [Gitlab user @jonathanmaw] on Mar 1, 2019, 18:11
A breakdown of the individual behaviour inside _update_state is:

Always calls __update_source_state()

Always calls each source's _update_state

Will call source.get_consistency() until the source is cached.

Skips when inconsistent consistency (for example, workspaced pre-assembly)
Sets all caching state to blank if workspace and not yet assembled.
Calculates the weak cache key (involves iterating over dependencies)

possible to fail to calculate the weak cache key at this point.
sets whether the weak key was cached.

Decides whether to schedule assembly for a non-strict build

if it's none of:

in strict mode
scheduled for assembly
finished assembling
found a successful cached build with the weak key
going to be pulled

and is either

assembly is required
there is a workspace

Schedule assembly and return.
I would like to figure out if there's a more efficient place to put this logic.

Calculates the strict cache key if not already set
Determine whether the element is cached using the strong and weak cache keys.
Decide whether to schedule assembly (implicitly for a strict build)

Similar to the non-strict version, is there a better place to put this?

Sets the cache key based on whether it's in strict mode, reading the strong key from a weakly-cached artifact, or calculate it directly.

_schedule_assembly() includes a call to _update_state(), so it will reset the state based on that, afterwards.

In GitLab by [Gitlab user @tristanvb] on Mar 1, 2019, 19:57

Also, https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L1249 does nothing.

That is not entirely true, it is only true technically.
If you look at the flow of the code for the calculation/resolution of each key, the style goes:
if self.__this_cache_key is None:

    # Do stuff here, try to resolve the key

    # Early return, don't continue with _update_state() if we couldnt
    # resolve this key
    if self.__this_cache_key is None:
        return

I've had the knee jerk reaction to factor out some lines of deadcode and [Gitlab user @juergbi] pointed out that those lines were there mostly to keep the code consistent inside _update_state().
I wouldnt consider removing this line without restructuring/refactoring the function entirely.

In GitLab by [Gitlab user @tristanvb] on Mar 1, 2019, 20:06

A breakdown of the individual behaviour inside _update_state is:

Very interesting breakdown, I would add to this (also related to the above comment about early returns), that this function has a lot of early returns and is structured this way intentionally.
Your breakdown does not seem to reflect this behavior so just pointing it out.
E.g. where you say "possible to fail to calculate the weak cache key at this point.", it is quite significant that everything following this point will not happen if the weak cache key was not calculated.

In GitLab by [Gitlab user @LaurenceUrhegyi] on Mar 4, 2019, 15:19
marked this issue as related to #911

In GitLab by [Gitlab user @jonathanmaw] on Mar 11, 2019, 16:58
I think the call to Element._update_state() in Element._schedule_tracking() is redundant.

Element._schedule_tracking() sets Element.__tracking_scheduled to True and then calls Element._update_state().
The first thing that happens in Element._update_state() is Element.__update_source_state(), which returns early because Element.__tracking_scheduled is True.
The second thing that happens in Element._update_state() is an early return if Element._get_consistency() equals Consistency.INCONSISTENT.
The consistency is set to Consistency.INCONSISTENT at the element's creation, and will remain there until tracked.

In GitLab by [Gitlab user @jonathanmaw] on Mar 13, 2019, 17:52
The call to Element._update_state() in Loader._get_loader() is only needed for finding out the cache key - Checks for whether to assemble could be safely skipped.

In GitLab by [Gitlab user @jonathanmaw] on Mar 21, 2019, 11:05
mentioned in merge request !1251

In GitLab by [Gitlab user @jonathanmaw] on Mar 22, 2019, 17:50
After some reflection, my view of the use of _update_state (post !1070 merge) is:

via Loader._get_loader():

cache key is generated so we have a unique key that changes if the junction element changes.
we only actually need to have the weak cache key to do this job, since dependencies are irrelevant.

via Stream._load():

Element._schedule_tracking() is called on every element that's selected for tracking.

This (among other things) calls _update_state(), which does not appear to do anything at this point.

Pipeline.resolve_elements() calls _update_state() on every element in the pipeline.

Still won't do anything for elements that have been scheduled for tracking
Will set the Consistency, calculate the weak cache key, calculate the strict cache key if possible, and will set the cache key if buildstream is running in strict mode or the element is already cached.
USED FOR:

Resolving the entire pipeline's state in simple use-cases? (i.e. non-workspaced build-all or show commands)
Being able to report a cache key in the pipeline summary?

via Element._set_required():

Normal bst build invocations only call this for the specified targets, but a 'build-all' invocation or some other pipeline selection will call it for every element.
Since Pipeline.resolve_elements() is already called on every element, the only purpose this holds is to use the logic on deciding to schedule assembly.

via Element._schedule_assemble():

A workspaced element has its cache keys wiped if it's scheduled for assembly.
The element will have a cache key generated unless it's waiting to be pulled or already has a cache key.
Any logic to decide whether to schedule assembly is redundant.

via Element._tracking_done():

Cache key generation was previously blocked, so this is the first time the element will get to calculate cache keys.
If an element was _set_required(), it can now schedule assembly.
i.e. it can use every part of _update_state() except for the workspace logic.

via Element._assemble_done():

workspaced elements that weren't previously cached can now have a cache key.
Elements that depended on an uncached workspaced element can now generate their cache keys

Elements with BST_STRICT_REBUILD can now generate weak cache keys.
Elements that discover they're cached now they have a weak cache key can load the strong cache key.
Elements that were _set_required() can now schedule assembly.

Doesn't need to update the source state.

via Element._fetch_done():

Fetching changes the element's source state, going from RESOLVED to CACHED.
I don't think this affects any other part of the element state or scheduling.

via Element._pull_done():

Elements are now cached. If the pulled element was not a success, we will schedule assembly.
Now it's cached, we can get the final cache key
The source state will already be known at this point, so we can skip updating the source state.

Action points:

Loader._get_loader should only calculate the weak cache key, as that's all it needs, and will always succeed at that point.
Element._schedule_tracking() shouldn't need to call _update_state() at all.
When we're not using a dynamic plan, we can skip calling _update_state in Pipeline.resolve_elements()
I think we can get away with not updating the source state via Element._assemble_done(), Element._pull_done() and Element._schedule_assemble()
I'm not certain, but I think via Element._set_required() we might only need to check whether to schedule assembly.

In GitLab by [Gitlab user @jonathanmaw] on Mar 25, 2019, 17:38
I had another look at this from the perspective of what element state is known to be when _update_state is called, and what state will change during its invocation.

via Loader._get_loader()

nothing is set yet, only one thing we want to do, which is calculate the weak cache key.
We have already ruled out workspaced, uncached, and sources with invalid refs.

via Element._schedule_tracking() via Stream._load()

Nothing is set yet and nothing can be set yet (due to the source consistency being INCONSISTENT).
Except for junction elements in current behaviour - they have state set but will still return early.

via Pipeline.resolve_elements() via Stream._load()

Nothing is set yet (except for junction caveat).
Afterwards, all cache keys may be set, but it may not schedule assembly at this time.

via Element._set_required() via Stream._load()

All cache keys may be set at this point

weak cache key will be set unless it's an element with BST_STRICT_REBUILD and its dependency doesn't have a ref.
strict cache key will be set unless the element has dependencies without refs.
strong cache key will be set if the build is in strict mode, or there's no pull pending (i.e. is workspaced, not cached, or there are no artifact servers configured to pull from) and it's cached (can't be scheduled for assembly yet).

By the time this returns, workspaced elements will be scheduled for assembly and had their cache keys wiped.
By the time this returns, all of this element's build-dependencies will also be _set_required()

via Element._schedule_assemble() via Element._update_state()

All this element's build-depends will have had this called on them first.
If it wasn't workspaced, cached or had a fetch remote, and its dependencies all have cache keys (i.e. has a ref, and isn't both workspaced and not cached), it now has a strong cache key.
Workspaced elements that previously had cache keys no longer do.

via Element._tracking_done()

Performs all the cache key generation that was previously blocked from previous calls of Element._update_state().
Will also schedule assembly if it's not cached or can't be pulled (hence scheduling assembly for all uncached dependencies and wiping the cache keys of workspaced dependencies)

via Element._assemble_done()

Every element that this is called on is now cached.
Every element that this is called on will have successful, cached dependencies.
Elements that were workspaced can now calculate their cache keys as __assemble_scheduled is False again.
As they are cached, they will not schedule assembly again.

via Element.fetch_done()

Consistency was RESOLVED, becomes CACHED.
No other change of state because no later logic in _update_state() relies on the consistency going from RESOLVED to CACHED.

via Element._pull_done()

The consistency is not INCONSISTENT, as this is required to get a key to pull with.
The weak cache key is set, as it is required to pull from the cache.
Assembly will not be scheduled, even if the pulled artifact was of a build failure.
If a strict cache key could not be generated before, it can't be generated now (strict cache keys fail to be generated if they build-depend on workspaced elements that haven't been built yet, and pulling does not change that)
If a strict cache key could be generated before, it can now set the cache key, reading it from the pulled element.

Discussion points:

If I understand correctly that in _assemble_done(), the artifact is cached, then the check against __assemble_done when calculating the strong cache key is redundant.

In GitLab by [Gitlab user @juergbi] on Mar 26, 2019, 15:22

via Loader._get_loader()

nothing is set yet, only one thing we want to do, which is calculate the weak cache key.

The loader uses the strong cache key of the junction, not the weak cache key. As junctions can't have dependencies, there is no difference, though.

If I understand correctly that in _assemble_done(), the artifact is cached, then the check against __assemble_done when calculating the strong cache key is redundant.

Yes, this might indeed be redundant.

In GitLab by [Gitlab user @jonathanmaw] on Mar 29, 2019, 15:58
Looking at every call site of _update_state and looking at what needs to actually be done, I've been able to reduce it to the following actions:

via Loader._get_loader():

[ ] Only calculate the weak cache key

via Element._schedule_tracking():

[ ] Remove call to _update_state()

via Pipeline.resolve_elements():

[ ] Don't attempt to schedule assembly

via Element._set_required():

Conceivably all of _update_state could happen. Nothing to split out.

via Element._schedule_assemble():

[ ] Only needs to wipe workspaced elements and calculate cache keys/cached state.

via Element._tracking_done():

Conceivably all of _update_state could happen. Nothing to split out.

via Element._assemble_done():

[ ] Cache key calculation (even weak keys, because workspaced elements and BST_STRICT_REBUILD)
[ ] Scheduling assembly when in strict mode

via Element._fetch_done():

[ ] Only update source state

via Element._pull_done():

[ ] Strict and strong cache key calculation only (everything else has already been done)

In GitLab by [Gitlab user @BenjaminSchubert] on Mar 29, 2019, 16:49

via Element._set_required():

Conceivably all of _update_state could happen. Nothing to split out.

I don't think we need to compute the weak cache key, nor the strong one here right?

via Element._tracking_done():

Conceivably all of _update_state could happen. Nothing to split out.

The weak cache key wouldn't change here too correct?

In GitLab by [Gitlab user @jonathanmaw] on Mar 29, 2019, 18:16
For Element._set_required(), you're correct that we don't need to calculate the weak or strong cache keys - Any key calculation that was possible at this point would have already happened as a result of Pipeline.resolve_elements().
For Element._tracking_done(), I don't think it's correct to say that the weak cache key wouldn't change - if Element._schedule_tracking() is called on the element before it's ever had the weak cache key set, then Element._tracking_done() will be the first opportunity it has to calculate the weak cache key.
Weak cache keys will be set for junction elements at that point, but only for them.

In GitLab by [Gitlab user @jonathanmaw] on Apr 4, 2019, 17:21
Following a reply from Tristan on this subject (https://mail.gnome.org/archives/buildstream-list/2019-April/msg00003.html), priorities that need to be addressed are:

Identify the difference between Element._set_required() and Element._schedule_assemble()
Move Element._set_required() and Element._schedule_assemble() out of cache key generation logic.
Investigate whether this requires cache key generation logic to be split apart
Delegate as many decisions as possible about how cache keys are generated to element loading time

i.e. create a CacheKey abstract class, with implementations for the different cases

In GitLab by [Gitlab user @jonathanmaw] on Apr 4, 2019, 18:23
Looking at how we use the weak, strict, and strong cache keys, there are some distinct code paths, and in certain circumstances we don't need to use certain keys:
non-strict:

When an element is cached locally, we use the weak cache key to find the artifact in the cache, and load the strong cache key from there.
When an element is cached remotely, it will be sought by the strict cache key, then the weak cache key.

If it's found by the strict cache key, it will link the weak cache key to the pulled strict cache key.
If it's found by the weak cache key, it will link the strong cache key to the pulled weak cache key.

When an element is not cached, its strong and weak cache keys are written into the artifact, which is keyed to the weak and strict cache keys.

non-strict-workspaced:

Identical treatment to above when cached locally.
Workspaced elements are never looked-up in a remote cache.
A workspaced element that is not cached is still written into the local artifact cache, but is never pushed to the remote cache.
A workspaced element needs its cache key to know whether it's cached, but should report that it has no cache key for the purpose of reverse-dependencies' cache keys.

strict:

When an element is cached locally, we use the strict cache key to find the artifact in the cache. The strong cache key is identical to the strict cache key.
When an element is cached remotely, it will be sought by the strict cache key only. If found, it will still link the weak cache key to the pulled artifact.
When an element is not cached, its strong and weak cache keys are written into the artifact, which is keyed to the weak and strict cache keys.

strict-workspaced:

Identical to non-strict-workspaced except that it looks for a cached artifact using the strict key instead.

i.e. we can know in advance whether to use the strict or non-strict and workspaced or non-workspaced code paths, but:

non-strict won't know whether it needs its strict key until it knows whether to pull (not locally cached; needs to look up by strict then weak key) or assemble (not cached or pullable; needs to write strong and weak keys into the artifact)
strict won't know whether it needs its weak key until it knows whether to pull or assemble.

Calculating the cache keys on-demand might save some time, if we can also predict when it's guaranteed to fail.

In GitLab by [Gitlab user @jonathanmaw] on Apr 5, 2019, 17:26
Addendum: The above is not entirely correct. We also know whether an element has BST_STRICT_REBUILD, though I haven't quite worked out whether that can be generalised to a strict code path, or whether it's distinct, and/or whether workspacing affects it.

In GitLab by [Gitlab user @juergbi] on Apr 11, 2019, 10:16

non-strict:

When an element is cached locally, we use the weak cache key to find the artifact in the cache, and load the strong cache key from there.

We can't completely separate the cases 'cached locally' and 'cached remotely' in the non-strict case. If it's cached locally with the weak key (and not with the strict key), BuildStream will still attempt to pull the artifact from a remote cache using the strict key.

When an element is not cached, its strong and weak cache keys are written into the artifact, which is keyed to the weak and strict cache keys.

The 'strict' at the end of the sentence should also be 'strong' instead. I would also clarify the start of the sentence that we're talking about an element that is being built.

non-strict-workspaced:

A workspaced element needs its cache key to know whether it's cached, but should report that it has no cache key for the purpose of reverse-dependencies' cache keys.

Elaborating here to clarify this. If it's already cached, the cache key will be used by reverse dependencies. If it's not cached yet and thus gets built, a new cache key will be calculated after the build (taking updated intermediate/output files into account) and that cache key will then be used by reverse dependencies.

non-strict won't know whether it needs its strict key until it knows whether to pull (not locally cached; needs to look up by strict then weak key) or assemble (not cached or pullable; needs to write strong and weak keys into the artifact)

As per my first paragraph, we still attempt to pull by strict key if it's locally cached only using the weak key.

strict won't know whether it needs its weak key until it knows whether to pull or assemble.

The input for the weak key is a subset of the input for the strict key. If we can generate the strict key, we can always generate the weak key as well, and it's fairly cheap. I don't think it really matters from a performance point of view whether we always calculate the weak key in strict mode. Whatever is best for readability/maintainability should win here, in my opinion.
Skipping the artifact cache lookup for the weak key when in strict mode could make sense, though.

In GitLab by [Gitlab user @jonathanmaw] on Apr 17, 2019, 18:04
mentioned in merge request !1299

In GitLab by [Gitlab user @jonathanmaw] on Apr 24, 2019, 12:22
mentioned in merge request !1312

In GitLab by [Gitlab user @jonathanmaw] on May 1, 2019, 17:24
mentioned in merge request !1323

In GitLab by [Gitlab user @jonathanmaw] on May 13, 2019, 15:52
mentioned in merge request !1342

In GitLab by [Gitlab user @tlater] on Oct 17, 2019, 12:58
assigned to [Gitlab user @tlater]

In GitLab by [Gitlab user @traveltissues] on Oct 17, 2019, 13:08
I think this can be closed if _update_state is going to be removed soon

In GitLab by [Gitlab user @tlater] on Oct 18, 2019, 11:37
[Gitlab user @traveltissues] I think this issue is a duplicate of #1054 (or rather, the other way around). The discussion here scopes out what/why we want to do about _update_state(), whereas the other issue tracks the actual work being done.
I'd like to keep this one open mostly because it gives a lot of the relevant context, and the other because it documents what has been done - let's keep the two around until we've removed _update_state().

In GitLab by [Gitlab user @tlater] on Nov 20, 2019, 13:19
#1212 holds the remaining work for this issue, post all the other changes.

In GitLab by [Gitlab user @tlater] on Nov 20, 2019, 13:19
closed


Fix primary name construction

with the introduction of Documentable::Utils::Text:textify-pod()
a variant of Pod::Utilities::textify-guts()

see https://github.com/antoniogamiz/Pod-Utilities/pull/9/files#diff-0ff387c7e4dec76c01cb77aa4d338ee1R5

as an example, while processing perl6/doc this prevent the generation
of the document '/routine/(<) , infix ⊂' document in favor of
'/routine/(<), infix ⊂'

Also a version bump of Documentable might be worth considering.

I'm sorry, what's the difference between
/routine/(<) , infix ⊂
and
/routine/(<), infix ⊂
?

There is an extra space before the comma.
See for example, as of now https://docs.perl6.org/routine/(<) , infix  ⊂ and https://docs.perl6.org/routine/(<), infix ⊂ And more, both these URL are linked from https://docs.perl6.org/routine.html

Sure I can add some tests. The thing is the existing tests in both Pod-Utilities repository and Documentable repository had me wondering for a while on this "issue" ;-).

There is an extra space before the comma.
See for example, as of now https://docs.perl6.org/routine/(<) , infix  ⊂ and https://docs.perl6.org/routine/(<), infix ⊂ And more, both these URL are linked from https://docs.perl6.org/routine.html

Ah, OK. It does not show in markdown. I'd definitely want a test for that...

@JJ I have added some tests.


Ggp Client Integration

Hey everyone,
this is a rather large PR that integrates the ggp command line into orbit. It is loosely based on an older PR by beckerhe (https://github.com/google/orbit/pull/109) but has been changed to have a start up dialog that is displayed when the user starts Orbit without the gamelet: argument.
This PR includes a Expected class to handle function failures. If there is interest this class could be exchanged with a third party library, for example this one: https://github.com/ned14/outcome

The windows build currently fails because of a bug that will be fixed with #383.
Besides that I incorporated the suggested changes, so ptal again.

@beckerhe Thanks for taking the time and criticising the little things. I learn a lot about best practices and it is really appreciated.
Will merge as soon as the CI checks are done


Table.summary raises an error if one column contains only null values

Describe the bug
If a column of a table contains only null values, the method Table.summary raises an IndexError because the stability of a column with only null values is not defined (#319).
To Reproduce
from safeds.data.tabular.containers import Table

table = Table({"Column1": [None, 2], "Column2": [None, None]})

print(table.summary())

Expected behavior
The stability of a column with only null values should just be skipped and displayed in the returned table as a minus: -
Screenshots (optional)
No response
Additional Context (optional)
Related to #319

:tada: This issue has been resolved in version 0.14.0 :tada:
The release is available on:

v0.14.0
GitHub release

Your semantic-release bot :package::rocket:


Make dummy rendering server appear as a high end platform to fix vulkan shader compile error when exporting

Fixes https://github.com/godotengine/godot/issues/88187 as https://github.com/godotengine/godot/issues/88187#issuecomment-1937400961 suggested, tested locally it eliminates the shader compilation error reported.

Thanks!

Cherry-picked for 4.2.2.


[NO QA]: Workspace feed fix bank clean up in others

Explanation of Change
We need to clean up custom bank name - when user switch from different card types
Fixed Issues
$ https://github.com/Expensify/App/issues/51860
PROPOSAL:
Tests

Open the app
Log in with an expensify account that's an admin of a workspace with "Company Cards" enabled
Navigate to Workspace settings - Company cards
Navigate to Add company cards - Other - Mastercard Commercial Cards - Next
Enter any text for the "Name of bank"
Tap on the "Next" button
Navigate back to the screen where "Mastercard Commercial Cards" and "Visa Commercial Cards" are visible
Tap on "Visa Commercial Cards" - Next - Next
Verify that bank name field is empty

[x] Verify that no errors appear in the JS console

Offline tests
No changes
QA Steps

Open the app
Log in with an expensify account that's an admin of a workspace with "Company Cards" enabled
Navigate to Workspace settings - Company cards
Navigate to Add company cards - Other - Mastercard Commercial Cards - Next
Enter any text for the "Name of bank"
Tap on the "Next" button
Navigate back to the screen where "Mastercard Commercial Cards" and "Visa Commercial Cards" are visible
Tap on "Visa Commercial Cards" - Next - Next
Verify that bank name field is empty

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/e3ad520e-5312-4d25-b049-056219d0f127

Android: mWeb Chrome
https://github.com/user-attachments/assets/a6f8cef2-d109-4311-bc85-ab6b4dff66c3

iOS: Native
https://github.com/user-attachments/assets/ebd230b2-9a0d-4051-9736-adb39439c704

iOS: mWeb Safari
https://github.com/user-attachments/assets/c2f1e679-8346-47fd-8bcb-17062c07040f

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/e3d9469f-b1b0-411e-bd89-89d0e1ac47f1

MacOS: Desktop
https://github.com/user-attachments/assets/6ed0bdfa-b98d-4843-9248-9ddc82fc218c

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Add Plexon interfaces

This PR adds the PlexonRecordingInterface and PlexonSortingInterface, both of which were successful on the test data.

@garrettmflynn Conflict here

Recording looks good using File_plexon_3.plx
Sorting looks good using File_plexon_2.plx


update help output. fixes #44

Description

Update the examples in index.js

Related Issue
#44
Motivation and Context
Examples should be up to date
How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #45 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master     #45   +/-   ##
======================================
  Coverage    90.2%   90.2%
======================================
  Files          20      20
  Lines         684     684
  Branches       94      94
======================================
  Hits          617     617
  Misses         61      61
  Partials        6       6

Impacted Files
Coverage Δ

src/commands/cloudmanager/index.js
85.71% <ø> (ø)
:arrow_up:

...ommands/cloudmanager/get-execution-step-details.js
97.36% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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