Add healthcheck for Invoker -> Action Container

To validate state of containers before use.

Description
In our deployment case (mesos/kubernetes) there are occasional cases where prewarm/warm containers fail outside of the usage of ContainerProxy, but ContainerProxy/ContainerPool are not aware of these failures. When this happens, when eventually the containers are used, there is a guarantee of failing the activation, since ContainerProxy assumes the prewarm/warm container is running fine, and it just sees a failure for /init or /run.
This may be more pertinent to ContainerFactory impls that launch containers on hosts other than the invoker (mesos, k8s, yarn), but since it is also possible for docker containers local to invoker to be interrupted by some other system, it may be useful in all cases as a preventative measure.
This PR introduces a tcp connection health check from invoker to each action container where:

prewarm containers will be connected periodically
failure to connect to prewarm will eventually (after configurable number of failures) cause the container to be destroyed and deplaced with a new prewarm container
warm containers (paused) will be connected immediately after resume, and immediately before usage for /run
failure to connect to warm will cause the job to be rescheduled and the warm container to be destroyed

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[x] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[x] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[x] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

Merging #4698 into master will decrease coverage by 21.86%.
The diff coverage is 29.35%.

@@             Coverage Diff             @@
##           master    #4698       +/-   ##
===========================================
- Coverage   77.92%   56.05%   -21.87%
===========================================
  Files         198      198
  Lines        8841     8939       +98
  Branches      614      647       +33
===========================================
- Hits         6889     5011     -1878
- Misses       1952     3928     +1976

Impacted Files
Coverage Δ

...sk/core/containerpool/docker/DockerContainer.scala
92.94% <ø> (+15.29%)
:arrow_up:

...cala/org/apache/openwhisk/core/yarn/YARNTask.scala
0% <ø> (-70%)
:arrow_down:

...la/org/apache/openwhisk/core/mesos/MesosTask.scala
0% <ø> (-73.81%)
:arrow_down:

...pache/openwhisk/core/containerpool/Container.scala
82.71% <0%> (+1.46%)
:arrow_up:

...pache/openwhisk/core/invoker/InvokerReactive.scala
80.7% <100%> (+79.82%)
:arrow_up:

...la/org/apache/openwhisk/common/TransactionId.scala
90.47% <100%> (-3.08%)
:arrow_down:

...in/scala/org/apache/openwhisk/common/Logging.scala
64.48% <100%> (-13.55%)
:arrow_down:

.../scala/org/apache/openwhisk/core/WhiskConfig.scala
94.81% <100%> (+2.27%)
:arrow_up:

.../openwhisk/core/containerpool/ContainerProxy.scala
67.42% <17.04%> (-24.43%)
:arrow_down:

...e/openwhisk/core/containerpool/ContainerPool.scala
89.37% <81.25%> (+4.81%)
:arrow_up:

... and 146 more

Continue to review full report at Codecov.

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

Codecov Report
Attention: Patch coverage is 92.45283% with 12 lines in your changes missing coverage. Please review.

Project coverage is 78.85%. Comparing base (a7482ca) to head (08f71a8).
Report is 397 commits behind head on master.

Files with missing lines
Patch %
Lines

.../openwhisk/core/containerpool/ContainerProxy.scala
90.81%
9 Missing :warning:

...e/openwhisk/core/containerpool/ContainerPool.scala
91.66%
3 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4698      +/-   ##
==========================================
- Coverage   83.58%   78.85%   -4.73%
==========================================
  Files         198      197       -1
  Lines        8868     8959      +91
  Branches      613      611       -2
==========================================
- Hits         7412     7065     -347
- Misses       1456     1894     +438

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Does the player support a loop play(repeat) ?

Hi guys,
I couldn't find anything about a loop play T T.

I did this and It works.However, anybody knows an easier way to do this?
My Code
======
func vgPlayer(_ player: VGPlayer, playerDurationDidChange currentDuration: TimeInterval, totalDuration: TimeInterval) {
    debugPrint("\(currentDuration)/\(totalDuration)")

    if currentDuration == totalDuration
    {
        self.player?.replaceVideo((self.player?.contentURL)!)
        self.player?.play()
    }
}


Circle ci dockerized tests

I opened it by mistake too early, wanted to do it to my fork so that's why I closed it.


html2canvas works well but html2pdf renders a blank pdf

First of all, thank you for providing such a great library! I encountered a problem when rendering a pdf with an image file and am seeking for your help. Below is my sample code.
import React, { Component } from 'react';
import html2canvas from 'html2canvas';
import html2pdf from 'html2pdf.js';
import uuidv1 from 'uuid/v1';

class TestHtml2Canvas extends Component {

  async componentDidMount() {
    this.testHtml2Canvas();
    this.testHtml2Pdf();
  }

  async testHtml2Pdf() {
    const element = document.getElementById('target');

    html2pdf(element, {
      margin:       1,
      filename:     uuidv1() + '.pdf',
      image:        { type: 'jpeg', quality: 0.98 },
      html2canvas:  { dpi: 300, letterRendering: true, proxy: 'http://localhost:3100' },
      jsPDF:        { unit: 'in', format: 'letter', orientation: 'portrait' }
    });
  }

  async testHtml2Canvas() {
    const element = document.getElementById('target');

    const canvas = await html2canvas(element, {
      proxy: 'http://localhost:3100',
      height: 600
    });

    console.log('TestHtml2Canvas -> asynccomponentDidMount -> canvas', canvas);

    element.appendChild(canvas);
  }

  render() {
    return (

Another document

IMF / AU / National Currency per U.S. Dollar, end of period, National Currency per US Dollar, Rate (PGI.ENDE_XDC_USD_RATE.Q)

    );
  }
}

export default TestHtml2Canvas;

As suggested in the sample code, I launched a proxy server on localhost and converted the same DOM element, #target, using html2canvas and html2pdf, respectively. Html2canvas returned a canvas with the image file on it correctly, but unfortunately, html2pdf returns only a blank pdf file.
Can you please help me how to solve the problem? Thanks!

online image will display blank


Cell drag formula updation fix

Closes #500
This PR introduces changes to the dropCell.ts file to fix the issue of non-updation of formulae upon dragging the value of static cells to other cells. For left right up and down drag directions, I have  changed the existing if condition to allow running the formula groups even if the dragged cell itself does not have a defined .f value. To account for this, I am now conditionally setting the final value and formula of the cell based on whether it has a formula or not.
The existing implementation for right and left had an unrelated bug as well, where i and j were used in the incorrect order while calling formula.execFunctionGroup. This PR fixes this behaviour as well.
Demos -
https://github.com/ruilisi/fortune-sheet/assets/22197708/bb0fc36a-a3d9-462b-ab1e-1f130e129bcd
https://github.com/ruilisi/fortune-sheet/assets/22197708/412cffaa-c669-4ae3-9d77-3f26a9f319fb

Please have a look @zyc9012

@zyc9012 @ZhengIce

Thanks @sanchit3008. Sorry for the delayed review, I'll have a deep look tomorrow.

Thanks for pointing this out @zyc9012, it works as expected. I wonder why this function call was commented out initially though 🤔
I have updated this PR as well with the changes you have suggested.

@zyc9012, Can you please release the new version for this fix

@architmmmec Released.


Support guid id

This is something the developer can do independently of ngrx-data. Write your own selectId to access it.

How to implement selectId.
In the EntityStoreModule define as ...
export const entityMetadata: EntityMetadataMap = {   Hero: {},   Villain: { selectId: model => model.uuid} };
Other options include
export interface EntityMetadata<T = any, S extends object = {}> {
entityName: string;
entityDispatcherOptions?: Partial;
filterFn?: EntityFilterFn;
selectId?: IdSelector;
sortComparer?: false | Comparer;
additionalCollectionState?: S;
}


Fixed error when handling non-integer values in merged_lead_id in Snowflake

Are you a current Fivetran customer?
Yes. Lynzi, VP Data Strategy & Operations, Renaissance Learning, Inc
What change(s) does this PR introduce?
The 'cast' to integer in this model errored out on the 3 values in our Marketo leads table with non-numeric values in merged_lead_id. Replaced cast with try_cast to avoid this on Snowflake.
Does this PR introduce a breaking change?

[ ] Yes (please provide breaking change details below.)
[x] No  -- this works in snowflake

Is this PR in response to a previously created Issue

[ ] Yes, Issue [link issue number here]
[ x] No

How did you test the PR changes?

[ ] CircleCi
[x] Other -- I updated it in my local dbt environment and ran dbt test and dbt run successfully

Select which warehouse(s) were used to test the PR

[ ] BigQuery
[ ] Redshift
[x] Snowflake
[ ] Postgres
[ ] Databricks
[ ] Other (provide details below)

Provide an emoji that best describes your current mood

:dancer:
Feedback
We are so excited you decided to contribute to the Fivetran community dbt package! We continue to work to improve the packages and would greatly appreciate your feedback on our existing dbt packages or what you'd like to see next.

@lynziz my apologies for just seeing this PR! Thank you so much for opening the PR. I will give it a review ASAP.

@lynziz I just tested this on my end and was not seeing the same error on the original package within snowflake. Would you be able to provide some more context to your below statement?

our Marketo leads table with non-numeric values in merged_lead_id

My understanding is these id's should not have non-numeric characters within it?


ModuleNotFoundError: No module named 'src'

Hi,
I am getting a new error 'ModuleNotFoundError: No module named 'src''. Please let me know how I can resolve this.
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\127791\AppData\Local\Continuum\anaconda3\TICC\TICC_solver.py", line 11, in
from src.TICC_helper import *
ModuleNotFoundError: No module named 'src'

Hi! This stems from the same error as #50, where it appears your code is running in the wrong directory. "src" is a folder in the TICC directory, so if you haven't changed anything, TICC_solver should be able to find it. For example, you can create a script called runTICC.py (and put it in the TICC directory, similar to example.py), and it should be able to find "src". Thanks!


🐛 Present view on keyWindow over iOS 17

I had a issue that when the view doesn't have the uiViewController, it just reset the binding item. And weirdly, this happens only in iOS 17.
So I present the view on the key window (not uiView.viewController), when in iOS 17.

Relates to #41


[BUG] TimeSeriesPredictor accepts invalid fit kwargs arguments.

EDITED by @Innixma:

Note: The real issue here is that TimeSeriesPredictor is not raising an exception upon being passed an invalid kwarg. TimeSeriesPredictor should adopt TabularPredictor's invalid kwarg handling logic to properly error in this scenario. Code in TabularPredictor for this logic should be moved to a generic location and re-used.

========= Original Message =========
When using excluded_model_types argument in the fit method of TimeSeriesPredictor the excluded model is still used.   Note that presets argument has also been used.
Using the sample code from the tutorial and adding 'excluded_model_types':
predictor = TimeSeriesPredictor(
    path="autogluon-m4-hourly",
    target="Value",
    prediction_length=48,
    eval_metric="MAPE",
).fit(
    train_data=ts_dataframe,
    presets="fast_training",
    time_limit=30,
    excluded_model_types=["ETS"]
)

When executing we see the following:
Models that will be trained: ['Naive', 'SeasonalNaive', 'ETS', 'Theta', 'ARIMA', 'AutoGluonTabular', 'DeepAR']
Full code: https://gist.github.com/rjattrill/74d2aee51f02ab98dc7a8aa461699f32
Input file: https://gist.github.com/rjattrill/ff6fb7f06c771919759c33dcb095214e
Note: The reason for trying to exclude this is that the ETS model doesn't seem to observe the time_limit for training - which might be a separate issue.
Installed Versions

from autogluon.core.utils import show_versions
show_versions()
NOTE: Redirects are currently not supported in Windows or MacOs.

 This is something we consider adding in a future version. We're also looking into ways of ensuring that ETS and other models based on statsmodels respect the time limit but that is still work in progress, unfortunately.
Currently, as a workaround, you can manually specify what models should be trained using the hyperparameters argument to fit, as in follows:
predictor.fit(
    train_data=ts_dataframe,
    hyperparameters={
        "Naive": {},
        "SeasonalNaive": {},
        "Theta": {},
        "ARIMA": {},
        "AutoGluonTabular": {},
        "DeepAR": {},
    }
)

As a general comment, 30 seconds is a very restrictive limit for the M4 hourly dataset as it has >300K rows, so only a few baseline models can be trained within this time limit.

@shchur The real issue here is that TimeSeriesPredictor is not raising an exception upon being passed an invalid kwarg. TimeSeriesPredictor should adopt TabularPredictor's invalid kwarg handling logic to properly error in this scenario. Code in TabularPredictor for this logic should be moved to a generic location and re-used.
I've renamed the issue to make this clearer.

This was a very fruitful issue that led to us fixing multiple problems in the library 😄. Thanks!


Testing pre release alpha release 11, as many changes went after gameday

General Testing

Job Submission
Job Listing
Job Status
Piping Operation

Data Handling

Input Data
Output Data

Error Conditions


Question: Build failure in unique_identifier_msgs

Hi! I'm trying to integrate micro-ros into an existing zephyr project using this module.
The build fails, and it seems like what's happening is that it tries to build message-definitions for fastrtps, which is not possible due to a fastcdr only being installed for "64bit", and i'm building for my ARM microcontroller.
(Why does this even happen? If i understand correctly ROS2 galactic uses cyclone exclusively, and micro-ros doesnt use either of those...)
I would appreciate if anyone has experienced this before and knows a solution, or has ideas on how to solve this.
CMake Error at /opt/ros/galactic/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_c-extras.cmake:5 (find_package):
  Could not find a configuration file for package "fastcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /opt/ros/galactic/lib/cmake/fastcdr/fastcdr-config.cmake, version: 1.0.20 (64bit)

Call Stack (most recent call first):
  /opt/ros/galactic/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cConfig.cmake:41 (include)
  /home/jonasotto/io-board-software/modules/libmicroros/micro_ros_src/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /home/jonasotto/io-board-software/modules/libmicroros/micro_ros_src/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /home/jonasotto/io-board-software/modules/libmicroros/micro_ros_src/install/share/rosidl_default_generators/cmake/rosidl_default_generators-extras.cmake:21 (find_package)
  /home/jonasotto/io-board-software/modules/libmicroros/micro_ros_src/install/share/rosidl_default_generators/cmake/rosidl_default_generatorsConfig.cmake:41 (include)
  CMakeLists.txt:15 (find_package)

---
Failed   <<< unique_identifier_msgs [3.52s, exited with code 1]

Some relevant information:

board: teensy41
zephyr version: mostly up-to-date main branch (our fork with a few additional drivers)
ROS2 galactic

Could you provide steps for replicating?
You should be mixing workspace... when using this module you should not have any ROS 2 workspace sourced.

when using this module you should not have any ROS 2 workspace sourced

this turned out to be (one of) the problem(s), thank you!
I was also getting linker errors in the test_interface_files package (not finding typesupport functions), but that was resolved by setting STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_microxrcedds_c.
I will report back if i stumble upon this again, in an isolated, reproducable manner (which is not plagued by a ton of issues relating to integration into an existing project...).
As this doesnt really seem to be an issue with this module, i'm going to close this, altough not having ROS2 sourced may be something worth mentioning in build-instructions (in my case, sourcing /opt/ros/... was automated, as it's usually needed...).


Exporting graphics to primitive vector objects

Firstly, thank you for having such a great tool openly available. I am able to figure out most things out from the examples in https://vedo.embl.es/ but when I try to access the tabs io and pointcloud, from https://vedo.embl.es/content/vedo/index.html, I get a 403 error..
My question is basically how can I export objects from vedo, like a mesh, into primitive vector files such as a polygon or a line. I am looking at exporting them as vtk extensions in ascii format.
Thanks for the help!

Firstly, thank you for having such a great tool openly available. I am able to figure out most things out from the examples in https://vedo.embl.es/ but when I try to access the tabs io and pointcloud, from https://vedo.embl.es/content/vedo/index.html, I get a 403 error..

Thanks for your interest in the tool and for your feedback,
Yup! some weird permission problem, should be fixed now.

My question is basically how can I export objects from vedo, like a mesh, into primitive vector files such as a polygon or a line. I am looking at exporting them as vtk extensions in ascii format.

as simple as
mesh.write('mymesh.vtk', binary=False)

Marco, I really appreciate the speed at which you respond. Any clue whether we will be able to access the io and pointcloud documentation soon?
Thanks again for the great work

Your're welcome - the docs links are already fixed, are you able to visualize it (try reload the page)?

Yes, the links now work, thanks. I tried exporting the file as you suggested and then reading it in with paraview but when I save as a binary it works well, but as an ascii, it is not read well by paraview. You can see the difference in the screenshot below (binary is blue points, ascii is white points).
For me its not a big deal, I can save it in binary format. Just letting you know ;)

interesting... this might point to some version mismatch btw the underlying vtk that vedo uses and the vtk used by paraview..  thanks for reporting it.


Found a flaw calling the same endpoint from multiple locations.

I was trying to find a solution to a problem and noticed this module has the same flaw. Basically when you have two components that require the same API endpoint, it will fetch the data from that API endpoint twice.
I solved this by adding the fetch promise to the context provider by calling a function that sets it on the this scope in the provider from the hook. You could also use a useRef. Then in the hook I call a getData function that will return undefined/the fetch promise/the data from the context provider.

You did the right thing that sharing the common data via React context to many components is a correct approach and that is able to avoid calling the same API by multiple times.
To be handy, I can support an additional option called useCache which can meet your requirement that only fetch the same API once. However, you need to be aware that when the cache data should renew and update it manually.
For example:
// in component A
const [data, { loading }, request] = useApi({
  url: '/api/foo/bar',
  { useCache: true }
})

// in component B
const [data, { loading }, request] = useApi({
  url: '/api/foo/bar',
  { useCache: true }
})

// to renew (update the cache data manually)
request()

Please let me know if it works for you and I will implement the enhancement.

In my case, the fetch calls where happening at the same time, so what my implementation did was store the currently running fetch/promise and others that try fetch the same endpoints check if it already exists. I think these are 2 seperate things. 1. dont refetch when some other component already initiated the fetch. It should be the default in my opinion because such a recently initiated fetch should not have other components needing a few miliseconds/seconds in difference. 2. allow for using cache incase a consumer got injected asynchronously so that it can use the cached value. Not sure if 2 is already possible in your module but this would be my favored solution if I was to use it.

In my case, the fetch calls where happening at the same time, 2 or more components demanding the same data at page transition.
A useCache option could be usefull when you dont care about revalidating data after a while and it is required again.
I think it should be default behaviour to re-use previous fetches to the same enpoint if they still running.
My gut feeling says that a downside could be that component X tries to fetch data Y and is taking very long. 10 seconds progressed and compent Z just joined and also needs data Y. This will end up in the code re using the fetch from component X which got stuck some how while a new fetch could resolve. This could than be solved by clearing old fetches and reinitiating when # time has passed and it was requested again at a later time. I'm unsure if a previously made 'stuck' fetch will always resolve if a new request at a later time is resolving. I feel like there can be a function stuck on the backend of sorts that could possible resolve if like 5 seconds has passed since the last 'stuck' fetch call.
If the above was unclear or you want some help setting it up, id be happy to help.

Sorry for the late update these days, I've implemented the cache mechanism for particular API endpoints or all.
Please refer to alwaysUseCache.
Invoking request() triggers re-validation which means calling API forcibly regardless of cache data.
In addition, setting options.useCache to false will never use cache data.


[Bug]: The obmysql stored procedure did not update after clicking the refresh button

ODC version
odc433
OB version

What happened?

What did you expect to happen?
Page Update
How can we reproduce it (as minimally and precisely as possible)?
Create stored procedure, modify stored procedure, refresh
Anything else we need to know?
No response

Fixed In Commit 6898939a34e04c5ab70575388768e92eaee535bf
------
畅晚
Wed Dec 18 18:18:35 2024 +0800


make enter key select previously chosen IdP

it already does for the JS version.

Also for the non-JS version.

What if there is no previously chosen and the search results in only 1 entry?


Record activity toggle UI

💻 Environment
Platform: macOS
📒 Description
Implement a nice-looking toggle switch for Record activity (design details in Zeplin)

We decided to not implement the new UI Switcher on the Timeline since it's non-standard control in term of macOS and iOS. Ref: https://toggl.slack.com/archives/C029WCX0T/p1567580700003500?thread_ts=1567577862.001600&cid=C029WCX0T


Change name to url

👷 Deploy Preview for alexis-mora processing.
🔨 Explore the source changes: 06ed5996619e864292d65bab652f2a471c005594
🔍 Inspect the deploy log: https://app.netlify.com/sites/alexis-mora/deploys/610f83514c06300007ba107f


Layer 3 C++ code must never directly access Index.ptr, NumpyArray.ptr, or RawArray.ptr contents

Right now, there seem to be no exceptions to the rule that layer 3 (i.e. libawkward.so, as opposed to libawkward-cpu-kernels.so) code never iterates over the raw buffers, but there are a few isolated cases where it accesses the first or last element. These have to be turned into kernels (albeit trivial ones) because when the buffers are hosted on a GPU, any direct access would cause a segmentation fault.
This can be done in a visual inspection sweep over the code—it wouldn't take longer than an afternoon. Suspicious cases look like
offsets_.get().ptr()[0]      // (first)

or
offsets_.get().ptr()[offsets_.length() - 1]      // (last)

Some are assignments:
offsets_.get().ptr()[0] = 0;

They should all be centralized in Index methods, like Index::getitem_at_nowrap and those methods should call the kernels.

It's a bug—a future bug, not a present one, but still.


Difficulty Parsing Multiple Arguments in Admin Interface

Issue Summary:
When using django-admin-commands2 to run a management command with multiple parameters from the Django admin interface, the command fails to execute correctly. It appears that the single input field provided for arguments (args = forms.CharField(required=False, label=_('Arguments to send to command'))) is not correctly parsing or passing multiple arguments to the management command.
Command Details:
The management command in my project requires two arguments: --from-date (a date string) and --step (an integer). The command is implemented in Django and works as expected when run from the command line.
What I did:

Navigate to the Django admin interface where the command is listed.
In the provided text field for arguments, enter the arguments in various formats (e.g., --from-date="2021-01-01" --step=5, --from-date "2021-01-01" --step 5, etc.).
Execute the command.
The command does not run successfully and reports a missing --step argument.

Expected Behavior:
The admin interface should correctly parse and pass multiple arguments to the management command.
Actual Behavior:
The command fails with an error indicating that the --step argument is missing, regardless of how the arguments are formatted in the input field.
Environment:
Django Version: 3.2
django-admin-commands2 Version: 1.1.3
Python Version: 3.9

Thank you for the report.
I will check and feed you back


Clover excludes directory in test runtime classpath

We have a multi modules (A & B) project which the test cases in B requires test cases in A. Therefore, in B, we have the following dependency:
testCompile project(':A').sourceSets.test.output
Tests in B are working fine, however, when Clover is used, there are compilation errors complaining classes in module A are missing.
We suspected that the classes directory is excluded in the test runtime classpath by Clover:
https://github.com/bmuschko/gradle-clover-plugin/blob/master/src/main/groovy/org/gradle/api/plugins/clover/CloverPlugin.groovy
private FileCollection getTestRuntimeClasspath(Project project, Test testTask) {
            testTask.classpath.filter { !it.directory } + project.configurations.getByName(CONFIGURATION_NAME)
}

I agree with @phasebash regarding this use case. I am closing this issue as I believe it does not represent a reasonable use case.


Tweaks to Design landing page per Yoon

Docs Build status updates of commit 66baaeb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/design.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Case sensitivity in Postgres

I am having a breaking problem using the lastest version (2.2) and Postgres. It seems all the queries sent to the db are lowercased, and this breaks completely as we are using camel case in our DB.
It seems that names provided for tables and fields are being treated as case insensitive. Example code:
@Table("Patient")
public class Patient extends Model {
}

// insertion
new Patient()
                .set("firstIdentifier", "aa")
                .saveIt();

First error was on not finding relation "patient" and I can solve that by renaming the table to lower case. Second error is this:
org.javalite.activejdbc.DBException: org.postgresql.util.PSQLException: ERROR: column "firstidentifier" of relation "patient" does not exist
  Position: 22, query: INSERT INTO Patient (firstIdentifier) VALUES (?), params: aa
	at org.javalite.activejdbc.DB.execInsert(DB.java:696)
	at org.javalite.activejdbc.Model.insert(Model.java:2800)
	at org.javalite.activejdbc.Model.save(Model.java:2735)
	at org.javalite.activejdbc.Model.saveIt(Model.java:2660)
	at com.controllers.TaskElaborationHandler.handle(TaskElaborationHandler.java:36)
	at spark.RouteImpl$1.handle(RouteImpl.java:72)
	at spark.http.matching.Routes.execute(Routes.java:61)
	at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:130)
	at spark.servlet.SparkFilter.doFilter(SparkFilter.java:173)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
	at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
	at com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(ParseBlobUploadHandler.java:120)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182)
	at com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(AppEngineWebAppContext.java:171)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:297)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
	at org.eclipse.jetty.server.Server.handle(Server.java:534)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
	at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:202)
	at com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81)
	at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:693)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:655)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:625)
	at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:819)
	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:274)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: column "firstidentifier" of relation "patient" does not exist
  Position: 22
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155)
	at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:132)
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)
        at org.javalite.activejdbc.DB.execInsert(DB.java:675)
	... 38 more

The same problem as this thread
I can't go around modifying the case of every column in the database. Is there any other solution?
Thanks

This is very odd, as there is a spec that covers these cases. Please, see DDL: https://github.com/javalite/activejdbc/blob/e4410b7f711e8660d62feb15a5baf80bec2b2045/activejdbc/src/test/resources/postgres_schema.sql#L199
The model:
https://github.com/javalite/activejdbc/blob/18f20c8515515d50129bcf64e64750381a90754f/activejdbc/src/test/java/org/javalite/activejdbc/test_models/WildAnimal.java#L11
The Spec:
https://github.com/javalite/activejdbc/blob/9c509d151bc97171b53bbea5c07491989b22b0ba/activejdbc/src/test/java/org/javalite/activejdbc/CaseSensitiveSpec.java#L12-L11
The PostgreSQL build:
https://travis-ci.org/javalite/activejdbc/jobs/426484311
This spec was written in 2016 and has been passing ever since.
I just re-ran this test locally, and it generates the following logs:
{"level":"INFO","timestamp":"Thu Sep 13 08:43:25 CDT 2018","thread":"main","logger":"org.javalite.activejdbc.DB","message":{"sql":"INSERT INTO 'Wild Animals' ('Name') VALUES (?)","params":["Cheetah"],"duration_millis":3}}
{"level":"INFO","timestamp":"Thu Sep 13 08:43:25 CDT 2018","thread":"main","logger":"org.javalite.activejdbc.DB","message":{"sql":"SELECT COUNT(*) FROM 'Wild Animals'","params":[],"duration_millis":2}}

As you can see, the behavior of the framework is correct.
Now, maybe there is something specific about your table or DB settings? Can  you reproduce this in your environment with a simple table and if yes, publish the DDL here so we can try it?

Also, please ensure you have one and only one version of ActiveJDBC on your classpath, and it is 2.2.

Thanks. There is only one version of ActiveJDBC.
In fact the generated query in the stacktrace is case sensitive:
Position: 22, query: INSERT INTO Patient (firstIdentifier) VALUES (?), params: aa
Could this be an issue with the underlying driver (org.postgresql.jdbc) ?

Anything is possible, this is why I upgraded the driver, please see commit above. You are correct, the query  ActiveJDBC reports in the exception is properly formatted. Can you execute the same query manually on the PostgreSQL CLI and see if you get the same error?

I checkout out the tests you provided and noticed that all names are surrounded by escaped double quotes.
So basically the code below works:
@Table("\"Patient\"")
public class Patient extends Model {
}

// insertion
new Patient()
                .set("\"firstIdentifier\"", "aa")
                .saveIt();

It seems all names in postgres that are not double quoted are transformed to lower case. Coming from mysql, I was not aware of this strange behaviour.
At this point I'll just override the model methods to do this by default in this project.
Thank you for your help.

@goreply-support maybe  you can rename the columns in the table? Model attributes are used in  lot of places, so overriding methods may not be the best idea

Thanks for the tip. Renaming columns is not a feasible solution at this point. I'll just manage quoted names and push for mysql and proper db naming conventions next time 😅

good luck!


Mobile: Sidebar

The sidebar on the dashboard can currently not be moved or disabled, resulting in a somewhat horrible mobile user experience. A swap-in/out solution should help.

This might be worth a look: http://stackoverflow.com/questions/19041801/bootstrap-3-0-sliding-menu-from-left

I also made a somewhat simple implementation in Oxide that you could just copy (https://github.com/nitrogenjs/oxide/blob/master/app/views/application.js). I simply used jQuery to animate the width of the panel and the margin of the main content div.


Add iOS 15 Swift Playgrounds 4 version 🆕

This version uses new APIs available on iOS 15, as well as other new additions since the older projects.

API
Description

async/await
New way to handle concurrency

refreshable
Pull to refresh

task
Replaces onAppear and supports concurrency/cancellable tasks upon the views lifecycle

@MainActor
Calls methods on the main thread, replaces the DispatchQueue.main.async

@main
Replaces UIKit completely, SwiftUI can now be used for the AppDelegate

This also fixes an issue where running on an iPad shows in split master/detail view via .navigationViewStyle(.stack).
Development experience on Swift Playgrounds 4

Development on Xcode 13.2.1

Screenshot

Thank you!!!


feat: add 'how to build an nft' index page

There are a number of NFT-focused pages, but there is not a single one that unifies everything together. Adding this helps with SEO as well as simplifies link sharing. Additionlly, some of the SEO keywords per page have been updated, and the 'sidebars' also now include this index page in the 'Quickstarts' section.

@andrewxhill lmk if this is what you were thinking—i cross linked to this page in all of those that were NFT oriented: https://docs-6spxc1mc8-tableland.vercel.app/how-to-build-an-nft

(had to update the base branch if i could get another 👍 @andrewxhill)


Use API's v3 Invitations Endpoint

For POST /account/accept/ok, use API's new v3 endpoint.

Ready for review @heroku/api

Thanks!

Thank you!


IC-653 Improve logging configuration for production environments.

What does this pull request do?
Add logback configuration which splits the logging config into local/prod
sections. local config behaves the same as normal, coloured output pretty printed at DEBUG level.
the non locl config formats messages as json at WARN level.
What is the intent behind these changes?
structured log messages in production environments.

🎉


Revert automatic lower() on dns records at generation and migration

Retain case as entered.

Does this include SOA primary and contact?

sure
On Thu, Feb 26, 2015 at 10:48 AM, drkitty<EMAIL_ADDRESS>wrote:

Does this include SOA primary and contact?
—
Reply to this email directly or view it on GitHub
https://github.com/OSU-Net/cyder/issues/876#issuecomment-76241304.

Resolved by https://github.com/OSU-Net/cyder/issues/884


How to add auto smoothness in Godot in Android

Tested versions
4.1.2
System information
Mobile / Android
Issue description
How to add auto smooth to objects in Godot 4 on an Android device As in Blender, because on Android there is no auto smoothness option in any 3D modeling application
Steps to reproduce
nothing
Minimal reproduction project (MRP)
nothing

This isn't the place to ask support questions, please use the other community channels instead

This isn't the first time you've opened reports here for support questions and been told not to, please do not do this again

Sorry, I will stop doing that, thank you


Add map_union_min and map_union_max aggregate functions

Description
While Presto does not currently include the functions map_union_min and map_union_max, these functions are frequently used in our own use cases. We are interested in knowing whether the Velox community would be open to considering the addition of these functions. Any feedback is highly appreciated.

@mbasmanova Would you mind to review this PR or give us some feedback? Thanks.

@whutjs

these functions are frequently used in our own use cases.

Would you clarify a bit about this use case? Which engine do you use?
Have you considered opening an issue in PrestoDB to add these functions?
CC: @kagamiori @kgpai @kaikalur

@mbasmanova

Would you clarify a bit about this use case? Which engine do you use?

We don't utilize any open-source query engines; instead, we develop our own query engines from scratch. Our engine is designed for querying data from a time-series database and is primarily implemented in Java. Last year, we began integrating Velox into our Java query engine, resulting in impressive performance improvements. Bravo to the Velox project! :)
Due to the distinct data model of our time-series database, we utilize the map<long, double> type to store the time-series data. This is why we require additional aggregation functions beyond map_union_sum.

Have you considered opening an issue in PrestoDB to add these functions?

I am not familiar with PrestoDB actually.

@whutjs Thank you for sharing this context. Happy to hear you found Velox useful.

Due to the distinct data model of our time-series database, we utilize the map<long, double> type to store the time-series data. This is why we require additional aggregation functions beyond map_union_sum.

I see. Would it be fair to say that you may need to apply any aggregate function in a map_union_xxx style, not only sum, min, max?

I am not familiar with PrestoDB actually.

PrestoDB project is hosted at https://github.com/prestodb/presto . Velox comes with 2 sets of function packages: PrestoSQL and SparkSQL. Presto package includes functions from Presto. These functions signatures and semantics match Presto 100%. Spark package includes functions from Spark and these match Spark semantics with ANSI SQL configuration disabled.
Typically, engines other than Presto (Prestissimo) and Spark (Gluten) choose which function package to use to provide their own package. In the latter case these functions are placed in the engine's code repo.
To add map_union_min/max to Velox repo, these need to be available either in Presto or Spark. Hence, if you are interested, you may open an issue in PrestoDB GitHub repo and see if folks there would be open to add these functions. Once they are available in PrestoDB, we can add them to Velox.
Here is a recent issue that added a number of linear regression aggregate functions to PrestoDB: https://github.com/prestodb/presto/issues/21328 and then to Velox: https://github.com/facebookincubator/velox/pull/8381
Hope this helps.

@mbasmanova

Would it be fair to say that you may need to apply any aggregate function in a map_union_xxx style, not only sum, min, max?

You are right. We need map_union_min/max/avg/count/sum aggregate functions currently.

To add map_union_min/max to Velox repo, these need to be available either in Presto or Spark. Hence, if you are interested, you may open an issue in PrestoDB GitHub repo and see if folks there would be open to add these functions. Once they are available in PrestoDB, we can add them to Velox.

I understand now. Thanks


MessageEvent location href is inaccessible

Currently there's no way to get the href of the source location of a MessageEvent. This is very important for applications that exchange messages with multiple iframes that have the same origin; without it, there's no way to tell which frame sent which message.
A reproduction is available at https://github.com/nex3/post_message_test.
See also issue #21747.

It looks like the _LocationCrossFrame has a setter for href but not a getter.
I would imagine it should be safe to add a getter then, but we've also moved away from dart:html for the use case that was impacted.


Umbraco v14

When trying to update my project from v13.3.2 to v14 I get the following error:
Detected package version outside of dependency constraint: Badgernet.Umbraco.WebPicAuto 1.1.3 requires Umbraco.Cms (>= 13.0.0 && < 14.0.0) but version Umbraco.Cms 14.0.0 was resolved.
Will WebPicAuto be compatible with v14 soon?
Thanks!

Hi, yes, i am working on a new version for Umbraco 14. I cant really say when it will be available since i am building it from scratch (At least the Frontend part), because of the new Backoffice in Umbraco 14.

Awesome! Thanks for the feedback!

@Lordchapter If you are still interested, you can check out the new version that works with Umbraco 14 & 15  here.


TLDs in actions page should be sorted alphabetically

Currently support manual sort when clicking on the table head.

The sorting should be case insensitive.


Entry times as UTC with new TimestampInUTC formatting option

To ensure consistency across systems, use UTC for all Entry times.
Add a new formatting option, the boolean TimestampInUTC, in both the TextFormatter and the JSONFormatter. This boolean defaults to false, giving the existing behavior using local times.
One JSONFormatter unit test had to be changed slightly by setting TimestampInUTC: true.
It would be good to add unit testing of the TimestampInUTC setting, but I'm not sure the best way to do this.

This breaks backwards compatibility a little too hard :/ Why are your system clocks not UTC?

That is a good question, and it appears that the clocks where we deploy to are in UTC. However, most (all?) of our localhost development uses local time, which makes it a bit more difficult to integrate local instances with deployed microservices. TimestampInUTC would conveniently make this more consistent.

This can be done by a custom formatter, which like - you proposed here - would print times in UTC. Otherwise, it's a change that will likely confuse unexpected users as their local logs now print in another timezone.
I'll be closing this PR, since there's no loss of capabilities here (you can get the behavior you want with a custom formatter) and it breaks backward compatibility.


Aggregations 2.0

This PR introduces some minor refactoring and adds support for new aggregations introduced in ES 2.0 (mainly pipeline aggregations).
Support added for the following aggregations:
AverageBucket (pipeline)
BucketScript (pipeline)
BucketSelector (pipeline)
CumulativeSum (pipeline)
Derivative (pipeline)
MaxBucket (pipeline)
MinBucket (pipeline)
MovingAverage (pipeline)
SerialDifferencing (pipeline)
SumBucket (pipeline)
Sampler (bucket)
Refactoring summary:

Removed concept of Aggregators
Renamed *Agg to *Aggregation
Clean up of bucket and metric response types (potentially more simplification can be made here)

New OIS syntax:
new SearchRequest<Project>
{
	Aggregations = new ChildrenAggregation("name_of_child_agg", typeof(CommitActivity))
	{
		Aggregations =
			new AverageAggregation("average_per_child", "confidenceFactor") &&
			new MaxAggregation("max_per_child", "confidenceFactor")
	}
};

versus old:
new SearchRequest<Project>
{
	Aggregations = new Dictionary<string, IAggregationContainer>
	{
		{"name_of_child_agg", new AggregationContainer
		{
			Children = new ChildrenAggregator
			{
				Type = typeof(CommitActivity)
			},
			Aggregations = new Dictionary<string, IAggregationContainer>
			{
				{"average_per_child", new AggregationContainer
				{
					Average = new AverageAggregator { Field = "confidenceFactor"}
				} },
				{"max_per_child", new AggregationContainer
				{
					Max = new MaxAggregator { Field = "confidenceFactor"}
				} }
			}
		}
		}
	}
};

One thing that would make testing code that uses aggregations much easier if there was an interface for AggregationHelper.  With that, it would be easy to Mock the data as it would be returned from the result of making the aggregation call.

@djnelson9715 yea, I could see that being pretty useful.  There's no reason we can't make it an interface...we'll look into changing it.  Thanks for the feedback!


Look in plt sections for the global offset table too

Hi Andrei,
unfortunately the 'Patch Global Offset Table to hook libc functions' change broke the PPC64le port. The symbol is located in .plt on PPC64le. The fix is simple, and should not brake anything else. I did it together with my colleague Johannes (@parttimenerd) who will continue to help maintaining the port.

Thank you for pointing this out.
I'll verify the fix and integrate it shortly.

I verified that .plt section has NOBITS attribute on ppc64le, but PROGBITS on other supported platforms.
So the added condition is true only on ppc64le, which is fine.
I added a few comments and merged the changes. Thanks.


Setting of end and start times of annotation are not accurate

When altering the length of an annotation with a duration using the start and end buttons the new start or end of an annotation is not perfectly accurate. It is slightly earlier or later than the actual position of the playhead (see screencast: https://tube.switch.ch/channels/9a280238).

I guess this relates to: https://github.com/opencast/annotation-tool/issues/318#issue-554387759

Looks fine on SWITCHcast-Staging. Thx!


Manual Refresh Option

What would you like to be added:
A manual refresh option. Basically a button when clicked forces Lens to manually refresh the data on screen. This would be nice to have just for the satisfaction of knowing for sure the displayed info is up to date.
Why is this needed:
Often times I have to disconnect the cluster and then reconnect to see a change I made. For whatever reason, it is inconsistent when I need to do this. As of writing this I ran a helm release which creates a configmap for a pre-install job. I knew the configmap was created but it was not showing up in the GUI. To get it to show up I had to disconnect and reconnect for it to be displayed.
Environment you are Lens application on:

Kubernetes distribution: [EKS, AKS, GKE, Rancher, ...]
EKS 1.15

Desktop OS:
MacOS Catalina

lens v3.2.0

not what you are asking for, but are you aware that you can press reload (cmd+r) in mac, win/linux something else

Doesn't seem to help when I tried it.  I believe it was ConfigMaps and Secrets.  Only way to get it properly refreshed was a cluster Disconnect/Reconnect.   Probably a bug hiding in there somewhere.  I will repost if/when I see this behavior again.

Stale ConfigMaps reproduced today - via a simple helm update - neither the pop-up gui view, nor terminal Edit view showed the most recent resource version:
kind: ConfigMap
apiVersion: v1
metadata:
  name: device-service
  uid: 82db3157-a329-4c89-94ca-5d9b8ac5717e
  resourceVersion: '60934240'
  creationTimestamp: '2020-04-10T05:14:56Z'

vs a $ kubectl get configmaps -n dev device-service -o yaml cmd:
kind: ConfigMap
apiVersion: v1
metadata:
  name: device-service
  uid: 82db3157-a329-4c89-94ca-5d9b8ac5717e
  resourceVersion: "62675019"
  creationTimestamp: "2020-04-10T05:14:56Z"

Also note that View - Force Reload did indeed refresh with the proper newer version displayed.

I've also seen stale ConfigMaps. It appears to only happen when the ConfigMap was created/updated via a Helm chart, regular kubectl apply refreshes OK.

@matti I was unaware of cmd+r. I'll give it a shot next time I come across the issue. However I have noticed it is only the config maps and secrets when Helm installs them which others have already noted as an issue.

@matti I tried the cmd+r option but it totally refreshes Lens and is basically a quicker way to disconnect and reconnect. When I cmd+r it takes me back to the main cluster dashboard and removes all my filters and resets any terminals I had open. I still would like a simpler refresh on just the section I am viewing at the moment and not the entire app.


Update visualization.md

What does this PR do?

Documentation fix: adding a new and ensuring the function return has (err, response)

How should this be manually tested? (if appropriate)

N/A

Are there any related issues open?
Screenshots (if appropriate)

:+1: right on, thanks @lukestokes!


Add alpha blending

We should have a method for alpha blending. This is required to be able to do contrast calculations properly (see https://github.com/w3c/csswg-drafts/issues/7358 ).
Things to decide:

Naming: Perhaps overlay() or over()? Or overlayOn() or just on() which is more clear as a Color method, but not so much in the procedural API (See overlayOn(color1, color2) vs color1.overlayOn(color2)). Whatever we come up with should make sense in both APIs, so I’m leaning toward over() which is also the operator name.
Is there any reason for it to take more than 2 arguments? My understanding is that the operator is associative.

The math seems pretty straightforward. @svgeesus are there any considerations when applying this to other color spaces? What color space do we use for the result? I guess the color space of the color being overlaid?

Yes, we need to have blending and compositing available.
The W3C Compositing spec is old, RGB-only, and does compositing in a broken way which happens to be compatible with what browsers do and Adobe Photoshop does, or used to do.
It works in sRGB (or technically any RGB space) but luminance uses the old NTSC primaries (yes, really)

Lum(C) = 0.3 x Cred + 0.59 x Cgreen + 0.11 x Cblue

That means we need to calculate a separate "CSS blend luminance" which is not Y in CIE XYZ /facepalm
https://drafts.fxtf.org/compositing-1/
Be careful when choosing names, because we want to be able to add the blend-modes and source-over is the usual Porter-Duff name for what CSS blending calls normal which is the initial value of mix-blend-mode.

Is there any reason for it to take more than 2 arguments? My understanding is that the operator is associative.

Like mixing, compositing is defined on two arguments and compositing more than that requires specifying and order of operations for several two-argument steps.
In addition to all that broken compositing in gamma-encoded sRGB space we would also want to make available compositing in linear-light xyz-d65 which is what is used for commercial 2D and 3D graphics.

Let's focus on alpha blending for now please. Sure, we shouldn't make any decisions that make it harder to implement the other operators and blending modes later on, but the immediate need is for alpha blending, that is far more common than any other operators, and we don't need to figure out the API for blending modes to add alpha blending.
The W3C compositing spec is old, sure, but surely this is a solved problem in the literature? So we convert to XYZ and do it there, then convert back to the color space of the first color?

surely this is a solved problem in the literature? So we convert to XYZ and do it there, then convert back to the color space of the first color?

Yes, that is the correct way.
It doesn't predict the actual contrast you will get in a browser, of course.

the immediate need is for alpha blending, that is far more common than any other operators

All of the blend modes are doing alpha blending.

Sure, we shouldn't make any decisions that make it harder to implement the other operators and blending modes later on

Exactly. So the correct approach is to implement the General Formula for Compositing and Blending:

Apply the blend in place
Cs = (1 - αb) x Cs + αb x B(Cb, Cs)
Composite
Co = αs x Fa x Cs + αb x Fb x Cb

and then provide useful defaults.
For the blend operator B, the default is normal which is simply

B(Cb, Cs) = Cs

and for source-over compositing,

Fa =1
Fb = 1 – αs

Let's focus on alpha blending for now please.

As someone that has already gone down this road, if you add support for source-over compositing and normal alpha blending, you have everything you need to do the others, you can just swap out different compositing and blend methods. So the key is just to make sure the compositing step and the blend step is generic. I think that is the main point that is being conveyed.
Though I had some missteps in the beginning 😅, I can pretty much mimic what browsers are doing now.

@svgeesus But in which color space? Will XYZ work well here? How does this change once we support CMYK spaces?
@facelessuser I see your point, but I do think alpha compositing should be quick and easy to specify, not just a parameter of a more general compositing API.

Though I had some missteps in the beginning 😅, I can pretty much mimic what browsers are doing now.

What missteps did you have?

But in which color space? Will XYZ work well here?

For browser-compatible simple alpha source-over blending, premultiplied sRGB will work (oog values may need to be clipped, needs investigation of how the equations react to extended values)
For browser-compatible other blend modes, sRGB plus a bogus NTSC-luma will work.
For higher quality physical light normal blending and source-over compositing, premultiplied XYZ-D65 will be fine
For compositing in CMYK then a) are you crazy and b) read the PDF spec for the full horror and c) have a drink with @faceless2 to get extended horror. Also to actually do compositing that is fully general and includes some CMYK then we would need ICC support to be able to get the Lab values. So, not for now.

From an API design pov, alpha compositing should be quick and easy to specify, not just a parameter of a more general compositing API.

An API design would have two methods, blend and composite. Each would take the source and destination colors as parameters plus an optional options object where one could specify the blend mode and the compositing operator and the blend colorspace, and these would default to normal and source-over and either xyz-d65 or srgb respectively.

For browser-compatible simple alpha source-over blending, premultiplied sRGB will work (oog values may need to be clipped, needs investigation of how the equations react to extended values)
For browser-compatible other blend modes, sRGB plus a bogus NTSC-luma will work.
For higher quality physical light normal blending and source-over compositing, premultiplied XYZ-D65 will be fine

Let's use XYZ-D65 then, and allow for a parameter if people want to produce shittier results that are browser-compatible.

For compositing in CMYK then a) are you crazy and b) read the PDF spec for the full horror and c) have a drink with @faceless2 to get extended horror. Also to actually do compositing that is fully general and includes some CMYK then we would need ICC support to be able to get the Lab values. So, not for now.

Of course we'd need ICC support to do CMYK properly, but that's in scope for the future, and wanting to overlay a CMYK value with transparency over another is not a crazy ask. Once we do have Lab values, does alpha blending work the same way?

Once we do have Lab values, does alpha blending work the same way?

For the proper way: yes. Lab-D50 → XYZ-D50 → XYZ-D65 and then as normal
For the web-compatible way, Lab-D50 → XYZ-D50 → XYZ-D65 → srgb-linear → sRGB and hope

What missteps did you have?

I forgot to undo the premultiplication after the blending was done. This broke the associative nature.
It also seems that some of the operator algorithms can exceed 0 and 1 for αo (Lighter for instance). I initially didn't clamp them, and instead applied them, and then the final color would have the alpha clamped. But I realized that to mimic browsers, I needed to clamp αo then apply it.

From an API design pov, alpha compositing should be quick and easy to specify, not just a parameter of a more general compositing API.

An API design would have two methods, blend and composite. Each would take the source and destination colors as parameters plus an optional options object where one could specify the blend mode and the compositing operator and the blend colorspace, and these would default to normal and source-over and either xyz-d65 or srgb respectively.

color1.composite(color2) is not an intuitive way to do alpha blending, which is by far the most common kind of compositing. I do think we should have a separate method for alpha blending (which can internally be a shortcut to compose or whatever once we have that). I laid out some options in the first post for what that function can be named.

I personally always liked the name overlay. I figured if enough people ever complained that compose was too obtuse for basic alpha compositing, that is what I'd add. For me, it creates a good mental picture of what is being attempted, but I can certainly understand the idea of using over with its tie to the operator name. If it were me, I'd vote for overlay or overlayOn.

I started a draft PR yesterday, so we can iterate: #231
Still needs tests

I personally always liked the name overlay.

Note that overlay is the name of a specific blend mode defined in CSS which has some unusual/strange non-linear properties.
To avoid confusion, the name "overlay" should not be used for a function which performs normal alpha blending.

... the name "overlay" should not be used for ... normal alpha blending....

I agree. "over" is usually the correct term. Overlay is a specific blend mode. I believe the PR is using "over".
Things I Learned About Alpha the Hard Way
Alpha in video, and mattes in film, were oft treated like black-magic potions with arcane setups and workflows... in the transition from chemical imaging to digital, the old voodoo methods were dragged along, and strange monsters under-the-bed grumbled as flows shifted to linear space blendings...
If you are doing everything "in house" with no inter-facility interchange of files, then alpha issues are less likely to bite you -- however, interchange is common, and understanding what/how alpha is interpreted in various use cases across color spaces is key. (yea, that pun was intended).
Also, I hope this is the right thread for this post, feel free to move if it isn't.
Alpha Gamma, what big teeth you have...
The statement "alpha has no gamma" is technically true, but also not correct.
Wait... wut?
While the alpha channel just specifies a percentage of transparency, a specific percentage of transparency will not have the same perceptual effect among different color spaces and most especially, gamma vs linear tone response curves.
Click here Under this twisty, a brief but useful background regarding alpha, mattes, and blending for various imaging technologies.
The following history intended to put best practices into context.
Nostalgia Lane
Historically (meaning NTSC and PAL video), switchers, DVO, and other video gear always dealt with the gamma encoded signal. All color adjustments, composites, whatnot, happened in gamma encoded space. In the earlier days the working space, input space, and output space, were all the same space—no LUTs, no ICC, and also no color management, as everything was aligned and calibrated to the one space.
That one space (YIQ for NTSC) was analog composite, meaning a gamma encoded $Y^\prime$ and the color difference quadrature encoded on a 3.58MHz subcarrier, as a single signal on coax going to analog switchers, where analog electronics could mix (for a dissolve) two signals.
If a video had an alpha, it was on a separate coax out of the DVO, or on a separate video tape (one machine with the image, one with the alpha, rolling in sync).
Composite (1") gave way to component (Betacam) YPbPr (analog) eventually to YCbCr (digital)... and still all were gamma encoded (though back then we said "gamma-corected".)
Blending (like for a T-bar dissolve) using essentially linear analog electronics, but the gamma encoded signal from camera or tape source remained gamma encoded throughout, until it hit the display.
Chemical imaging
Film mattes were high contrast black & white, bi-packed with the element to be matted in the optical printer. Film blends like dissolve were either interpositive dissolves, usually done on an optical printer as an effect cut into the O-neg, or negative dissolves done as part of an AB cut negative roll at the lab.
Interpositive dissolves look different than negative AB dissolves, and look different than analog gamma encoded video dissolves. And the same is true of alpha or matte transparencies.
When film started going digital, among the first was Kodak's Cineon uncompressed 10 bit integer log (later as DPX)... although cin/dpx was actually a 10 bit linear encoding of a film negative, which is itself log. The digital processes initially all working in a log space as well.
10 bit integer was used as three color channels then fit across 4 bytes, and as integer, it didn't need computationally expensive decompressing. Technology of the 90s could move data better than process data, and a 32bit per pixel uncompressed file format (10 bit per channel integer log) could play smoothly at 2K from RAM or from SCSI RAIDs of the day.
The linear in the sand
Early 2000s, people were starting to experiment with linear working spaces. And just to be confusing, some were calling gamma encoded video "linear" to distinguish it from "log" even though video is not linear, either... Stu Maschwitz was a thought leader in correcting the terminology to what we know today, with linear (1.0), log, gamma etc.
And that was about the time computers were getting fast enough that a 32bit (per channel) floating point linear (gamma 1.0) working space was reasonably doable. It's not just the processing cost of the working space itself, but also the added costs of transforming back to a gamma encoded space suitible for the display, and emulating looks of final film output through LUTs etc.
In some cases, the added complexity of linear is well worth emulating physical light. But plenty of reasons to be in some gamma/perceptual/curvy space too for some tasks.
.

Why History
The reason for the history lesson in the above twisty, was to show that compositing operations were handled in non-linear spaces for a very long time, and people became accustomed working that way. Linear does have advantages, but it's also not always the ideal working space, depending on the specific task.
Linear is good for a lot of compositing, but not so good for gradients, and of questionable utility for color grading, where you'd rather have controls that are perceptually uniform as opposed to illumination uniform.
The fact that compositing is good in linear, but perceptual spaces are better for some other things, brings us to the actual problem of "how best to handle alpha blends", which is answered with "it depends".
Alpha Workflows
If you are preparing an element in linear workspace, and that element is going to be exported with an alpha channel, it is important to know the kind of space it is going to be used in. The element is perhaps going to the DI, and what space are they grading in? P3? $X^{\prime}Y^{\prime}Z^{\prime}$ ? Rec709/2.4?
Let's say you are sending text elements with alpha. How you handle the alpha, and how the recipient handles the alpha, depends on your working space gamma, the interchange file format, and the working space & gamma of the recipient. For these examples we'll assume premultiplied alpha.
Click here this twisty hides some verbose hypothetical workflow examples.
No gamuts were injured in these examples.
We are working in a linearized (gamma 1.0) working space based on P3 primaries.

The DI is working in a linearized space and wants EXR files: Great, this is easy, send over linear EXR files with embedded premultiplied alpha channel, just as you had it adjusted in your linear working space. Easy, but almost never the actual case.

The DI is working in a log space, and they want a 3 channel dpx (10bpc) for image and a 4 channel TIFF for alpha (up to 4 alpha channels, usually 8bpc), with separate alpha for the spaceship, the exhaust, and the text (for grading) and the compositing alpha (for over).

If you are doing most of the work in a linear working space, but must deliver the log DPX, an alpha straight out of your working space will have unexpected behavior with transparent areas, for instance the antialiasing may seem jagged, and the density of the transparancy will appear wildly different.
FLOW 1) In a case like this, one workflow is to setup lin2log nodes for the text, spaceship, and exhaust, and comp with the merge nodes in log, and then output the alphas from the merge nodes which are now adjusted in log.
FLOW 2) An alternate workflow is to keep everything in lin until output, where the output has a lin2log node. In this case, process the alpha as well—though probably not with a standard lin2log. Setup a viewer that takes the final log output image, does a merge onto a proxy background in log, and compare in split-screen to the linear composite, and adjust the logified alpha now to match (this flow usually setup early and kept as a LUT for the alphas)
The above are for the compositing alpha. The separated grading alphas are used by the colorist for hold-outs for different grading nodes. Personally I prefer separated grading nodes as solids, since I'm going to adjust transparancy if needed to suit, but I might use the compositing alpha for the grade also if it's a complex transparency like water or smoke... YMMV.

The DI is grading in a Rec709 gamma 2.4 space, but they want files as an ARRI Log C 12bit ProRes 4444 with alpha.

Find out if they are doing composites/alpha blends in the 709/2.4 timeline (post LUT) or in LogC composite clips, or what..? before cutting into the 709/2.4 timeline.
As in the previous example, adjust the alpha for the correct perceptual intent for the color space the composite is being performed in—when a clip is converted from one space to another, the alpha is usually untouched (and resultant unexpected behavior).

You are doing the work in a vacuum on a low budget project, and have no idea what the DI is going to be as they haven't been brought one on yet. The camera originals are an assortment of RED, dSLRs, a DJI mini, GoPro, an iPhone, and Super 8mm film telecined to 10bit ProRes422 log C, but no indications of the space or primaries. The filmmakers say they want the DI to be in linear because they heard "linear is good for stuff".

Without smiling too patronizingly, do the work in linear and output linear 16bit half-float EXRs and an alpha the was adjusted in linear space. Use a linearized 709 or P3.
A year later when they get funding, the filmmakers call you in a panic saying "nothing looks right", after some discussion, you learn they are working in $DCI\ X^{\prime}Y^{\prime}Z^{\prime}\ with \gamma2.6$ so you walk them through doing the comps in DaVinci in linear space.

The Notes that Fell Off a Cliff
Okay, the tidbit to gleen for the foregoing is that:

The alpha channel as adjusted/created, is only valid for the color space and especially gamma, of the instance where it was created/adjusted.
Transforming the image data to a different space, particularly the TRC or gamma, will invalidate any partial transparency of the alpha channel.
In other words, the alpha data must be adjusted to maintain perceptual intent if the image data is mapped to another space and/or gamma.

The TRC of the final compositing workspace is of course also important.

Thus, the alpha data must be managed/adjusted as the image data transforms into different working spaces.

Put another way, there is no "best" default for the alpha in a multi-space environment, there is only the "it needs to be handled like this" where "this" is the space the alpha was created or adjusted for.
The following table does not imply best practices, only common cases and potential flows.

SourceWorking Space
IntermediateFile Specs
DestinationWorking Space
Alpha Requriements

$\gamma 2.6$
ProRes4444
$\gamma 2.6$
Same alpha as adjusted in source workingspace

Linear $\gamma 1.0$
EXR (lin)
Linear $\gamma 1.0$
Same alpha as adjusted in source workingspace

Log
DPX + TIFa
Log
Same alpha as adjusted in source workingspace

Linear $709 \gamma 1.0$
ProRes4444 $\gamma 2.4$
$\gamma 2.4$
Alpha adjusted to work with the  $\gamma 2.4$ transformed image data

Linear $P3\ \gamma 1.0$
ProRes4444 $\gamma 2.2$
$DCI\ P3\gamma 2.6$
Alpha adjusted to work with the $\gamma 2.2$ transformed image data in the ProRes, and then likely adjusted further for the final comp 2.6

Thread responses

...Be careful when choosing names...

over is appropriate, and common term for the basic alpha "sticking things on top of other things".

...So we convert to XYZ and do it there, then convert back to the color space of the first color?...

As I tried to illustrate above, it depends. What space is the alpha intended for? If the alpha is attached to a gamma encoded image, then usually that alpha is intended for providing transparency for that image data at its current gamma. Usually.
And of course, this applies only to alphas with partial transparency. It does not apply to alpha 0 or 1. Text for instance has antialiasing, and this is partially transparent. It needs to be composited using image data and alpha at the gamma it was built for.
...But in which color space? Will XYZ work well here?...
The color space that the image+alpha was built/intended for first, or if the image data is transformed to another space, then a transform on the alpha as well to match perceptual intent.
XYZ is essentially an RGB space with imaginary primaries, so long as fg/bg are both in XYZ, I suyppose it should work—but keep in mind that as linear spaces with imaginary primaries, it's easy to exceed the gamut of the actual destination space.
Opinion: I like working spaces that are the same as the destination space, or at leas the intermediate space. For additive chromatic spaces like RGB, they can easily be linearized, if linear blending is desired.

...How does this change once we support CMYK spaces?...

Not being snarky: convert CMY to RGB to blend, then back. K is reserved or used in some blend modes. You might like this paper on blend modes.
Some simple blend modes might (big maybe) be emulated while staying in CMY. I've tried doing subtractions for instance, though trying to find a workable CMYK blending space may be a rich-black alley.
RGB is already an additive space, and three primaries where each brandishes a share of the luminance. CMYK as a subtractive space with 4 colors including one that modulates luminance much more than the others adds non trivial complexity. As a result, Grassman's laws apply to RGB but not so much to CMYK. I.e. you can get straight-line mixes in RGB, but you don't get straight line mixes in pigments or inks.
And you need a perceptually uniform space to transform CMYK to RGB... so now. thinking out loud, could a perceptually uniform CMYK mixing space be created... and is there a compelling reason to do so?

For those that read this, thank you for joining me in this trip down memory lane...

I was looking for this feature, missed it, and then found this issue. As far as I can tell, right now Color objects represent alpha, but don't do anything with it.
I have to admit that I don't really understand the intricacies of different methods, but for my direct practical application I would like a method like color.blendAlpha(background), which transforms a color with alpha < 1 into a color with alpha = 1, simulating the way the browser would do it if an element with color is on top of an element with background.
But I guess that isn't easy either, because different browsers do it differently, and have done it differently historically?


MB 9313 hookup billable weight component on payment requests page

Description
Wrote up some custom hooks to calculate the total billable weight and the total weight requested.
Replaced some spots where the custom hook would be useful at.
I fixed up the MovePaymentRequests tests sine they were spitting out a bunch of console errors
Reviewer Notes
Did I change the shipment list item to use the correct value?
Is the logic for calculating the total billable weight and the total weight requested correct?
Are things living in the right places?
Did I name things ok?
Setup
Add any steps or code to run in this section to help others prepare to run your code:
echo "Code goes here"

Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 717e9ae9357dd4c589051ba9a5d34d6cf6e8d2d0

Changes look good to me! My only non-blocker comment is the name /hooks/custom seems kind of vague. I'm wondering if there's a more specific thing it could be named but I can't think of anything myself

Yea, I'm not sure if we should have a file with all our custom hooks or if we should have a folder with custom hooks split out by type. Given that I'm also the first person to write shared custom hooks, I don't know how useful it would be to have a folder with a single file in it.


[REQ] Pin And Group Trending Regions

Describe the problem that needs solving
I like to keep up with trends and find myself checking the trending pages of quite a few different countries and their regions, so having to scroll through a gargantuan list with subsections everytime i want to switch to a different region's trending page is a bit frustrating.
Describe the solution you'd like
I'd love to have a way to pin regions and have an option to either automatically sort the pinned entries into country folders or sort them into custom-named folders, kind-of like how it is in the subscriptions page.
PS : I feel like it would be better if the worldwide page always stays on the surface and seperate from the custom/auto folders as a sort of global, constant entity, since.. you know.. it's the worldwide page.

Oh wait, a variant of this exists in the 3.x beta.


jsoo can't parse large data structures

jsoo seems to have issues parsing large javascript data structures (arrays, objects) that exceed some limit.

class LargeStructure extends Struct({
	a: Field,
	b: Field,
	c: Field,
	d: Field,
	//...
}) {}

const Prover = Experimental.ZkProgram({
  publicInput: Field,

  methods: {
    baseCase: {
      privateInputs: [Circuit.array(LargeStructure, 4)],

      method(publicInput: Field, arr: LargeStructure[]) {
        publicInput.equals(1);
      },
    },
  },
});

while 4 elements in the array work, 8 won't. Easy workaround: Splitting up large structures into multiple smaller ones myFunc(a: SmallStruct, b: SmallStruct, c: SmallStruct)

is it a stack overflow error? would be nice to trace where it comes from, we might be able to refactor the OCaml code

Check in before committing to fix if it's a lot of effort. We could provide a better error message instead

To investigate as well: #1210


Update providerBranch for marketplace templates

What does this PR do?
0.1.* is not a valid branch or tag. Update it to 0.1.x as the appwrite code expects a branch and will only work with a branch and not a tag.
Fixes https://github.com/appwrite/console/issues/1279
Test Plan
Successfully created from starter template:

and executed:

Created repo:

Related PRs and Issues
Depends on:

https://github.com/appwrite/console/pull/1280

Related issue:

https://github.com/appwrite/console/issues/1279

Previous PR:

https://github.com/appwrite/console/pull/1244

Have you read the Contributing Guidelines on issues?
Yes

Closing as the problem seems to be because cloud is behind


Symfony 3 Composer dependency fix

When using Symfony 3, the dependencies for symfony/http-foundation and symfony/routing in version 2.2 result in a version conflict opposite symfony/symfony 3.0.
This fixes it.

Of course this breaks compatibility with the PHP 5.3 and 5.4 branches due to the symfony/symfony requirement for PHP >= 5.5.9.

You should support both, stay compatible with 2.x and support 3.x, we won't be compatible with only 3.x since we only use 2 components in very simple way.
"symfony/http-foundation": "~2.2|~3.0"

Very good point, thank you for pointing this out.
I pushed some new commits that fix this.

:+1: Thank you!

Thanks guys!


max_blocks not respected in SlurmProvider

By specifying the following in my config:
            max_blocks=1,
            min_blocks=1,

I am finding two slurm jobs being submitted rather than one.  User wilde pointed out that by adding in parallelism = 0.1 the extra slurm job would not be submitted.  Still, it seems that max_blocks should be respected.
Parsl 0.7.2
executor = HighThroughputExecutor
provider = SlurmProvider

Thanks for the report, @TomGlanzman!
Looks like we were on the right track, but we never update provisioned_blocks anywhere:
https://github.com/Parsl/parsl/blob/master/parsl/providers/slurm/slurm.py#L158

Related to #921

PR #907 claims to fix this


Works in Godot 4 alpha 14 but crashes Godot 4 alpha 15

I'm able to run this example project in Godot 4 alpha 14 with no issues but when I open the project in 4 alpha 15 Godot crashes when opening the project. Have you seen this issue before?

I noticed godot-cpp was checked out to a specific commit so I just switched it to the main branch and used the latest changes there. The demo project is now working fine inside Godot 4 Alpha 15.

Thanks for the report, yes we need to keep godot-cpp up to date, i will do this ASAP. I'm also going to look into using master instead of a commit hash.

Should be fixed, will re-open if problem continues

Thanks for the quick response!!!


A vulnerability introduced by minimist

Hi ,@boneskull @juergba , I’d like to report a vulnerability in your package:
Issue Description
A vulnerability CVE-2020-7598 in package minimist (<0.2.1,>=1.0.0 <1.2.3) is transitively referenced by<EMAIL_ADDRESS>We noticed that such vulnerability has been removed from mocha(>=6.2.3 <7.0.0-esm1, >=7.1.1).
However, mocha's popular previous version<EMAIL_ADDRESS>(810,933 downloads per week) is still transitively referenced by a large amount of latest versions of active and popular downstream projects (about 3,210 downstream projects, e.g., ros.grant.common 2.0.821, redis-cli 2.1.0, @hmcts/ccd-case-ui-toolkit 4.0.0-secure-docstore, opensea-js 1.1.11, eve-common 13.0.0<EMAIL_ADDRESS><EMAIL_ADDRESS>etc.). As such, issue CVE-2020-7598  can be propagated into these downstream projects and expose security threats to them.
These projects cannot easily upgrade mocha from version 5.2.0 to 6.2.* . For instance<EMAIL_ADDRESS>is introduced into the above projects via the following package dependency paths:
(1<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>(2<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>........
The projects such as svg-sprite which introduced<EMAIL_ADDRESS>are not maintained anymore. These unmaintained packages can neither upgrade mocha nor be easily migrated by the large amount of affected downstream projects.
On behalf the downstream users, could you help us remove the vulnerability from package<EMAIL_ADDRESS>Suggested Solution
Since these unactive projects set a version constaint ~5.2.* for mocha on the above vulnerable dependency paths, if mocha removes the vulnerability from 5.2.0 and releases a new patched version<EMAIL_ADDRESS>such a vulnerability patch can be automatically propagated into the 3,210 affected downstream projects.
In<EMAIL_ADDRESS>you can kindly try to perform the following upgrade:
mkdirp 0.5.1 ➔ 0.5.2;
Note:
<EMAIL_ADDRESS>directly depends on<EMAIL_ADDRESS>(a vulnerability CVE-2020-7598 patched version)
Thank you for your help.
Best regards,
Paimon

@paimon0715 In your project have you defined Mocha in devDependencies?
When you run npm audit --production, do you get any vulnerabilities reported?

@juergba Yes, my project indeed get such a vulnerability report for CVE-2020-7598.
And similar issues can be found in many<EMAIL_ADDRESS>downstream users (810,933 downloads per week).
Thanks again.

I had a look on this CVE-2020-7598. IMO npm vulnerability reports are - in most cases - a waste of time for anybody.
I will not update Mocha v5.2.0 for two reasons:

I don't see how Mocha could be affected by this issue. @paimon0715 please add a PoC, if you disagree.
Mocha does not support LTSupport for earlier releases

Other maintainers may disagree, or else I will close this issue in a few days.


Adding Rotating Device Id to BLE & DNS-SD discovery

This PR adds the rotating device id to both BLE GATT characteristics and DNS-SD discovery as per specs

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.12 out of 13 committers have signed the CLA.:white_check_mark: markus-becker-tridonic-com:white_check_mark: Damian-Nordic:white_check_mark: kpschoedel:white_check_mark: vivien-apple:white_check_mark: jepenven-silabs:white_check_mark: andy31415:white_check_mark: LuDuda:white_check_mark: yufengwangca:white_check_mark: mspang:white_check_mark: bzbarsky-apple:white_check_mark: gjc13:white_check_mark: lijujayakumar:x: hnnajhYou have signed the CLA already but the status is still pending? Let us recheck it.

Here is some background of what the rotating device id is (From the specs):
Rotating Device Identifier
Some device makers need a way to uniquely identify a device for vendor-specific customer support purposes. For example, the device maker may need this to identify software version and related features, manufacturing date, or to assist in recovery when a setup code has been lost or damaged. In order to avoid privacy issues associated with a fixed unique identifier, Chip accessories MAY utilize a Rotating Device Identifier for identification purposes. A Rotating Device Identifier is similar to a serial number but rotates at pre-defined intervals.
The Rotating Device Identifier is an optional feature for a Node to implement and an optional feature for a Commissioner to utilize.
The Rotating Device Identifier provides a per-device unique non-trackable identifier that could be used in one or more of the following ways:

Provided to the vendor’s customer support for help in pairing or establishing Node provenance;
Used programmatically to obtain a Node’s Setup PIN or other information in order to provide a simplified setup flow. Note that the mechanism(s) by which the PIN may be obtained is outside of this specification.


Importing project environment shows diff

When create environment resource, everything goes well. When importing an existing project environment, some weird behavior happens:
Prerequirement to replicate:

have a manually created environment named  "platform-dta"

Then follows the process:
add the following to your terraform
resource "project_environment" "platform-dta" {
  name        = "platform-dta"
  project_key = "team01"
}

Run import command:
terraform import project_environment.platform-dta team01:platform-dta
Run terraform plan:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # project_environment.platform-dta will be updated in-place
  ~ resource "project_environment" "platform-dta" {
        id          = "adat-common-prd"
      ~ name        = "common-prd" -> "platform-dta"
        # (1 unchanged attribute hidden)
    }

common-prd is an environment that already exists, and it is not intented to be managed by terraform now (it will be in the future).
what my colleague observed is that the import is using the "last" available environment.

We're actually seeing the same issue on an earlier version (1.2.1). We're not doing an import, we create one custom project environment, and then after it is created when we create a second custom environment for the project, Terraform tells us it wants to change the first one.
We've confirmed it is the same in the newest version as well (1.3.3)

I'm experiencing precisely the same thing @mikeycmccarthy described.

@EvertonSA @mikeycmccarthy @Sarcasm0naut Thanks for the report. I was out on vacation last week, hence the radio silence.

Amazing, thank you @alexhung !

Thank you @alexhung, highly appreciated.

my internal user also confirms it works now


Document what exact AWS-managed policies are needed for the access key

Because creating a root access key feels like A Bad Idea (especially when experimenting), it would be great if the docs outlined exactly which AWS-managed are needed for the access key, so someone can make a minimally-scoped access key when trying out the project

Because installing a root access key feels like A Bad Idea...

Agreed. But I'm not sure I'm following you on what we are doing badly or what "installing" means here. Are you thinking the aws configure is installing AWS crews in the container shipped to prod?
Also, have you see the full deployment guides where we advocate for (post experimenting) a least privilege user or Open ID Connect for the CI/CD pipeline? https://lamby.custominktech.com/docs/anatomy#deployment--cicd

Sorry, I just had my first cup of coffee, so I'm still booting up 😅
Sorry about the confusion here; I don't think aws configure is actually installing the credentials to production.
The process I went through was:

Work through the Quick Start Guide
Get to the aws configure step
Realize I need to get a new AWS account for personal experimenting. And also know that I don't want to just have a root access key lying around, so I want to make a user + group permissions for this experiment.
Realize there isn't documentation in this page about what permissions are actually needed to make the deployment according to the quick start guide
Lose a lot of time navigating the Vorgon directory of AWS permissions

No worries. Thank you so much for trying it out. Indeed, #3-5 is not really in scope here. But such a good idea. I did that a few years ago too and it was kind of a scary pain. My AWS account is old as dirt.
Anyways, I updated this little section a little. Do you think this is helpful? https://lamby.custominktech.com/docs/quick-start#deploy-to-lambda

It is! That little signpost is perfect. 😄


help: only ask input if scrolling past the screen

Currently you get the "press any key to continue" message as soon as you
reach the end of the screen, which is immediately if the cursor is
already at the end.
With this change, the content will scroll the screen up until the point
when it wouldn't fit entirely in a single screen. Just like the "more"
program worked in DOS (except that one only asked once per entire page).
I also added a very short delay when outputing lines, for nicer feedback

Thanks !


Error: "Authorization header is missing"

Description
When trying to add a collection to my index i get this error:
"The Authorization header is missing. It must use the bearer authorization method."

Expected behavior
Uploading the collection.
Current behavior
Error message with MEILISEARCH_API_KEY
https://www.meilisearch.com/docs/reference/errors/error_codes#missing_authorization_header
Environment (please complete the following information):

OS:  Docker, Linux
Meilisearch version: 0.38.0
strapi-plugin-meilisearch version: 0.12.0
Browser: Chrome Version 127.0.6533.100
Strapi version: v4.9.2

Hello @jacobhytter
Can you let me know which version of Meilisearch you use?
https://www.meilisearch.com/docs/reference/api/version#get-version-of-meilisearch

{ "commitSha": "0df84bbba7db46680e83843dd6454257161a282f", "commitDate": "2024-06-27T12:47:08.000000000Z", "pkgVersion": "1.9.0" }

I have tested to use master-key and public-key and private-key here:

It is populated with the correct api-key.

@curquiza any ides? do i need to go down to v1.8.1?

I change to 1.8.1 and use the master key as the apikey and now i can push data to the index


make training gave me this error

tesseract data/ground-truth/alexis_ruhe01_1852_0087_027.tif data/ground-truth/alexis_ruhe01_1852_0087_027 --psm 6 lstm.train
Error in pixReadMemTiff: function not present
Error in pixReadMem: tiff: no pix returned
Error in pixaGenerateFontFromString: pix not made
Error in bmfCreate: font pixa not made
Tesseract Open Source OCR Engine v4.0.0-beta.3 with Leptonica
Error in findTiffCompression: function not present
Error in pixReadFromMultipageTiff: function not present

/home/name/Desktop/ocrd-train-master/usr/bin/tesseract --version
tesseract 4.0.0-beta.3
leptonica-1.75.3
libpng 1.6.34 : zlib 1.2.11
Found AVX
Found SSE

/home/name/Desktop/ocrd-train-master/usr/bin/tesseract --version
tesseract 4.0.0-beta.3
leptonica-1.75.3
libpng 1.6.34 : zlib 1.2.11
Found AVX
Found SSE
libtiff is missing...

Yes! As you say: libtiff is missing. Please install it and rebuild/reinstall tesseract. This is not an ocrd-train issue.


Added Utterances for feedback on page Culinary

for the future, if you do comments: true in ur permalink, it would work, no need for utterances code


Key Error: nsubjpass

While running test.py, I keep getting this error message.
File "test.py", line 67, in
sample = test_db[_k]
File "/export/home/yidansun/ABCD-ACL2021/data.py", line 244, in getitem
pair_acs = GetArc(all_pairs, self.arc_one_dics, self.label_arcs, self.use_cuda)
File "/export/home/yidansun/ABCD-ACL2021/data.py", line 61, in GetArc
arc_onehot = torch.tensor(one_arcs[label_arcs[arc.split(":")[0]]]).unsqueeze(0)
KeyError: 'nsubjpass'

Hi,
Are you using the pre-trained model? If so it could be that the passive form of "nsubj" is not encountered in the corpus I have for pre-trained model. There are two solutions:

Change nsubjpass to nsubj in the data.py. (Just to add an if-else statement that change any passive forms to active, e.g. csubjpass- csubj). This is recommended as nsubj and nsubjpass showing the same semantic subject.
or 2. You could add the nsubjpass into arcs as a new key, and train your data that way (if you have the training set).

Hope this helps.

Thank you, this is very helpful. and yes, I think it was because I'm using the pretrained model. I changed it to 'nsubj' and everything worked perfectly. Thank you.

From: Yanjun Gao (Serena) @.>
Sent: Tuesday, September 14, 2021 10:43 PM
To: serenayj/ABCD-ACL2021 @.>
Cc: #SUN YIDAN# @.>; Author @.>
Subject: Re: [serenayj/ABCD-ACL2021] Key Error: nsubjpass (#4)
Hi,
Are you using the pre-trained model? If so it could be that the passive form of "nsubj" is not encountered in the corpus I have for pre-trained model. There are two solutions:

Change nsubjpass to nsubj in the data.py. (Just to add an if-else statement that change any passive forms to active, e.g. csubjpass- csubj). This is recommended as nsubj and nsubjpass showing the same semantic subject.
or 2. You could add the nsubjpass into arcs as a new key, and train your data that way (if you have the training set).

Hope this helps.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/serenayj/ABCD-ACL2021/issues/4#issuecomment-919219214, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AVMG7GTGMY7KXGAXB4BNCHDUB5NPTANCNFSM5D74NOBA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


[Question] Where is the Ingress or how is it generated from Skaffold?

I see you have kubernetes/ingress folder but inside it is not using kind: Ingress but Loadbalancer?
if we are using Skaffold do we need to manually create Ingress or it is automatically generated from the production.yml file?

In my case, since I have few access points for which the ingresses are not frequently changed, then I have opted to create Traefik as Deployment and not as an Ingress controller and passed the Traefik options through configmap. Therefore, Traefik will be created from production.yml. The ingress folder only host the LoadBalancer Service for the traefik controller.
For further information about Ingress for this project, you can find it in this article I wrote when developed this repo: https://medium.com/compredict/hands-on-day-1-and-day-2-operations-in-kubernetes-using-django-and-aks-part-3-1bf09984b6ee

I will close the issue, please feel free to re-open if you need further verifications.

When you say 'few' does that mean many or not many?

not many at all, in Django Cookiecutter, you only have two endpoints:

Django endpoint.
Flower endpoint. (should be only for internal purposes)

Since there are only two, it would be simpler to go with configfile approach over setting up Traefik as Ingress Controller.

@uzi0espil
Why was this commented out ?
COPY ./compose/production/traefik/traefik.yml /etc/traefik


bump deps to langchain 0.3.1

part one of https://github.com/crewAIInc/crewAI/issues/1352

test locally error for me even on main so please before merging please verify on your end. Thank you

Hi Evgeny (@motobob), You may want to take a quick look here at the test files which needed an update.
https://github.com/crewAIInc/crewAI-tools/compare/main...rohanarora:crewAI-tools:test_fixes
Please ignore the version bump-related commits.

We are also in the process of replacing poetry with UV what will making updating certain depenceis that ahve conflicts a little easier :D

@joaomdmoura hello! do you have an update on this? would love to use the new Flow feature but the newest crew version still points to 0.2.x for langchain


Laravel 6 still uses stray instances of str_and array_

Laravel Version: #.#.# 6.4
PHP Version: #.#.# 7.3
Database Driver & Version: MySQL 8

Description:
Laravel 6 still uses stray instances of str_and array_ when they should be removed.
See https://laravel.com/docs/6.x/upgrade#helpers
Steps To Reproduce:
After doing "laravel new myapp", I did a grep and found these:
$ grep -ri "array_" *
config/database.php:            'options' => extension_loaded('pdo_mysql') ? array_filter([
$ grep -ri "str_" *
resources/views/welcome.blade.php:<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

These are php functions not laravel helpers...

@it-can the documentation isn't very clear...

None of Laravel's helper methods are named the same as existing PHP functions, so there's no chance these are from laravel. You can see the available laravel helpers in the helpers package @ github.com/laravel/helpers

What I was looking for was a link to this in the docs.
https://laravel.com/docs/5.6/helpers
since these are the functions I need to search and replace.