[UPGRADE] Minimum metadata format version for opensearch-keystore.

Describe the bug
The opensearch-keystore tool is currently failing to load and update older versions of keystores created using the elasticsearch-keystore tool.
This results in couple of failing tests for bwc and upgrade of the older versions of keystore files.
 - org.opensearch.common.settings.UpgradeKeyStoreCommandTests.testKeystoreUpgrade
 - org.opensearch.common.settings.KeyStoreWrapperTests.testLegacyV3

To Reproduce
Run ./gradlew :distribution:tools:keystore-cli:check
Expected behavior
No test failures.
Additional context
Should we set the minimum supported version for opensearch-keystore to the current version (4) and remove the tests?

Fixed by #796


Broken setup on Wercker CI/CD server

While trying to create a CI/CD box on Wercker http://old-devcenter.wercker.com/articles/boxes/bash.html, I couldn't start using cca. The problem is that the analytics is read only from a file...
https://github.com/MobileChromeApps/mobile-chrome-apps/blob/8821dcb47ccc0188c8dc6301aa88544da6b44f9f/src/analytics-loader.js#L63
Could you create a switch to automatically accept for CI/CD environments?
I got it installed:
<EMAIL_ADDRESS>/usr/lib/node_modules/cca
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
After the creation of the box, I try to print the version of cca and it requests the confirmation of the analytics question, which breaks the build.

Is there an optional way to setup cca without the analytics question? Or should I manipulate the file before running it the first time?
thanks!

Hi there,
The quickest way would be to update (or create) the config file at ~/.cca/config, adding the following:
{
    "analytics": {
        "isAllowed": false,
    }
}

That should do it.
Alternatively, you could update the file you linked to return Q(false); on line 59 in the file you linked, analytics-loader.js.
I think either should work.  Let us know if you're still running into problems.  Thanks!

You can also run cca analytics disable as the first command after installing cca. This will create the ~/.cca/config file Max mentioned.

@kamrik that's exactly what I was looking for!

Hah, good call. Forgot about that.
On Mar 30, 2015 6:18 PM, "Mark Koudritsky"<EMAIL_ADDRESS>wrote:

You can also run cca analytics disable as the first command after
installing cca. This will create the ~/.cca/config file Max mentioned.
—
Reply to this email directly or view it on GitHub
https://github.com/MobileChromeApps/mobile-chrome-apps/issues/537#issuecomment-87856259
.

Perfect... The wercker build is showing the following:
$ cca analytics disable
Usage statistics collection disabled.
$ cca --version
0.6.0

I still cannot build a box in Wercker though :( It's a shared attempt to help people build and deploy CCA apps. The Ubuntu 12.04 server I'm trying to use gets more than the limit of 1500MB  https://app.wercker.com/#applications/551b2cbbbb95a8811902f250
Versions
$
$ node --version
v0.10.37
$ npm --version
1.4.28
$ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
$ grunt --version
grunt-cli v0.1.13
$ bower --version
1.4.0
$ cca analytics disable
Usage statistics collection disabled.
$ cca --version
0.6.0
$

One option I would try is to go without building your own box, use the stock Android box they provide and have you app list cca as one of its' npm deps.
I experimented with Gulp based workflow for cca apps where cca is an npm dependency of the app here: https://github.com/kamrik/GulpCCA
This is somewhat half baked, though.


Fix continuance tests

Fix errors on tests that aren't first-run.
Resolves #18021

Is it better to prepare a clean environment every-time than cleaning up?
If we try to clean the modified test data, there may be still a chance that the test data can not be recovered (eg: panic), and in future more and more tests would have to do such cleaning up (and some developers may forget to do it).

Is it better to prepare a clean environment every-time than cleaning up?

We can run the clean command beforehand, but I personally don't have a good feeling by doing that - I don't have any objections either.


Add Mark Schlachter (@the-wondersmith) as a maintainer

Mark Schlachter is another long-time OG Emissary user who's recently been tackling dev/v4's CI pipeline, Python dependency handling, and beginning the journey into the recesses of KAT where angels fear to tread. I'm nominating him as an Emissary maintainer (though fair warning, he might encourage rewrites in Rust... 🙂).
Maintainers, once again please vote with a 👍 or 👎 on this comment. We'll do a lazy one-week consensus (unless we have enough votes to short-circuit).
Signed-off-by: Flynn<EMAIL_ADDRESS>

We have four yays, no nays, and two PR approvals, gonna go ahead and land this one. Welcome @the-wondersmith! 🙂


PE Score - Implement CVE/CVSS Feature

💡 Summary
Integrate the CVSS scores of verified & unverified CVEs into the PE score.
Motivation and context
Measuring the number of verified/unverified CVEs is good, however, it would be better if we also factored in how severe each CVE is too. For example, 10 low level CVEs is not the same as 10 critical level CVEs.
Implementation notes

For each organization, get its full list of verified and unverified CVEs
For each of those CVEs, get the corresponding CVSS score and severity
Aggregate that data into counts of: Total verif/unverif CVEs, number of low/med/high/crit, and max CVSS
Use those aggregated counts to factor into the overall PE score

Acceptance criteria

[X] Cache of all known CVEs and their CVSS scores has been retrieved via API and stored in a database table
[X]  Use list of CVEs and CVE table to get aggregate CVE data for each org
[X] Factor CVE/CVSS data into the PE score (using weights, etc.)

Finished developing CVE/CVSS feature for PE score, awaiting integration into staging - see issue #387


Fix setDarkness() and getDarkness() functions

get/setDarkness functions currently will get/set bloom strength instead, change code to:
`function helpers.setDarkness(amount)
engine.Scene.Lighting.Alpha = amount
end
function helpers.getDarkness()
return engine.Scene.Lighting.Alpha
end`

Implemented now and released in 0.2.13, thanks for the report.


OSError Too many open files: /tmp/tmphv67gzd0wandb-media

I have been using yolov5's wandb and it is giving me this error
File "/opt/conda/lib/python3.8/shutil.py", line 712, in rmtree
OSError: [Errno 24] Too many open files: '/tmp/tmphv67gzd0wandb-media'
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/weakref.py", line 642, in _exitfunc
  File "/opt/conda/lib/python3.8/weakref.py", line 566, in __call__
  File "/opt/conda/lib/python3.8/tempfile.py", line 817, in _cleanup
  File "/opt/conda/lib/python3.8/tempfile.py", line 813, in _rmtree
  File "/opt/conda/lib/python3.8/shutil.py", line 714, in rmtree
  File "/opt/conda/lib/python3.8/shutil.py", line 712, in rmtree
OSError: [Errno 24] Too many open files: '/tmp/tmphv67gzd0wandb-media'
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/weakref.py", line 642, in _exitfunc
  File "/opt/conda/lib/python3.8/weakref.py", line 566, in __call__
  File "/opt/conda/lib/python3.8/tempfile.py", line 817, in _cleanup
  File "/opt/conda/lib/python3.8/tempfile.py", line 813, in _rmtree
  File "/opt/conda/lib/python3.8/shutil.py", line 714, in rmtree
  File "/opt/conda/lib/python3.8/shutil.py", line 712, in rmtree
OSError: [Errno 24] Too many open files: '/tmp/tmphv67gzd0wandb-media'

when doing Genetic Algorithm for hyperparameter evolution. Any idea on why wandb is doing this?

I got OSError Too many open files too. I run wandb in optuna subprocess.
def optuna_objective(trial):
    wandb.init()
    ...
    ...
    wandb.finish()
    return loss

Error Traceback
Traceback (most recent call last):
  File "/anaconda3/envs/tf2.6/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 870, in init
  File "/anaconda3/envs/tf2.6/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 600, in init
  File "/anaconda3/envs/tf2.6/lib/python3.8/site-packages/wandb/sdk/wandb_run.py", line 1738, in _on_start
  File "/anaconda3/envs/tf2.6/lib/python3.8/site-packages/wandb/sdk/wandb_run.py", line 1707, in _console_start
OSError: [Errno 24] Too many open files: '/workspace/wandb/offline-run-20211026_081159-2i9isn2w/files/output.log'

Enviroment
macOS Catalina 10.15.7
Python 3.8.12
wandb 0.12.5

I fixed the problem temporarily set ulimit -n 2048 every time before python run.

I have the same problem at this moment. I'm running hpo on a SLURM cluster and do not have permission to change these mentioned values. Are there any other options to resolving this issue?

@maxzw, thank-you for writing in. This bug is still being addressed. We will update the community here once a fix has been implemented.
Regards

Any updates on this?

Any updates?
We are also experiencing it

So, actually my problem was related to multiprocessing, which could be fixed by setting ulimit -n unlimited (or any high number) together with
torch.multiprocessing.set_sharing_strategy('file_system')
torch.multiprocessing.set_start_method('spawn')

Just to confirm I am still seeing this error, it seems to be related to starting too many jobs (my HPC uses slurm) too rapidly in succession and is generally avoided by allowing some time (say 60s) between jobs.

Hopefully fixed with PR #4617 if it still an issue feel free to re-open.

experiencing the same - it causes wandb to stop synching my run logs to the app

I am still epxeriencing this :( This has to be open again

@guyfreund Based on the traceback it looks like an issue that stems from artifacts. Few requests to help us solve this.

Could you provide the debug logs (you can find these logs in your run directory under run)?
If possible a repro script or explanation about your execution
Are you using the latest version and did upgrading helped your issue?

@abhinav-kashyap-asus same request regarding additional information to help us debug this issue.
One of my colleague will ticket this issue and tag the relevant engineer.

Happened to me too. Killed a long-running training run, huge inconvenience

@jonasjuerss This workaround worked for me (so far):
import resource
resource.setrlimit(
    resource.RLIMIT_CORE, (resource.RLIM_INFINITY, resource.RLIM_INFINITY)
)

@jxmorris12 Unfortunately, that didn't help. Thanks anyway for posting, maybe it works for others.

I solved it by not logging the a artefacts.
This is sad. There should be some way to do this more efficiently.
I wasted a lot of time where my runs were crashing or the logging entirely stops.

I solved it by not logging the a artefacts.
This is sad. There should be some way to do this more efficiently.
I wasted a lot of time where my runs were crashing or the logging entirely stops.

How to disable logging the artefacts?

I solved it by not logging the a artefacts.
This is sad. There should be some way to do this more efficiently.
I wasted a lot of time where my runs were crashing or the logging entirely stops.

How to disable logging the artefacts?

In your code, do not log artifacts if you are (e.g. don't do wandb.log({... wandb.Table(...)}) or other things that create artifacts.
I hope some wandb people are looking at this. This seems pretty bad and renders wandb quite unusable for researchers using shared compute clusters who need to log many artifacts (especially for NLP or CV).

@mukobi , @Jiuzhouh, @jxmorris12, @abhinav-kashyap-asus. Thank you for the continue follow up on this and our apologies that it got buried. We are going to revisit the issue but would appreciate your assistance in understanding the issue and reproducing it. Could you provide the following, either leave here in a comment or email your responses to<EMAIL_ADDRESS>
For the run(s) that crash, the complete stacktrace, debug.log and debug-internal.log files located in the working directory of your projects under  wandb/<run-folder>/<logs>
A brief description of your experiment setup (single/multiprocessing, Multi-node, use of wandb integrations, ect..)? , the type of environment you are running in, size of artifacts and number of files logged, and wandb version.
Code example for a reproduction.

We'll get this fixed. If anyone has a script to reproduce that would help.

I had this issue during a sweep. My hacky fix is to restart the sweep agent after every run, and bump ulimit -n 4096 from 1024. Hopefully, this will work... this is a super annoying bug.

@MBakirWB @shawnlewis Here's some simple code to repro this, run ulimit -n 64 before to artificially set the file limit low for testing, though I expect this to also happen with 1024 or even 4096 (from experience).
"""Reproduce https://github.com/wandb/wandb/issues/2825"""

import os
import wandb

# Limit the file limit to 64 with ulimit -n 64
os.system("ulimit -n 64")

wandb.init()

for i in range(1000):
    # Log a very simple artifact at each iteration
    data = f"Step {i}"
    wandb.log({"my_table": wandb.Table(columns=["text"], data=[[data]])})
    print(f'Logged "{data}"')

Around step 186 do I start to get the Too many open files: error, then in the early 200s I start to see weirder tracebacks and errors.

Reproed on Ubuntu via Windows Subsystem for Linux with the following uname -a (though first encountered on a Linux SLURM cluster for my university).

Linux DESKTOP-7VO7NFL <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Also having this issue; following.

I have also hit this issue - lost 12 long-running experiments, brutal!

I'm also encountering this issue while using wandb.Table to log text predictions. We've already attempted various workarounds to log data less frequently, but the issue remains a massive annoyance for NLP tasks. Due to this bug, our models have crashed multiple times, many hours into training.
I don't know if logging the table only at the end of a long run would fix the issue. However, we can't always guarantee that we'll reach the end of the loop.  See: https://github.com/wandb/wandb/issues/2981#issuecomment-1686868189
One workaround we tried (but failed) was just adding the data to the wandb Table and logging a copy of the accumulated table less frequently.

Still experiencing this issue. Following.

Also experiencing this issue. The code I have been using is an adaptation of the PPO multi-adapter from TRL with logging frequency of every step. Each step sends a table with the query, response and reward. After just under 1000 steps, I saw this error and nothing more was reported. My training still ran to completion and the model checkpoints were saved but I have no data on loss, rewards, etc.

Also experiencing this issue when logging many tables.

this keeps happening to me when running normal training runs on a fork of llama-recipes that uses wandb

This still exists. Somehow. After 2 years.

Also facing the same issue!

I still have the same problem

The problem still exists

Hi all, we released a new version of the SDK 0.16.3, that hopefully should mitigate this problem from some of you. release notes (PR #6891). We are slowly working a full solution, but hopefully it is a step in the right direction.  Please give it a try and let us know if it helped.

In my case, this error happens while using the sweeping function. I notice that it usually stops around the 24th sweep in a grid search.
  File "/home/van-tien.pham/anaconda3/lib/python3.9/site-packages/git/cmd.py", line 1315, in _call_process
    return self.execute(call, **exec_kwargs)
  File "/home/van-tien.pham/anaconda3/lib/python3.9/site-packages/git/cmd.py", line 985, in execute
    proc = Popen(
  File "/home/van-tien.pham/anaconda3/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/van-tien.pham/anaconda3/lib/python3.9/subprocess.py", line 1720, in _execute_child
    errpipe_read, errpipe_write = os.pipe()
OSError: [Errno 24] Too many open files
wandb: ERROR Abnormal program exit
Run 2pz72mmg errored: Exception('problem')
wandb: ERROR Run 2pz72mmg errored: Exception('problem')
wandb: Sweep Agent: Waiting for job.
^Cwandb: Ctrl + C detected. Stopping sweep.

@pvtien96 do you think you will be able to provide a small repro example? to help us further debug this?

Hi all, we released a new version of the SDK 0.18.3 with a new backend, which hopefully should mitigate this problem for you. Please give it a try and let us know if it helped. If not, could you please share a small repro - maybe a code snippet, etc. which can help us investigate this issue further?

The issue still persists 0.18.5


Training GPU Setup

📚 Documentation
I have seen it noted the GPUs used for inference. I was hoping you could share what GPU setup you used to train the models, particularly the R2-101-DCN-BiFPN variants.

Hi,
Sorry for the delayed response. I used 8 24G GPUs (Quadro RTX 6000) to train the model.  If you don't have large memory GPUs, decreasing the batchsize and learning rate and increasing the total iterations accordingly should also be fine.

How to setup workers for distributed training?


How to use my lora for inpainting

I've trained a lora of flux, but how can I use it to inpainting?

Maybe you can use the web-ui made by Zhang Lvmin: https://github.com/lllyasviel/stable-diffusion-webui-forge


Broken URL for Dundee City Council

Broken URL: #https://data.dundeecity.gov.uk/

Contacted Dundee CC on 21/10/2022. No response as of yet.
IS have provided a contact email in Slack that we could use to get in touch direct. Will use this if we don't get a response by later on in the week.

Response from Dundee CC on 24/10/2022

John Lawson<EMAIL_ADDRESS>Mon, 24 Oct, 17:22 (7 days ago)
Ref Contact Us Investigation: CUI460174519
Thank you for getting touch about  the 503 error  with our open data portal. This is something we are aware of  and we are working with our external hosting provider  towards getting normal  service restored as quickly as possible.
I am unable to give you a specific date and time for resumption of this service other than soon. Apologies for any inconvenience caused.
Best Regards
John Lawson

Will chase again later on this week if still no progress.

Automatically closed due to URL now working.


Use render method instead of block in app skeleton

Closes #77

Thanks :D

Noticed that specs spec/lucky_cli/runner_spec.cr specs fail due to task from spec/lucky_cli/task_spec.cr leak into runner_spec.
Probably the best way to fix it is to define all spec tasks in one support file?

@arr-dev I just rebased against master and it looks like all specs pass. Can you get the latest from master and try again?
Or if it still doesn't work can you open an issue with the output?


provide option to override uefi tag

Fixes #223
When working with developing eve, you need to change and rebuild it frequently. You do not want to have to rebuild UEFI all of the time. This lets you override just the eve tag, while keeping the uefi tag the same.

LGTM


TFRS - Backend Package Updates

Describe the task
The task is to analyze the backend package updates suggested by Snyk: cryptography, django, pyjwt, and sqlparse. These packages need to be updated wherever there are no breaking changes to the system.
Purpose
The purpose of this task is to ensure that our system is running the latest, most secure versions of its dependencies. By updating the packages, we're ensuring that we're protected against any known vulnerabilities that might be present in the older versions. This helps us to maintain the stability, security, and efficiency of our system, thus adding value by minimizing potential risks.
Acceptance Criteria

[ ] The cryptography package is updated to the latest stable version, with no breaking changes.
[ ] The django package is updated to the latest stable version, with no breaking changes.
[ ] The pyjwt package is updated to the latest stable version, with no breaking changes.
[ ] The sqlparse package is updated to the latest stable version, with no breaking changes.
[ ] All unit and integration tests pass after the updates.
[ ] System functionality is tested and confirmed to be working as expected after the updates.

Additional context

Please ensure to test all functionalities thoroughly after updating the packages to avoid any production issues.
Document any changes made during the update process for reference and possible troubleshooting in the future.
Coordinate with the team to ensure that the updates do not conflict with any ongoing or planned work.

Not able to do user testing


steam: continuation of #114024 with missing edits

Motivation for this change
With the predecessor to this PR, #114024, pressure-vessel was mostly fixed, but there were a few missing packages and files that made the games not work sometimes. Credits to @starcraft66 for finding the problems and being very helpful while fixing them.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 114884 at 7362bccc run on x86_64-linux 1

8 packages built:

kodiPlugins.steam-launcher
lutris
playonlinux
protontricks
steam
steam-run
steam-run-native
steamcmd

Working great on my computer, I can now run 32-bit games on steam with these fixes.


Calculation of downsampleFactor does not seem right

It looks like overlapFrames is being added twice. The call to ConfigureAnalyzer passes the argument m_StepTotalFrames which already has m_StepFrameOverlap.  Then in the while loop it is added again.
Is this the intent ? if yes then why ?
Thanks in advance.
HRESULT MediaAnalyzer::Analyzer_Initialize()
....
m_StepTotalFrames = m_StepFrameCount + m_StepFrameOverlap;
...
_analyzer->ConfigureAnalyzer(m_FftLength, m_StepTotalFrames, m_StepFrameOverlap);
void CAudioAnalyzer::ConfigureAnalyzer(UINT32 fftLength, UINT32 stepFrames, UINT32 overlapFrames)
...
// Calculate downsample factor, if FFT length is too short for step+overlap then downsample input
UINT32 downsampleFactor = 1;
while ((stepFrames + overlapFrames) / downsampleFactor > fftLength)
downsampleFactor++;

Thanks for the feedback - this issue should be fixed in the most recent major update and rewrite of the library (migrate to C++/WinRT)


[FEATURE] allow tags to contain images

proposed feature
!tag tags should be able to contain images.

Why should they be exclusively for images?
I feel a like it works quite fine right now - with only text
But additionally images would be fine

or be exclusively images

this works, or at least with singular image.

or be exclusively images

this works, or at least with singular image.

Right, idk why it didn't work

So does it work or doesnt it

tag that is only an image works, tag that includes an image does not but should

seems to work but it has to be a url

but it also displays as plaintext, so it won't show a date which people assume to be the time of setting (#125)

But yeah
This works, it just has to be a url instead of an attachment
Also if the first thing is a link then the whole tag is plaintext (which allows embeds & image-only tags without the url visible)
closing


Updated readme, added opt out

This PR adds a new option on a per synced folder basis, disable_notify_forwarder, allowing a user to enable vagrant-notify-forwarder overall, but exclude some directories.
We have used VNF to enable Node hot reload, but now it's causing issues with our Django backend, when using PyCharm. Constant complaints about keeping in memory or on disc files.
Since Runserver seems to reload just fine without the forwarder, opting out just that directory seems like a quick fix.

@mhallin Any chance you can review this? Thanks!


fetch all pages until end for get_storage_keys_paged

instead of asking for a max_count, max count could be assumed to be 1000 (seems to be rpc default) and then just fetch all pages directly

I think a max_key input should still be accepted in case someone wants to get a limited number of keys, like for performance reason (?). But we could provide a second function that simply fetches all keys with the given prefix.
Could look something like that:
async fn get_storage_keys_paged_all(
		&self,
		prefix: Option<StorageKey>,
		start_key: Option<StorageKey>,
		at_block: Option<Self::Hash>,
	) -> Result<Vec<StorageKey>>{
	let max_keys = 1000;
        let storage_keys = Vec::new();
        for i in u32::Max {
	       let keys = self.get_storage_keys_paged(Some(prefix), max_keys, start_key, at_block)?;
               storage_keys.push(keys);
               // No more keys available for the given prefix, returning.
	       if keys.len() < max_keys as usize {
    	              return Ok(storage_keys);
	       }
	}
}

After thinking about it some, contrary to the above, I believe the default version should be failsafe. But let's keep the count as input value. That way the user still has the full flexibility, can choose the max keys to fetch but without the (runtime) limit of 1000. The function will internally split the key fetch into slices of 1000. The drawback: performance, in case one could fetch more than 1000 keys. For these (probably rare usecases) we could still offer a "bare" function, but with a different name.
Idea:
async fn get_storage_keys_paged(
		&self,
		prefix: Option<StorageKey>,
                count: u32,
		start_key: Option<StorageKey>,
		at_block: Option<Self::Hash>,
	) -> Result<Vec<StorageKey>>{
        // Substrate node does normally only allow 1000 keys as max value.
	let max_keys_per_fetch = 1000;
        let storage_keys = Vec::new();
        for slice_of_1000_or_below until `count` is reached {
        	let keys = self.get_storage_keys_paged_bare(prefix, slice_of_1000_or_below, start_key, at_block)?;
                storage_keys.push(keys);
	}
       return Ok(storage_keys);
}

where get_storage_keys_paged_bare is the original, renamed function.

We can't fetch all pages until end. Substrate does not to support this feature. We can only fetch a certain number of keys. See Discussion in PR https://github.com/paritytech/substrate/issues/4717. If we want achieve this, we have to create an issue in Substrate.
Solution proposed by @haerdib allows to fetch a certain number greater than 1000 of keys. As count is mandatory for Substrate, either the user chooses the max number of keys to fetch, or we defined this value. I prefer to leave this choice to the user. But are we sure that there is no limit? What is happening for a very large number? Ex 10'000?
@haerdib what do you mean with The drawback: performance, in case one could fetch more than 1000 keys. For these (probably rare usecases) we could still offer a "bare" function, but with a different name. ? Furthermore, is your bare function not the current one, which throws an error for count bigger than 1000?

We can offer this without Substrate support by building a wrapper function around the rpc call.
So, yes, exactly. The bare function is the current one. My proposal is to basically build a Wrapper function around it. E.g. when the user chooses 10'000 as max number (and there as that many keys) the bare function would get called 10 times. Each time with the start key+1000 compared to the previous call.
Does that make sense?

Regarding the drawback: In case Substrate updates the accepted default, or if the users itself updates it (if that's possible), our wrapper function would still split the call into multiple calls if the number is larger than 1000. That might not be ideal for the user. So that's why we could keep the bare function, where the user is responsible to check that the #count values can be fetched from Substrate.

We can offer this without Substrate support by building a wrapper function around the rpc call.

Not exactly. What we can offer is that the user can fetch a certain number greater than 1000 of keys. Not all pages until end. To get this, the user has to know how many keys are in the storage.

So, yes, exactly. The bare function is the current one. My proposal is to basically build a Wrapper function around it. E.g. when the user chooses 10'000 as max number (and there as that many keys on substrate side) the bare function would get called 10 times. Each time with the start key+1000 compared to the previous call.
Does that make sense?
Yes, if we don't have performance problem. I implemented something like that. See https://github.com/scs/substrate-api-client/pull/602. I haven't change async fn get_storage_keys_paged. This is the bare function and add get_all_storage_keys_paged_up_to_count

But are we sure that no limit is necessary?What happens if there is a very large number of calls? 1000 calls?

Cool, thanks a lot! I'll comment in the PR then :)

But are we sure that no limit is necessary? What happens if there is a very large number of calls? 1000 calls?
Then 1000 calls will be made. That's in the responsibility of the user, I believe. However, keep in mind that get_storage_keys_paged only returns the keys that start with the given prefix. So even if you use 10000 (rsp. u32::max) as count input, if there's less key with given prefix in the storage, only those keys are returned, not the given max count.


Contribution: Impact reactor logic

Hi. I wanted to contribute a working example if you wanted to play with the optimization of someone else's big code.

My current code for this is as follows
#set passes = 5 // Many passes to unroll and tidy this loop.

FUEL = @blast-compound
FUEL_OFF = @scrap
MIXER_IN = @pyratite

PWR_REQ = 50000
FLOW_REQ = 2000
PWR_ABORT = 10000
FLOW_ABORT = -500
FUEL_REQ = 10        // In generator
FUEL_TOT_REQ = 45    // In box (45 is enough for 60 seconds of running)
FUEL_LIMIT_LOW = 150     // Max fuel when no reactors running
FUEL_LIMIT = 800         // Max fuel generally
FUEL_TOT_ABORT = 15 // 20 seconds supply per reactor. Turn off reactors 2..5 as we start to run low for graceful
                         // power reduction (better than all at once)
CRYO_REQ = 3 // This is a count out of 30 (3 is 10% full)
CRYO_REQ_EA = 2 // Each reactor needs a little more to start.
CRYO_ABORT = 1 // Note that this drastic low amount is balanced by many tanks around the generator
// NEGATIVE_TICKS = 1800 // 30 seconds (60 ticks times 30 seconds)
//                       // Rough time to become net-positive.
// STARTUP_TICKS = 3600 // 30 seconds (60 ticks times 30 seconds)
//                      // Rough time to be a serious generator

// Feed (IN) or empty (OUT) various reactors
ULD_IN_1 = unloader1
ULD_OUT_1 = unloader2
ULD_IN_2 = unloader3
ULD_OUT_2 = unloader4
ULD_IN_MANY = unloader5
ULD_OUT_MANY = unloader6

// Feed the mixers with Pyro so they can make blast
ULD_MIXER = unloader7

TOWER = cyclone1
CONTAINER = vault1
NODE = node1

for reactor_idx in 1..5
    emerg_shutdown = check_radar(TOWER)

    reactor = case reactor_idx
        when 1
            fuel = fuel_1
            reactor1
        when 2
            fuel = fuel_2
            reactor2
        when 3
            fuel = fuel_3
            reactor3
        when 4
            fuel = fuel_4
            reactor4
        when 5
            fuel = fuel_5
            reactor5
    end

    fuel = start_reactor(reactor, reactor_idx, emerg_shutdown, fuel)

    case reactor_idx
        when 1
            fuel_1 = fuel
            ULD_IN_1.config = fuel_1?FUEL:FUEL_OFF
            ULD_OUT_1.config = !fuel_1?FUEL:FUEL_OFF
        when 2
            fuel_2 = fuel
            ULD_IN_2.config = fuel_2?FUEL:FUEL_OFF
            ULD_OUT_2.config = !fuel_2?FUEL:FUEL_OFF
        else
            case reactor_idx
                when 3
                    fuel_3 = fuel
                    reactor3
                when 4
                    fuel_4 = fuel
                    reactor4
                when 5
                    fuel_5 = fuel
                    reactor5
            end
            fuel_many = fuel_3 or fuel_4 or fuel_5
            ULD_IN_MANY.config = fuel_many?FUEL:FUEL_OFF
            ULD_OUT_MANY.config = !fuel_many?FUEL:FUEL_OFF
    end
end

feed_mixers = throttle_blast(fuel_1 or fuel_2 or fuel_many, emerg_shutdown)
ULD_MIXER.config = feed_mixers?MIXER_IN:FUEL_OFF

idle_diff_generators()
printflush(message1)

def start_reactor(reactor, reactor_num, emerg_shutdown, fuel_on)
    fuel = reactor.blast-compound
    supply_fuel = true
    fuel_stored = CONTAINER.blast-compound
    cryo = reactor.cryofluid
    charge = floor(NODE.powerNetStored)
    surplus = floor(NODE.powerNetIn - NODE.powerNetOut) // Watts of excess generation

    if emerg_shutdown
        reactor.enabled = false
        printf("Reactor $reactor_num in emergency shutdown mode\n")
        supply_fuel = false
    elsif reactor.enabled
        if charge < PWR_ABORT and surplus < FLOW_ABORT
            reactor.enabled = false
            printf("Reactor $reactor_num startup fail - battery low\n")
            supply_fuel = false
        elsif fuel < 1
            // Not enough fuel to run
            reactor.enabled = false
            printf("Reactor $reactor_num shutdown - fuel low\n")
        elsif reactor_num > 1 and fuel_stored < FUEL_TOT_ABORT * reactor_num
            reactor.enabled = false
            printf("Reactor $reactor_num shutdown - system fuel low\n")
        elsif cryo <= CRYO_ABORT
            reactor.enabled = false
            printf("Reactor $reactor_num shutdown - out of cryo\n")
        else
            // Running, generating power
            printf("Reactor $reactor_num running\n\n")
        end
    else
        // Not running
        charge_units = charge / PWR_REQ / reactor_num
        flow_units = surplus / FLOW_REQ
        cryo_req = CRYO_REQ + CRYO_REQ_EA * reactor_num
        if flow_units + charge_units < 1
            printf("Reactor $reactor_num - insufficient power to start.\n")
            supply_fuel = false
        elsif fuel_on and fuel < FUEL_REQ
            if fuel + fuel_stored > FUEL_REQ
                // Start or continue fueling (note fuel on conveyor is not counted)
                printf("Reactor $reactor_num - loading startup fuel\n")
            else
                printf("Reactor $reactor_num - insufficent system fuel to start\n")
            end
        elsif fuel_stored < FUEL_TOT_REQ * reactor_num
            // Keep waiting until enough fuel accumulates
            printf("Reactor $reactor_num - waiting for buffer fuel\n")
        elsif cryo < cryo_req
            // Keep waiting for cryo to be made
            printf("Reactor $reactor_num - need more cryo\n")
        else
            // Ready to startup!
            printf("Reactor $reactor_num - begin startup\n")
            reactor.enabled = true
        end
    end
    return supply_fuel
end

def throttle_blast(reactors_fueled, emerg_shutdown)
    charge = floor(NODE.powerNetStored)
    surplus = floor(NODE.powerNetIn - NODE.powerNetOut) // Watts of excess generation
    fuel_stored = CONTAINER.blast-compound
    if (charge < PWR_ABORT and surplus < FLOW_ABORT) or emerg_shutdown
        limit = 0 // Don't produce any
        printf("Central Fuel at $fuel_stored / $limit - ")
        if emerg_shutdown
            printf(" Enemies detected.\n")
        else
            printf(" Critical power.\n")
        end
    elsif !reactors_fueled
        limit = FUEL_LIMIT_LOW
        printf("Central Fuel at $fuel_stored / $limit - limited due to reactor shutdown.\n")
    else
        limit = FUEL_LIMIT
        printf("Central Fuel at $fuel_stored / $limit\n")
    end

    return fuel_stored < limit
end

def check_radar(unit)
    enemy_found = unit.radar(enemy, any, any, health, 1)
    if enemy_found != null
        projector1.enabled = true
        projector2.enabled = true

        // For now, panic when this happens (might get smarter later.)
        // Make fuel flow out of reactors
        ULD_IN_1.config = FUEL_OFF
        ULD_OUT_1.config = FUEL
        ULD_IN_2.config = FUEL_OFF
        ULD_OUT_2.config = FUEL
        ULD_IN_MANY.config = FUEL_OFF
        ULD_OUT_MANY.config = FUEL
        ULD_MIXER.config = FUEL_OFF

        reactor1.enabled = false
        reactor2.enabled = false
        reactor3.enabled = false
        reactor4.enabled = false
        reactor5.enabled = false
        return true // Shutdown
    else
        projector1.enabled = false
        projector2.enabled = false
        return false // All clear
    end
end

def idle_diff_generators()
    stored_pc = NODE.powerNetStored / NODE.powerNetCapacity
    if stored_pc > 0.95 and reactor1.enabled and reactor2.enabled and reactor3.enabled and reactor4.enabled and reactor5.enabled
        // We don't need the differential reactors now
        printf("Differential reactors now idle (sufficient power).\n")
        generator1.enabled = false
        generator2.enabled = false
    else
        generator1.enabled = true
        generator2.enabled = true
    end
end

Schematic
[encoded data, 7512 characters]

FYI I iterated on this a bit and this is my current version
#set passes = 5 // Many passes to unroll and tidy this loop.

printflush(message1)

FUEL = @blast-compound
FUEL_OFF = @scrap
MIXER_IN = @pyratite

PWR_REQ = 23000
FLOW_REQ = 2000
PWR_ABANDON = 2000   // Below this, assume something is horribly wrong and always shut down.
PWR_ABORT = 5000
PWR_RESERVE = 0.6    // Only plan on using 60% of battery capacity currently available.
FLOW_ABORT = -500
FUEL_REQ = 10        // In generator
FUEL_TOT_REQ = 45    // In box (45 is enough for 60 seconds of running)
FUEL_LIMIT_LOW = 150     // Max fuel when no reactors running
FUEL_LIMIT = 800         // Max fuel generally
FUEL_TOT_ABORT = 15 // 20 seconds supply per reactor. Turn off reactors 2..5 as we start to run low for graceful
                         // power reduction (better than all at once)
GENERATOR_OUTPUT = 6500
GOAL_BUFFER = 10000
CRYO_REQ = 3 // This is a count out of 30 (3 is 10% full)
CRYO_REQ_EA = 2 // Each reactor needs a little more to start.
CRYO_ABORT = 1 // Note that this drastic low amount is balanced by many tanks around the generator
// NEGATIVE_TICKS = 1800 // 30 seconds (60 ticks times 30 seconds)
//                       // Rough time to become net-positive.
// STARTUP_TICKS = 3600 // 30 seconds (60 ticks times 30 seconds)
//                      // Rough time to be a serious generator
fuel_1 = false
fuel_2 = false
fuel_3 = false
fuel_4 = false
fuel_5 = false

surplus = floor(node1.powerNetIn - node1.powerNetOut) // Watts of excess generation

start_time = if surplus > 10000
    // assume generators running OK
    @tick - 3600
else
    @tick
end

t_startup1 = start_time
t_startup2 = start_time
t_startup3 = start_time
t_startup4 = start_time
t_startup5 = start_time

RET_T_STARTUP = t_startup1
REACTORS_DESIRED = 5 // Updates based on power fluctuations
AVG_SURPLUS = 500

while true
    // Feed (IN) or empty (OUT) various reactors
    ULD_IN_1 = unloader1
    ULD_OUT_1 = unloader2
    ULD_IN_2 = unloader3
    ULD_OUT_2 = unloader4
    ULD_IN_MANY = unloader5
    ULD_OUT_MANY = unloader6

    // Feed the mixers with Pyro so they can make blast
    ULD_MIXER = unloader7

    TOWER = cyclone1
    CONTAINER = vault1
    NODE = node1

    emerg_shutdown = check_radar(TOWER)
    emerg_shutdown |= check_manual_shutdown()

    // Accumulate how much power is still required to start reactors
    START_POWER_REQ = calc_charge_req(reactor1, t_startup1)
    START_POWER_REQ += calc_charge_req(reactor2, t_startup2)
    START_POWER_REQ += calc_charge_req(reactor3, t_startup3)
    START_POWER_REQ += calc_charge_req(reactor4, t_startup4)
    START_POWER_REQ += calc_charge_req(reactor5, t_startup5)
    // Potentially code here to find last reactor to start up and shut it back down.

    fuel_1 = start_reactor(reactor1, 1, emerg_shutdown, fuel_1, t_startup1)
    t_startup1 = RET_T_STARTUP
    update_fuel(fuel_1, ULD_IN_1, ULD_OUT_1)

    fuel_2 = start_reactor(reactor2, 2, emerg_shutdown, fuel_2, t_startup2)
    t_startup2 = RET_T_STARTUP
    update_fuel(fuel_2, ULD_IN_2, ULD_OUT_2)

    emerg_shutdown |= check_radar(TOWER)
    fuel_3 = start_reactor(reactor3, 3, emerg_shutdown, fuel_3, t_startup3)
    t_startup3 = RET_T_STARTUP
    fuel_4 = start_reactor(reactor4, 4, emerg_shutdown, fuel_4, t_startup4)
    t_startup4 = RET_T_STARTUP
    fuel_5 = start_reactor(reactor5, 5, emerg_shutdown, fuel_5, t_startup5)
    t_startup5 = RET_T_STARTUP
    fuel_many = fuel_3 or fuel_4 or fuel_5
    update_fuel(fuel_many, ULD_IN_MANY, ULD_OUT_MANY)

    feed_mixers = throttle_blast(fuel_1 or fuel_2 or fuel_many, emerg_shutdown)
    ULD_MIXER.config = feed_mixers?MIXER_IN:FUEL_OFF

    diff_generators()
    surplus = kilo(AVG_SURPLUS)
    charge = kilo(NODE.powerNetStored)
    if START_POWER_REQ > 0
        req = kilo(START_POWER_REQ)
        printf("Req ${req}kJ / ${charge}kJ. ${surplus}kW flow.\n")
    else
        printf("Power ${surplus}kW, ${charge}kJ\n")
        update_reactors_desired()
    end
    if REACTORS_DESIRED != 5
        printf("Require only ${REACTORS_DESIRED}/5 reactors.\n")
    end
    printflush(message1)
end

def kilo(val)
    return (val \ 100) / 10
end

def update_fuel(fuel, uld_in, uld_out)
    uld_in.config = fuel?FUEL:FUEL_OFF
    uld_out.config = !fuel?FUEL:FUEL_OFF
end

def calc_charge_req(reactor, time)
    secs = (@tick - time) \ 60
    if secs > 30 or !reactor.enabled
        return 0
    end

    time_left = 30 - secs
    // Estimate of time left is 30 - secs
    // Linear estimate of impact reactor power draw is (1500 / 30 * time_left) * (0.5 * time left)
    // that simplifes to:
    charge_req = floor(time_left * time_left * 25)
    return charge_req
end

def start_reactor(reactor, reactor_num, emerg_shutdown, fuel_on, t_startup)
    RET_T_STARTUP = t_startup // return startup time unchanged by default
    secs = (@tick - t_startup) \ 60
    fuel = reactor.blast-compound
    supply_fuel = true
    fuel_stored = CONTAINER.blast-compound
    cryo = reactor.cryofluid
    charge = floor(NODE.powerNetStored)
    surplus = floor(NODE.powerNetIn - NODE.powerNetOut) // Watts of excess generation
    AVG_SURPLUS = AVG_SURPLUS * 0.8 + surplus * 0.2
    enabled = reactor.enabled

    printf("#$reactor_num - ")
    if emerg_shutdown
        reactor.enabled = false
        printf("emergency mode\n")
        supply_fuel = false
    elsif enabled
        if REACTORS_DESIRED < reactor_num
            reactor.enabled = false
            printf("STOP unwanted\n")
        elsif reactor_num > 1 and fuel_stored < FUEL_TOT_ABORT * reactor_num
            reactor.enabled = false
            printf("STOP system fuel low\n")
        elsif fuel <= 1
            // Not enough fuel to run
            reactor.enabled = false
            printf("STOP fuel low\n")
        elsif cryo <= CRYO_ABORT
            reactor.enabled = false
            printf("STOP out of cryo\n")
        elsif secs < 30
            // Reactor still in startup
            charge_req = calc_charge_req(reactor, t_startup)

            if charge - charge_req < PWR_ABORT and surplus < FLOW_ABORT
                reactor.enabled = false
                printf("START FAIL battery\n")
                supply_fuel = false
            else
                time_left = 30 - secs
                printf("Starting $time_left secs, req ${charge_req}J\n")
            end
        elsif charge < PWR_ABANDON and surplus < FLOW_ABORT
            reactor.enabled = false
            printf("ABANDON - battery crit\n")
            supply_fuel = false
        else
            // Running, generating power
            // Round to 1 dp
            mins = secs \ 6
            mins = mins / 10
            printf("RUN $mins mins\n")
        end
    else
        // Not running
        // 1 charge_units of charge if there is enough in battery to start other generators +
        charge_units = (charge - START_POWER_REQ - PWR_ABORT) / PWR_REQ * PWR_RESERVE
        flow_units = max(-0.1, surplus / FLOW_REQ)
        cryo_req = CRYO_REQ + CRYO_REQ_EA * reactor_num

        if REACTORS_DESIRED < reactor_num
            printf("IDLE\n")
            supply_fuel = false
        elsif flow_units + charge_units < 1
            flow = floor(flow_units * 1000) / 10
            charge = floor(charge_units * 1000) / 10
            printf("WAIT power. (%${charge}J + %${flow}W)\n")
            supply_fuel = false
        elsif fuel_on and fuel < FUEL_REQ
            if fuel + fuel_stored > FUEL_REQ
                // Start or continue fueling (note fuel on conveyor is not counted)
                printf("WAIT fuel\n")
            else
                printf("WAIT system fuel\n")
            end
        elsif fuel_stored < FUEL_TOT_REQ * reactor_num
            // Keep waiting until enough fuel accumulates
            printf("WAIT buffer fuel\n")
        elsif cryo < cryo_req
            // Keep waiting for cryo to be made
            printf("WAIT cryo\n")
        else
            // Ready to startup!
            printf("STARTUP\n")
            START_POWER_REQ += PWR_REQ
            reactor.enabled = true
        end
    end
    if enabled != reactor.enabled
        // Reactor changed state.
        RET_T_STARTUP = @tick
    end
    return supply_fuel
end

def throttle_blast(reactors_fueled, emerg_shutdown)
    charge = floor(NODE.powerNetStored)
    surplus = floor(NODE.powerNetIn - NODE.powerNetOut) // Watts of excess generation
    fuel_stored = CONTAINER.blast-compound
    if (charge < PWR_ABORT and surplus < FLOW_ABORT) or emerg_shutdown
        limit = 0 // Don't produce any
        printf("Central Fuel at $fuel_stored / $limit - ")
        if emerg_shutdown
            printf(" Enemies detected.\n")
        else
            printf(" Critical power.\n")
        end
    elsif !reactors_fueled
        limit = FUEL_LIMIT_LOW
        printf("Fuel $fuel_stored / $limit (due to emergency)\n")
    else
        limit = FUEL_LIMIT
        printf("Fuel $fuel_stored / $limit\n")
    end

    return fuel_stored < limit
end

def check_radar(unit)
    enemy_found = unit.radar(enemy, any, any, health, 1)
    if enemy_found != null
        projector1.enabled = true
        projector2.enabled = true

        // For now, panic when this happens (might get smarter later.)
        // Make fuel flow out of reactors
        ULD_IN_1.config = FUEL_OFF
        ULD_OUT_1.config = FUEL
        ULD_IN_2.config = FUEL_OFF
        ULD_OUT_2.config = FUEL
        ULD_IN_MANY.config = FUEL_OFF
        ULD_OUT_MANY.config = FUEL
        ULD_MIXER.config = FUEL_OFF

        reactor1.enabled = false
        reactor2.enabled = false
        reactor3.enabled = false
        reactor4.enabled = false
        reactor5.enabled = false

        return true // Shutdown
    else
        projector1.enabled = false
        projector2.enabled = false
        return false // All clear
    end
end

def check_manual_shutdown()
    if switch1 != null and !switch1.enabled
        println("User has disabled emergency switch")
        return true // user can force a shutdown
    end
    return false
end

def diff_generators()
    stored_pc = NODE.powerNetStored / NODE.powerNetCapacity
    if stored_pc > 0.90 and START_POWER_REQ < 10
        // We don't need the differential reactors now
        printf("Differential now idle.\n")
        generator1.enabled = false
        generator2.enabled = false
    else
        generator1.enabled = true
        generator2.enabled = true
    end
end

def update_reactors_desired()
    stored = NODE.powerNetStored / NODE.powerNetCapacity
    if stored > 0.98 and AVG_SURPLUS > GENERATOR_OUTPUT + GOAL_BUFFER
        if REACTORS_DESIRED > 2
            REACTORS_DESIRED -= 1
            AVG_SURPLUS -= GENERATOR_OUTPUT
        end
    end

    if stored < 0.80 and AVG_SURPLUS < GOAL_BUFFER * 0.8
        needed = max(1, (AVG_SURPLUS - GOAL_BUFFER) \ GENERATOR_OUTPUT)

        REACTORS_DESIRED = min(5, needed + REACTORS_DESIRED)
    end
end

Thank you a lot!
Suggestion: you can add #set instruction-limit = 1050 at the beginning of the program. Here's an explanation from the documentation:

This option allows to change the instruction limit used by speed optimization. The speed optimization strives not to exceed this instruction limit. In some cases, the optimization cost estimates are too conservative - some optimizations applied together may lead to code reductions that are not known to individual optimizers considering each optimization in isolation. In these cases, increasing the instruction limit might allow more optimizations to be performed. When the resulting code exceeds 1000 instructions, it is not usable in Mindustry processors and the option should be decreased or set back to 1000.

In this case, the optimizer is able to inline one more function and the resulting code size is 982 instructions.

Glad it is helpful!
I'm not always sure that the size vs speed trade off is worth it. If the code goes "fast enough" then increasing instruction count makes the code harder for non-mindcode users to read and also makes the schematic string longer. I love how the function inlining lets the compiler bake in things like "this is reactor_1" but it does come at a bit of a cost.


Output is not rotated

Even the examples aren't rotated, but background is correctly removed 👍

Note regression happened in 94b3c953ecfc825fedceb8d85d858fe48a3d9ef7. Works with f78aad4


CakePHP 3.4 and above

Hi there
I just noticed that many things are changing from version 3.3 to 3.4 in CakePHP. (https://book.cakephp.org/3.0/en/appendices/3-4-migration-guide.html).
Has already someone integrated this plugin with the new version? Is there any assistance wanted to upgrade?
Best regards
Roman

Hi, I've integrated this plugin into cake 3.4.7, and it works ... I think issues related to this plugin are still up to date.

Hi, sorry for the delay, but yes, plugin works with 3.4 (with the exception of login redirect, fix will hopefully be merged soon - #58). We have it in production right now.
There is also a new version of league/oauth2-server that uses middleware, which should be usable in 3.4. Would be cool to have, but not necessary for now :)


Using codec mpeg2video - Pixel format yuv420p

[mpeg2video @ 0x69b2d00] intra_quant_bias = 96 inter_quant_bias = 0
[mpeg2video @ 0x69b2d00] MPEG-1/2 does not support 90000/1 fps

Is this a question?


local_output extension

In the tilt.build issue, @jazzdan mentioned that tilt extensions may have a functionality to get the output of a local command.
I also use this frequently to put all of my scripting in my Tiltfile.

Thanks @cyucelen for the submission. We are looking at this currently.


Automated cherry pick of #5145: qcloud elb sync

Cherry pick of #5145 on release/2.13.
#5145: qcloud elb sync

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@87a6aed). Click here to learn what that means.
The diff coverage is 3.79%.

@@              Coverage Diff               @@
##             release/2.13   #5148   +/-   ##
==============================================
  Coverage                ?   6.81%
==============================================
  Files                   ?     530
  Lines                   ?   90005
  Branches                ?       0
==============================================
  Hits                    ?    6137
  Misses                  ?   83360
  Partials                ?     508

Flag
Coverage Δ

#aFlag
6.81% <3.79%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/regiondrivers.go
20% <ø> (ø)

pkg/compute/models/loadbalancerlistenerrules.go
1.85% <0%> (ø)

pkg/compute/models/loadbalancerbackendgroups.go
1.48% <0%> (ø)

pkg/compute/models/loadbalancerlisteners.go
1.36% <0%> (ø)

pkg/compute/models/cloudsyncelb.go
0% <0%> (ø)

pkg/compute/models/loadbalancerqcloudcachedlbbg.go
4.73% <4.73%> (ø)

pkg/compute/models/loadbalancerqcloudcachedlbb.go
5.8% <5.8%> (ø)

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 87a6aed...d55bbf6. Read the comment docs.

/lgtm
/approve

/lgtm

/approve


empty command causes crash

demonstrated with !timeSinceCreated / !tsc but passing the bot an empty command causes it to asplode.

args[0] would be null or undefined with nothing in it?. we could check for that an then send a text string of how to use said command

basically yeah, I'm thinking once I've got #10 done, just have it spit out the help text for the command when args[0] be null.

#16 closed this


[Modmail] Better attachments embedding

Preview:

How does this looks in message (this is a single message sent from mobile client):

I never actually bothered with checking multiple attachments, thank you though!


fix: cve-2022-41089

:x: Build TheIdServer 6.3.1-fix-cve-2022-410891-0001 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/0543942f3e by @)

:x: Build TheIdServer 6.3.1-fix-cve-2022-410891-0002 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/2a6994080f by @)

:x: Build TheIdServer 6.3.1-fix-cve-2022-410891-0003 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/d49c6fe0a3 by @)

:white_check_mark: Build TheIdServer 6.3.1-fix-cve-2022-410891-0004 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/bd26e7ebef by @)


Phantom 2.0 support

Is there ongoing work on this? Otherwise I may have a crack at seeing how easy (or not) it is :)

Yep! check out our phantomjs2 branch. We are using PhantomJS 2 in production based off of that branch.
We have compiled our own PhantomJS 2 from source and are using that until the PhantomJS 2 binaries are available for all platforms and until medium/phantomjs upgrades to 2.0.
Just check out the phantomjs2 branch, set PHANTOMJS_CDNURL to the location of your compiled binaries (or leave it if you want to use the phantomjs project's binaries).
Let me know if you have any questions.

the phantomjs2 branch doesn't seem to be working for me on Windows 8.1…

the phantomjs2 branch doesn't seem to be working for me either on OS X Yosemite 10.10.3.
phantom keeps crashing over and over.
To make i work I changed the dependencies (prerender-phantomjs2/package.json) to use
"phantomjs2": "^2.0.0",

instead of
"phantomjs": "git+https://github.com/thoop/phantomjs.git#14387f2fe27b0bbc2df097af1c0cb53876cd70a2",

Then I change
binary: require('phantomjs').path,

to
binary: require('phantomjs2').path,

on line 87 of the file prerender-phantomjs2/lib/server.js
After that I was able to start the server.

@smarts It looks like the phantomjs2 windows zip you have isn't unpacking correctly?
rror: ENOENT, no such file or directory 'C:\workspace\prerender@cc31d28cb0e850e9cbe8c368
f2e95ed215a39d3f\node_modules\phantomjs\lib\phantom\phantomjs.exe

@jrichard-km I've seen that once before where I just had to run a rm -rf node_modules/ and then re-run npm install. Since you added a new package it ran the npm install and probably fixed it. I don't see that we're doing anything different from that package. I'm on the same version of OS X Yosemite.

Feel free to open new issues if you continue to run into problems.

@jrichard-km It looks like this is due to something with the version of phantomjs2 that ariya uploaded to the official bitbucket repo. It might not be something wrong with the one he uploaded, but it might be set up differently than we expect? We built our own binary and are using that and don't have any issues. The phantomjs2 branch wasn't meant to be used with the current phantomjs 2.0 builds on the official bitbucket.

@smarts do you eventually solve the issue? I seem to be having the same problem.

I did not.

I wanted to post a quick comment about how I'm solving this problem. There are a variety of ways of getting PhantomJS 2.0 installed. On a mac, I would typically install it via brew install phantomjs. Deploying phantomjs to a linux server however is a different task entirely. I've opted to remove the dependency on Medium/phantomjs entirely in https://github.com/aortbals/prerender/commit/6e7b46fc6f443dd3455032f4b8be99bde17cf79c. This ends up working well in my scenario because I want complete control over the exact phantomjs binary I have deployed. One example would be installing via an apt repo like https://packagecloud.io/armando/phantomjs.
This degrades the initial user experience of npm install -g prerender and it "just working" slightly because you must install phantomjs seperately, but makes it much easier to get prerender running on the version of phantomjs you would like.


Scroll back to top of expandable position

When collapsing, the scroll doesnt go back to the top of the item.

Expandable is currently not aware of the scroll controller. I'll keep this one open. Feel free to propose a solution.

I just released version 3.0.0. It contains a solution for this issue. In order to implement scrolling back, wrap your widget with a new widget called ScrollOnExpand. Refer to README for details, and the example project has been updated to use it as well. Be sure to put an ExpandableNotifier around ScrollOnExpand and Expandable.


Linked and Unlinked Mentions - style issue

Confirm that the bug is not present when Minimal theme is off
Confirmed
Describe the bug
When "Colorful Active States" is toggled on in light mode, the filenames of backlinks (displayed at bottom of note) are invisible (i.e. white on white background) unless you hover over them. Active states elsewhere, such as in the file navigator, display the accent color correctly. See images below.
To reproduce
Open note with backlinks
Toggle backlinks to display at bottom of note
Toggle on Color Active States in Minimal Theme Settings
Expected behavior
I expect to see the filenames of both mentioned and unmentioned links.
Screenshots

Hover Version

Debug info (required):
SYSTEM INFO:
Obsidian version: v0.16.0
Installer version: v0.15.6
Operating system: Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:35 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T8101 21.6.0
Login status: logged in
Catalyst license: insider
Insider build toggle: on
Live preview: on
Legacy editor: off
Base theme: light
Community theme: Minimal
Snippets enabled: 3
Restricted mode: off
Plugins installed: 43
Plugins enabled: 41
1: Obsidian42 - BRAT v0.6.34
2: Pandoc Plugin v0.2.5
3: Periodic Notes v0.0.17
4: QuickAdd v0.5.5
5: Readwise Official v2.0.1
6: Recent Files v1.3.3
7: Smart Random Note v0.2.1
8: Tag Wrangler v0.5.3
9: Style Settings v0.4.10
10: Todoist Plugin v1.9.0
11: Kanban v1.3.17
12: Day Planner v0.5.8
13: Commander v0.1.0
14: Trim Whitespace v0.2.2
15: Text Format v1.8.1
16: Alias from heading v1.0.12
17: Folder Note Core v1.3.5
18: Bartender v0.5.7
19: AidenLx's Folder Note v0.16.4
20: Regex Find/Replace v1.2.0
21: Divide & Conquer v0.4.0
22: Advanced URI v1.24.0
23: Better PDF Plugin v1.4.0
24: Better Word Count v0.8.1
25: Buttons v0.4.16
26: Calendar v1.5.10
27: cMenu v1.1.2
28: Copy Block Link v1.0.4
29: Custom Frames v2.4.3
30: Dataview v0.5.43
31: Expand Bullet v1.0.2
32: Find orphaned files and broken links v1.6.1
33: Hotkeys for templates v1.4.3
34: Icon Folder v1.3.31
35: Natural Language Dates v0.6.1
36: Obsidian better Internal Link Inserter v1.0.0
37: Obsidian Leaflet v5.0.3
38: Timelines v0.3.2
39: Toggl Track v0.9.0
40: Vault Statistics v0.1.2
41: Minimal Theme Settings v6.0.0
RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

This is fixed if you update to the latest version of the theme and plugin


Deleted unnecessary tutorials to make repo neater

The remaining docs are UserGuide, LearningOutcomes, DeveloperGuide, ContactUs and AboutUs.

Pull Request Test Coverage Report for Build 65

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

Totals

Change from base Build 43:
0.0%

Covered Lines:
920

Relevant Lines:
1228

💛  - Coveralls


View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 89287b2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionConnector.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionSyncResult.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionUser.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionWfmTeam.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 7f84539:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionConnector.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionSyncResult.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionUser.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionWfmTeam.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 8baa6c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionConnector.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionSyncResult.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionUser.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionWfmTeam.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@Kateyanne please go ahead and merge the branch, thanks!

Docs Build status updates of commit b8affa2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionConnector.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionSyncResult.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionUser.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionWfmTeam.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit e098b0a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionConnector.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionSyncResult.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionUser.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Get-CsTeamsShiftsConnectionWfmTeam.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/New-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Remove-CsTeamsShiftsConnectionTeamMap.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Set-CsTeamsShiftsConnectionInstance.md
:white_check_mark:Succeeded
View (teams-ps)

teams/teams-ps/teams/Test-CsTeamsShiftsConnectionValidate.md
:white_check_mark:Succeeded
View (teams-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


apply fog to mobs and players

fixed in https://github.com/michaljaz/web-minecraft/commit/9a7099f203481c6fa3a49c36f754a71065472111


Refactor google playstore release flow

This addresses

Extract PlayStore specific release functions to a separate class.
Use the base Installations::Error for Google::PlayDeveloper::Error and add reasons for all matched errors.
Deprecate upload_failed terminal state for DeploymentRun, use failed with a proper failure_reason instead.
Add failure reason to release_failed passport stamp.
Add fully release action for PlayStore. Move the action from DeploymentRun to StagedRollout.
Add a new state in StagedRollout to handle the full release in the middle of a staged rollout.
Minor bugfix: do not show halt action on UI till the staged rollout has moved to at least the first stage.

UI change to allow fully release:

Deployment (and staged rollout) in the UI after fully released:

I think the indirections are getting a bit out of hand, let's discuss.

This is what, in part, was bothering me about halt flow. It is becoming a little more obvious now with fully_release flow.
I have cleaned up the yields though and named the functions which yield a block better.


Add triagebot configuration

This enables assignment through triagebot on this repository, in preparation for the migration from highfive to triagebot for PR assignment.
cc rust-lang/highfive#258 rust-lang/triagebot#433

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Disasm (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

bors r+

bors r+

bors r+


chore(amplify-util-uibuilder): use introspection schema to generate c…

…omponents

Description of changes

Update codegen-ui version to 2.9.0: This version expands the function that processes schemas to accept the ModelIntrospectionSchema in addition to the MIPR.
Change the logic in amplify-util-uibuilder to use the introspection schema instead of the MIPR to generate components.

Issue #, if available

Description of how you validated changes
Used amplify-dev against a local CRA app to generate components.
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closed due to merge conflicts and opened a new one here - https://github.com/aws-amplify/amplify-cli/pull/12228


PATs List API - "requested operation is not allowed"

Tried calling the api documented here: https://learn.microsoft.com/en-us/rest/api/azure/devops/tokens/pats/list?view=azure-devops-rest-7.1&tabs=HTTP
Passed no additional parameters, received response:
{
"$id": "1",
"innerException": null,
"message": "The requested operation is not allowed.",
"typeName": "Microsoft.TeamFoundation.Framework.Server.InvalidAccessException, Microsoft.TeamFoundation.Framework.Server",
"typeKey": "InvalidAccessException",
"errorCode": 0,
"eventId": 3000
}
Also, there is no link to provide feedback at the bottom of the PAT List documentation so I had to go to the parent document (Tokens).

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

ID: 7ff22a24-a423-d794-2d80-9256298e1eaa
Version Independent ID: 4782ca92-bfc8-abeb-8f7b-98578d8e88e8
Content: Token Lifecycle Management REST API for Azure DevOps Services - Azure DevOps Services REST API
Content Source: docs-ref-conceptual/7.1/tokens/index.md
Product: devops
Technology: devops-ref
GitHub Login: @wnjenkin
Microsoft Alias: sergiikozak

You need to use AAD token to access this API it is mentioned in the overview
Personal Access Tokens


chore: automated PR to update ReleaseNotes for 202404.22.0 VHD

This is an automated PR to bump ReleaseNotes for the VHD release with image version 202404.22.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2415

Relevant Lines:
3055

💛  - Coveralls


Removed redundant words from Hyperlink text

Why do you think those words are redundant? I don't feel strongly about it, but happy to hear the reasoning before merging. Thanks!


Slim rasa

Fixes https://github.com/PerfectFit-project/virtual-coach-issues/issues/256.
I also spent quite some time to try to fix the pa evaluation dialog until I realized that there was still a bug for it. We can probably remove this dialog for now?
Edit: Now the pa evaluation dialog works. So this also fixes https://github.com/PerfectFit-project/virtual-coach-issues/issues/190.

I'm just fixing the rasa data validation errors, then I will merge it.


Doesn't work with FlowRouter

FlowRouter.route('/', {
  name: 'Main',
  subscriptions() {
    this.register('allTeams', Meteor.subscribe('allTeams'));
  },
  action() {
    mount(Basic, { content: <App /> });
  },
});

This doesn't work. But this does:
if (Meteor.isServer) {
  FastRender.route('/', function () {
    this.subscribe('allTeams');
  });
}

FlowRouter.route('/', {
  name: 'Main',
  action() {
    mount(Basic, { content: <App /> });
  },
});

Meteor: 1.5.1
Versions:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Try using staringatlights:flow-router
On Thu, Aug 17, 2017 at 4:08 AM, Anubhav Dhawan<EMAIL_ADDRESS>wrote:

FlowRouter.route('/', {
name: 'Main',
subscriptions() {
this.register('allTeams', Meteor.subscribe('allTeams'));
},
action() {
mount(Basic, { content:  });
},
});
This doesn't work. But this does:
if (Meteor.isServer) {
FastRender.route('/', function () {
this.subscribe('allTeams');
});
}
FlowRouter.route('/', {
name: 'Main',
action() {
mount(Basic, { content:  });
},
});
Meteor: 1.5.1
Versions:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AB-PgW-RVQ3LKSzs18KXP2p1rfgplzbAks5sZB8bgaJpZM4O6HCI
.

@abecks What's the difference with kadira:flow-router?

Kadira's version has been abandoned and is no longer updated. I'm
maintaining my version to work with my fork of Fast Render. There are also
other versions of flow router being maintained if you want to shop around.
On Thu, Aug 17, 2017 at 9:09 AM, Asad Dhamani<EMAIL_ADDRESS>wrote:

@abecks https://github.com/abecks What's the difference with
kadira:flow-router?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6#issuecomment-323119727,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB-PgbsCps2CCDi1icjpQ4eigqa-tq05ks5sZGWfgaJpZM4O6HCI
.

@abecks I used it like this:
loggedIn = FlowRouter.group({
    subscriptions: function (params, queryParams) {
        if (Meteor.isServer) {
            this.register("test", Meteor.subscribe("test"));
        }
    }
});

Along with the staringatlights:flow-router package, but it only seems to send over some data about the user in the HTML, and no data from the subscription I actually subscribe to ends up in the HTML.

Curious why you are using Meteor.isServer in the route like that?
If the route is defined on both the client and the server, all you need to
do is add fastrender: true, to the route definition:
const iContactDefaults = _.extend({}, defaults, {
  subscriptions (params, queryParams) {
    this.register('Newsletters', Meteor.subscribe('Newsletters'))
  },
  fastRender: true
})

Alternatively, you can specify the route manually on the server using
FastRender.route
On Thu, Aug 17, 2017 at 9:20 AM, Asad Dhamani<EMAIL_ADDRESS>wrote:

@abecks https://github.com/abecks I used it like this:
loggedIn = FlowRouter.group({
subscriptions: function (params, queryParams) {
if (Meteor.isServer) {
this.register("test", Meteor.subscribe("test"));
}
}
});
Along with the staringatlights:flow-router package, but it only seems to
send over some data about the user in the HTML, and no data from the
subscription I actually subscribe to ends up in the HTML.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6#issuecomment-323122825,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB-PgfrQYoJ_cgLHQ72czkoPdmTT0ofxks5sZGhTgaJpZM4O6HCI
.

I should add fastRender: true when using FlowRouter as well?
I did do that, and removed the Meteor.isServer. This is the only data I get in the html still:
<script type="text/inject-data">{"fast-render-data":{"collectionData":{"users":[[{"username":"REDACTED","emails":[{"address":"REDACTED","verified":true}],"_id":"REDACTED"}]],"AnalyticsUsers":[[{"services":{},"emails":[{"address":"REDACTED","verified":true}],"_id":"REDACTED"}]]},"subscriptions":{},"loginToken":"REDACTED"}}</script>

Can you provide a minimal reproduction? By the way, groups don't really
work properly in Flow Router, never have. You'll notice my technique is to
extend from a defaults object versus using the group.
On Thu, Aug 17, 2017 at 9:29 AM, Asad Dhamani<EMAIL_ADDRESS>wrote:

I should add fastRender: true when using FlowRouter as well?
I did do that, and removed the Meteor.isServer. This is the only data I
get in the html still:

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6#issuecomment-323125249,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB-PgQ09EBGt6aPVYb19X5eY6HecdMPJks5sZGp7gaJpZM4O6HCI
.

@abecks I'll try a few workarounds, and if it still doesn't work I'll try to make a reproduction. Can you  expand a little on the defaults object technique? I use groups throughout my app to bundle the routes together, so that'll be a lot to change.

Sure,
I started out trying to use groups too, and still have them in my code:
const adminRoutes = FlowRouter.group({  ... })

But I found that not all of the properties of the group are inherited for
each route (I can't remember which). There a bug report for it in the
kadira flow router repo somewhere. To workaround the issue, I make a
defaults object:
const defaults = {
  layout: 'Layouts_main',
  action: RouteAction
}

Then extend it for each route:
// Company Index
adminRoutes.route('/admin/clients', _.extend({}, defaults, {
  name: 'companyIndex',
  layout: 'Layouts_main_flush',
  template: 'Companies_index_page',
  title: 'Clients'
}))

I should also note subscriptions are not inherited if you define some in a
group and then some in a specific route, and I end up having to do things
like:
function companySubscriptions (params, queryParam) {
    this.register('Company', Meteor.subscribe('Company', params.companyId))
    this.register('CompanyQuizzes', Meteor.subscribe('CompanyQuizzes',
params.companyId))
    this.register('CompanyUsers', Meteor.subscribe('CompanyUsers',
params.companyId))
    this.register('ChildCompanies', Meteor.subscribe('ChildCompanies',
params.companyId))
}

companyRoutes.route('/companies/:companyId/users/new', _.extend({},
companyDefaults, {
  name: 'companyUsersCreate',
  template: 'Companies_users_new_page',
  title: 'Add User',
  subscriptions (params, queryParams) {
    companyDefaults.subscriptions.call(this, params, queryParams)
    this.register('Newsletters', Meteor.subscribe('Newsletters',
params.companyId))
  }
}))

On Thu, Aug 17, 2017 at 9:42 AM, Asad Dhamani<EMAIL_ADDRESS>wrote:

@abecks https://github.com/abecks I'll try a few workarounds, and if it
still doesn't work I'll try to make a reproduction. Can you expand a little
on the defaults object technique? I use groups throughout my app to bundle
the routes together, so that'll be a lot to change.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6#issuecomment-323128640,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB-PgdyXbxTJyL3ZvTnzdv8hbyOFgHw1ks5sZG17gaJpZM4O6HCI
.

Thanks for the writeup @abecks! I'll try your approach. I also noticed you have packages for active-route and flow-router-helpers, but they do not seem to be compatible with staringatlights:flow-router.
If I define the subscriptions on the group, it does not work. It works if I define it on individual routes, so I guess your object extension approach will be the best bet.

I'm using local builds of those packages, which I probably have unreleased
bug fixes for. I'll take a look at that later.
On Thu, Aug 17, 2017 at 10:00 AM, Asad Dhamani<EMAIL_ADDRESS>wrote:

Thanks for the writeup @abecks https://github.com/abecks! I'll try your
approach. I also noticed you have packages for active-route and
flow-router-helpers, but they do not seem to be compatible with
staringatlights:flow-router.
If I define the subscriptions on the group, it does not work. It works if
I define it on individual routes, so I guess your object extension approach
will be the best bet.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abecks/meteor-fast-render/issues/6#issuecomment-323133232,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB-PgeeGSZsc3CHLSyMeRDPd3ZU8MglTks5sZHGbgaJpZM4O6HCI
.

Guess I'll have to go the local route as well then, since this package does not work with kadira:flow-router. But your object extend approach worked for me, thanks so much for all the help! 😄

staringatlights:flow-router works! Thanks for the quick fix @abecks. You can close the issue :+1:

Cheers!


Support bash and awk verifiers

To process and validate a result with custom logic bash and awk verifiers could be an interesting option to write smaller assertions which are more complex.

so you're describing something like
echo hello:
  stdout:
    custom: "grep world"

The above would fail for example.


The application is not cleaning the fields when a registration is made.

Description:
The application is not cleaning the fields when a registration is made.
-Env:
Device: MacBook Pro
Google Chrome Version 54.0.2840.98 (64-bit)
STEPS:
Steps

Open the Crafter studio with the Event site.
Go to the “Register” section.
Fill out all the fields
Click on the Register Button.

CURRENT RESULT:
The registration was done correctly, but the fields were not cleared after clicking the register button.
https://www.screencast.com/t/7YB539A1
EXPECTED RESULT:
The registration was done correctly, but the fields should be cleared after clicking the register button.

Fixed

Bug verified and closed as fixed in build f2ef5e6.


Converting back to GH_PAT

It seems that the automated tools, which should have replaced all GITHUB_TOKEN back to GH_PAT did not work (de26db30a85c242b8e7106b8bbd68e8398dca6eb), which has broken my repositories. It's also caused these issues:
https://github.com/upptime/upptime/issues/287
https://github.com/upptime/upptime/issues/286
Merging this should fix theses issues. If this was intended to be GITHUB_TOKEN, please update documentation.
Thanks!

CLA Assistant Lite bot: Thanks for your submission! We ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by adding a comment below using this text:

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request

I have read the CLA Document and I hereby sign the CLA

Thanks for this PR! I've added it to master, there were some files missing.


add centerlinux

Description
Add ascii art for centerLinux by teahouselab
Features
Issues
TODO

Add ascii art for centerLinux by teahouselab


Call to a member function associate() on array

I'm trying to add items on array but I can't associate model with it. I'm getting this error
Call to a member function associate() on array
 $order = Eorder::where('id', $request->id)->first();

    $products = array();
    foreach($order->products as $product) {

        $products[] = ['id' => $product->id, 'name' => $product->name, 'qty' => $product->pivot->quantity, 'price' => $product->price];
    }

    $cartitems = Cart::instance('product')->add($products)->associate('App\Product');

try
$cartitems = Cart::instance('product')->add($products)->associate(App\Product::class);

also mention php & laravel versions

Still same error. The data is in the array.
"php": "^7.3|^8.0",
"laravel/framework": "^8.54",

Here is the data I'm getting from dd($cartitems);

Is there anyone who can help me?


user profile 401 Unauthorized

Describe the bug
The user registration and login were successfully, but the requests for current user profile /users/me return 401 Unauthorized.  I could not figure out why?
const TOKEN = 'eyJ0eXAiOiJKV1QiL.......';
axios.get(
    'http://localhost:8000/users/me', {
    headers: {
        'Authorization': `Bearer ${TOKEN}`,
    },
})
.then((response) => console.log(response))
.catch((error) => console.log(error));

Configuration

Python version : 3.9
FastAPI version : 0.104.1
FastAPI Users version : 12.1.2,  use with fastapi_users_db_sqlmodel

FastAPI Users configuration

import uuid
from typing import Optional,AsyncGenerator

from fastapi import Depends, Request
from fastapi_users import schemas
from fastapi_users import BaseUserManager, FastAPIUsers, UUIDIDMixin
# from fastapi_users.db import SQLAlchemyBaseUserTableUUID, SQLAlchemyUserDatabase
from fastapi_users_db_sqlmodel import SQLModelBaseUserDB, SQLModelUserDatabaseAsync
# from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from sqlalchemy.orm import DeclarativeBase
from core.globals import async_db
from apps.afkarena.models import Users as User
from apps.afkarena.utils import send_email

from fastapi_users.authentication import (
    AuthenticationBackend,
    BearerTransport,
    JWTStrategy,
)

SECRET = "CXgyOLiY-OzbkCwdjOp53g"

class Base():
    pass

class UserManager(UUIDIDMixin, BaseUserManager[User, id]):
    reset_password_token_secret = SECRET
    verification_token_secret = SECRET

    async def on_after_register(self, user: User, request: Optional[Request] = None):
        # await send_email(user.email, "Welcome to AFK Arena", "Welcome to AFK Arena, your account has been created. please verify your email.")
        print(f"User {user.id} has registered.")

    async def on_after_forgot_password(
        self, user: User, token: str, request: Optional[Request] = None
    ):
        print(f"User {user.id} has forgot their password. Reset token: {token}")

    async def on_after_request_verify(
        self, user: User, token: str, request: Optional[Request] = None
    ):
        print(f"Verification requested for user {user.id}. Verification token: {token}")

bearer_transport = BearerTransport(tokenUrl="auth/jwt/login")

async def create_db_and_tables():

    # await async_db.run_sync(Base.metadata.create_all(bind = async_db))
    # await async_db.async_commit()
    pass

def get_jwt_strategy() -> JWTStrategy:
    return JWTStrategy(secret=SECRET, lifetime_seconds=3600)

async def get_user_manager():
    user_db = SQLModelUserDatabaseAsync(async_db, User)
    yield UserManager(user_db)

auth_backend = AuthenticationBackend(
    name="jwt",
    transport=bearer_transport,
    get_strategy=get_jwt_strategy,
)

fastapi_users = FastAPIUsers[User, int](get_user_manager, [auth_backend])

current_active_user = fastapi_users.current_user(active=True)

#schemas
class UserRead(schemas.BaseUser[int]):
    pass

class UserCreate(schemas.BaseUserCreate):
    name: str

class UserUpdate(schemas.BaseUserUpdate):
    pass

Additional context
class Users(SQLModelBaseUserDB, table=True):
    __tablename__ = "user"
    __table_args__ = {'extend_existing': True}
    id: Optional[int] = Field(default=None, primary_key=True, nullable=False, title="ID")
    name: Optional[str] = Field(default=None, max_length=50, index=True, title="Name")
    is_artist: bool = Field(default=False, title="Is Artist",index=True,)
    avatar: Optional[str] = Field(default=None, max_length=255, title="Avatar")

    # Relationships
    artworks: List["Artwork"] = Relationship(back_populates="user")

    created_at: datetime = Field(default_factory=datetime.utcnow, title="Created At")
    updated_at: Optional[datetime] = Field(default=None, title="Updated At")
    last_login: Optional[datetime] = Field(default=None, title="Last Login")

I tested and didn't encounter this issue.
Could you provide F12 -> Network -> Headers and Preview information?

Both postman and axios js got the same issue. It seems that the issue comes from the authentication.Do I have to use a redis or db to store the token?

response headers:
content-length →25
content-type →application/json
date →Thu, 28 Dec 2023 04:28:23 GMT
server →uvicorn

Thanks. Both postman and axios js got the same issue. It seems that the issue comes from the authentication and the get_users_router has not been called during the request. Do I have to use a redis or db to store the token? I need help.

response headers: content-length →25 content-type →application/json date →Thu, 28 Dec 2023 04:28:23 GMT server →uvicorn

No need for Redis or a database to store the token.
If you create a minimal example repo, I can take a look for you.


How to change the SEO image and profile image?

Forgive my chinglish.
I tried to write the name of image without path in _config.yml and put the picture in the same path, but it did work when i run with jekyII serve underline. So can i ask how to change the image and where should i put my picture. Thanks for help.

Changing the SEO image and profile image are both in the README.md. You could also look at _includes/head.html and _layouts/post.html to see how the files are read from _config.yml.


CSS: transform-box page needs to be completed

https://developer.mozilla.org/en-US/docs/Web/CSS/transform-box
syntax needs to be updated to:
content-box | border-box | fill-box | stroke-box | view-box
Needs live example
Needs interactive example

Looks like this got done.


resolves STREAMS-357

now we can keep a stream alive for a minimum duration and change how often to check for a shutdown condition

travis failure is attributable to failure to deploy snapshots from jenkins
https://issues.apache.org/jira/browse/BUILDS-88

I will lazy consensus merge this after Sept 10, 12 PM CST


[Business Approvals Kit - BUG] Error when importing Business Approval Kit

Error when importing Business Approval kit

I am not sure how do I add this dependencies... I tried to follow the instruction from this link https://github.com/microsoft/powercat-business-approvals-kit/releases
Can someone help me please?

I was able to find the solution. Thanks.

I was able to find the solution. Thanks.

Hi, could you share your solution please!


Trivy scan is currently broken

@AndiMacht1 See https://github.com/LM-Development/aks-sample/actions/runs/11096971933/job/30868132208

Seems like it fixed itself

It broke itself again: https://github.com/LM-Development/aks-sample/actions/runs/11544883567

Would be great to enable a more verbose mode for the scan so that we can see the reason for failure


feat(Algebra/GroupWithZero): MulEquiv between WithZero (units) and the base group with zero

Also MulEquivs that add or remove WithZero on both sides
And some basic WithOne/WithZero API

bors merge


DF Chat Enhancements: chat-archive folder not auto-created

Module
Chat Enhancements (3.2.1
Describe the issue
Error in console says that chat-archive folder cannot be found because it isn't created.
To Reproduce
Steps to reproduce the behavior:

Open browser console
See error

Expected behavior
I would expect no error

Expected behavior
I would expect no error
not sure why, but this gave me a chuckle.
This issue is known, I just haven't had the chance to put any work into my modules recently due to life things. But I have a bunch of spare evenings coming up this week that I hope to use for some mod development. My first task is to get through all the DFCE issues since they've piled up the highest.


Changed artifact name to EzASM-VERSION-standalone.jar

The build script will have to change upon implementation since the artifact name has changed.

Build gives the following warnings.
Warning:  Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing.
Instead of attaching the assembly file: /home/runner/work/EzASM/EzASM/target/EzASM-0.2-standalone.jar, it will become the file for main project artifact.
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-deterministic!
Warning:  Replacing pre-existing project main-artifact file: /home/runner/work/EzASM/EzASM/target/classes

Not sure what they mean but we ought to figure those out. I'll look into it later, can't right now.