RSI value does NOT match expected values

Hello,
I've been using the RSI indicator provided by ta.
Using the RSI indicator, I compute some higher level indicators, their form is not important here.
I wanted to verify that I had implemented the indicator correctly, and so I wrote extensive test cases on real data lifted from TradingView.
This is when I noticed that the RSI value computed on TradingView does not match the RSI computed from this library.
I figured out the issues here:

The EMAs internal to the ta RSI use a different alpha (k field), as 2 / (period - 1), whereas on TV, the RSI uses an EMA with alpha of 1.0 / period.
The computation of the RSI on TV uses a form that handles division by zero differently, otherwise the expressions should be equivalent.

I am not sure which version of the RSI is the intended "official" RSI,
but in order to make the RSI implementations match I've had to change things inside the ta library.
If you have any information on this please let me know, I am a bit clueless.
My suggested change is that you provide a function on EMA and dependent indicators to set the alpha parameter used.

My thinking process:
ta EMA's k = 2 / (period + 1) (not 2 / (period - 1)).
What makes:
2 / (period + 1) = 1 / (0.5 * period + 0.5), versus TV's 1.0 / period.
So considering that period is usually greater than 1, TA's k is gonna be typically greater than TV's one.
For example. with period = 14,

TA's K = 0.133
TV's K = 0.071

What means, TA's EMA puts more weight on the most recent input than the old ones.
How to fix
The difference between to formulas is so significant, that it would definitely break working strategies.
Maybe of possible solutions would be:

Provide multiple different moving averages
Make other indicators be generic over a moving average (with some defaults).

Apologies for the mistake in my recollection of your formula for alpha.
Yes, the default should remain the same.
What I had done in my local fork is add a different constructor with_custom_alpha(period: usize, alpha: f64).
It could be better to create a generic struct with a type parameter for this, like
trait EmaConfig {
  fn compute_alpha(period: usize) -> f64;
}

struct DefaultEMAConfig;
impl EmaConfig for DefaultEmaConfig {
  fn compute_alpha(p: usize) -> f64 { 2.0 / (period as f64 + 1.0) }
}

struct TradingViewEMAConfig;
impl EmaConfig for TradingViewEMAConfig {
  fn compute_alpha(p: usize) -> f64 { 1.0 / period as f64 }
}

pub struct GenericRSI<E: EmaConfig> { ... }

pub type RSI = GenericRSI<DefaultEmaConfig>
pub type TVRSI = GenericRSI<TradingViewEMAConfig>

The simple way however:
struct Ema { ... }
impl Ema {
  fn set_alpha(&mut self, a: f64) { ... }
}
impl RSI {
  fn set_alpha(&mut self, a: f64) { ... }
}

After compilation the default alpha and the manual override of alpha should simplify away the original assignment & be zero cost.
It could be more elegant to use the generic approach however.
By the way are these two versions of the EMA / RSI named something different? Not cool if the financial community just throws around the name RSI and acknowledges the period as a parameter but not how the alpha parameter is computed! Yields completely different values!

Hi,
I have the same issue not only with RSI but also with SlowStochastic and FastStochastic. Both of them don't match the values that I can see in platforms like TV. Any expectation about when it could be solved?

just something i've encountered in the past, make sure you're using standard candles and not heiken ashi

My bad. Both Stochs are correct. I was using the wrong data.

Pinescript v5 doc says alpha = 2 / (length + 1).
https://www.tradingview.com/pine-script-reference/#fun_ta{dot}ema
v4 is the same. Where did 1.0 / period come from?

Pinescript's ta.rsi uses ta.rma (exponential moving average function that exists only for rsi and atr) not ta.ema.
To simplify things, ta-rs can do the same thing - add new indicator RelativeMovingAverage and change rsi and atr to use this by default.
struct AverageTrueRange<M=RelativeMovingAverage>

The Relative Strength Index (RSI) is a momentum oscillator used in technical analysis that measures the speed and change of price movements. The RSI oscillates between zero and 100 and is typically used to identify overbought or oversold conditions in trading an asset. Here, we'll calculate the 3-day RSI for the given array of prices.
The array is [(t1,10), (t2, 10.5), (t3, 10), (t4,9.5)]. Each tuple represents a time point (t1, t2, etc.) and the corresponding price.
Steps for calculating the 3-day RSI:
Calculate Daily Price Changes: Subtract the previous day's price from the current day's price.
Separate Gains and Losses: If the price change is positive, it's a gain; otherwise, it's a loss. If there's no change, both gain and loss are zero.
Average Gains and Losses: Sum the gains (and losses) over the past 3 days and divide by 3.
Calculate the Relative Strength (RS): This is the average gain divided by the average loss.
Calculate the RSI: RSI = 100 - (100 / (1 + RS)).
Now, let's perform these calculations step-by-step.
Daily Price Changes:
From t1 to t2:
10.5 − 10 = 0.5
From t2 to t3:
10−10.5=−0.5
From t3 to t4:
9.5 − 10 = −0.5
Gains and Losses:
Day 1
Gain:
0.5
0.5
Loss:
0
0
__
Day 2
Gain:
0
0
Loss:
0.5
0.5
__
Day 3
Gain:
0
0
Loss:
0.5
0.5
__
Average Gains and Losses:
Average Gain:
(0.5+0+0)/3=0.1667
Average Loss:
(0+0.5+0.5)/3=0.3333
Calculate RS:
RS = Average Gain / Average Loss =
0.1667/0.3333=0.5
Calculate RSI:
100−(100/(1+0.5))=100−(100/1.5)=100−66.67=33.33
So, the 3-day RSI for the given data is approximately 33.33.
However, the unit tests here have the following (wrong) unit test:
#[test]
fn test_next() {
    let mut rsi = RelativeStrengthIndex::new(3).unwrap();
    assert_eq!(rsi.next(10.0), 50.0);
    assert_eq!(rsi.next(10.5).round(), 86.0);
    assert_eq!(rsi.next(10.0).round(), 35.0);
    assert_eq!(rsi.next(9.5).round(), 16.0);
}

I forked the repo  to fix these issues and also made it easier to have a dynamic window size.


Allow merge editor buttons to be used with keyboard

When the merge editor is used with VoiceOver utility, it is not possible to use "Revert chuck" and "Toggle locked scrolling" buttons with keyboard. With this change, it will be possible.

Thank you!


Duplicate observations

Hi,
recently I have stumbled across a potential data quality issue. Apparently, there are some duplicate observations in the SDO ML v2 dataset.
For example for the following times in 171A (fdl-sdoml-v2/sdomlv2.zarr/2020/171A):
{
  "171A": [
    "2019-06-21T00:00:10.35Z",
    "2019-06-21T00:06:10.35Z",
    "2019-06-21T00:12:10.35Z",
    "2019-06-21T00:18:10.35Z",
    "2019-06-21T00:24:10.35Z",
    "2019-06-21T00:30:10.35Z",
    "2019-06-21T00:36:10.35Z",
    "2019-06-21T00:42:10.35Z",
    "2019-06-21T00:48:10.34Z",
....
]
}

Given a Pytorch DataLoader (an example can be found here), the issue can be reproduced as follows:
from sdo.sood.data.sdo_ml_v2_dataset import SDOMLv2NumpyDataset, get_default_transforms
from torch.utils.data import DataLoader

storage_root = "/data/sdomlv2_full/sdomlv2.zarr"
storage_driver = "fs"
year = None
channel="171A"
cache_max_size =  2*1024*1024*2014
target_size=512
transforms = get_default_transforms(
            target_size=target_size, channel=channel)

dataset = SDOMLv2NumpyDataset(
                storage_root=storage_root,
                storage_driver=storage_driver,
                cache_max_size=cache_max_size,
                year=year,
                channel=channel,
                transforms=transforms,
                start=None,
                end=None,
                freq=None,
                irradiance=None,
                irradiance_channel=None,
                goes_cache_dir=None,
                reduce_memory=True,
                obs_times=None
)

loader = DataLoader(dataset, batch_size=64,
                          shuffle=False,
                          num_workers=16,
                          prefetch_factor=2)

seen = set()
duplicates = [x for x in loader.dataset.attrs["T_OBS"] if x in seen or seen.add(x)]
duplicates

Please check whether these observations need to be removed.
Cheers,
Marius

Hi, thanks for in-depth report.
Are you sure these are not just all observations for that channel for that given hour? They look 6 minutes apart from
The filenames.

@richardagalvez these are all duplicates. There are 2279 duplicates for the 171A channel for the years 2010-2020, which are all in 2019.

@kingbob8, FYI

Yes, I confirm these are duplicates and can be safely removed. It occurs between 2019/06/21-2019/06/30, which is caused by duplicate synoptic data folders. We will remove the duplicate data in the future SDOML dataset release. Thanks a lot @mariusgiger for the nice discovery!


WIP: Add boltlockserver

[x] add boltlockdb
[ ] testing (with robot)

#149 changes the way we handle robots so this is no longer needed. @troedfach can you add a boltlock implementation to usecaseserver, its a lot easier now.

@mrbenshef will do


White page occurs when trying to run get-google-serps.php

Hello,
I used the examples to check the library and I commented out the 25th line and removed the '#' from 24th line and when I try to run the script, only a white page is occuring. Even I tried moving the file out of example folder but it didn't work either, it just gave me a blank page.

Guys any one there ?

HI, I am having the same issue, Are you able to resolve it ?

@rizwan95 @asimkhalil I know google very well. They know what is going on and they are blocking you. I am running into some issues myself but I am having some success with certain network infrastructure. Try to throttle the curl.


Add external audio support

Too much to think about right now. Gonna throw this one back in the pond.

Should now be possible with runtime setup functions.


how can I visualize the images after data augmantation ?

@kenshohara I am trying to use your script on my own dataset and I want to visualize the data after loading it with the dataloader can you please help me on how to do it ?


Add to KOA middleware list

Please add to
https://github.com/koajs/koa/wiki

That is not an independent middleware, but I've added it to another list


CT-1169 put column definition endpoint

Jira: CT-1169
KBC: https://github.com/keboola/connection/pull/4838
Before asking for review make sure that:
Checklist

[x] New client method(s) has tests
[x] Apiary file is updated

Release

[x] I gave the PR a proper label:

major (BC break)
minor (new feature)
patch (backwards compatible fix)
no release (just test changes)

Přidal jsem ještě aa9e2a50ebc439ad4a51ab1ec0e86eab23e33d04

fix cs and rebase


controlsd: steer in old preEnable state

preEnabled is now completely replaced by the overriding state.

Might want to leave the preEnable state in case we want to enforce no acceleration actuation at a stop

Might want to leave the preEnable state and event types in case we want to enforce no acceleration actuation at a stop, but that would be the last remaining use

Yeah, let's keep it for that. Let's do that soon too.


Shared Editing Enhancement

This PR adds some improvements on current shared-editing. It basically adds shared-editing support for every component in the frontend; before only actions in the workflow graph will be "locked" and propagated. A few minor bug-fixes are also included in this PR.
What's New

The following actions will be disabled when a client is not granted lock:

Edit workflow name
Auto layout
Edit operator name
Edit PythonUDF code
Enable/Disable operator
"Run" button

The following actions will be propagated from the lock holder session:

Python UDF Code (in real time)
Operator/Link highlighting
Change workflow name
Change operator name
Cache/Uncache operator
Enable/Disable operator

The layout of some buttons in the navigation panel is changed to distinguish "view" and "edit" related buttons.
The text content of the "acquire lock" button is changed to have clearer and more concise wordings; the button size is also shrunk.

Fixes

Temporary fix for undo-redo: Since some actions like highlighting are only related to the view, it does not have undo/redo. So I change undo in Command to optional, and highlighting does not have undo-redo.
Previously, when an execution is paused and the lock status is changed, the non-lock-holder will be able to edit the workflow. I fixed this bug.

Demo
I include 2 demos here:
Below gif shows the propagation of highlighting:

Below shows the real-time propagation of UDF code editor:

@Yicong-Huang I've fixed comment box dragging/adding comment not propagated. For dragging, I have not unified the code with dragging operators because of highlighting.


Ingestor command refactoring

This set of commits aims to improve the code quality of the ingestor command and related library functions in scicat-cli.
The following components were cleaned up:

Authentication
checkMetadata
addAttachment
createJob

Todo:

assembleFilelisting
testForExistingSourceFolder (partially done)
...

this can be closed, the branch should still be kept around however for future cherry picks


"Don't know how to build task 'test'"

https://github.com/renchap/webpacker-react/blob/master/lib/tasks/example_app.rake#L15
This line requires that there be a rake task called test defined. If none is defined in your app, the entire rake system is broken. Can't run rake -T or any tasks.
Was this meant to be done in the example_app namespace?
My Rakefile
require_relative 'config/application'

Rails.application.load_tasks

Using Ruby 2.4.1, Rails 5.1, webpacker 2.0, webpacker-react 0.3.0

Yes, I added this to ensure that example_app:webpack was launched before running this gem tests.
From what I understand, in your case this task is also launched when you run rails test in your Rails project? It is not the case for my project using Rails 5.1 (but I have the standard test rake task created by Rails).
Do you have any idea why a task defined in the webpacker-react  gem is loaded by rake in your own project?

In my project I'm not using MiniTest so there's no test task, only spec for RSpec. I'm guessing that Rails.application.load_tasks eagerly loads all tasks from all gems, right?

This is fixed in 0.3.1, thanks for the report!
It looks like Rails indeed loads this path for all gems, I did not knew this.


how to create one project with cli executables

I didn't see such entry_point defined in pep517, should I go with setup.cfg?
scripts of pdm could only be triggered with pdm run, right?
Could we have such examples?(maybe this is the wrong place as it's for multiple models in mono repo, sorry I came to know this after shooting the issue)

Short answer from mobile: read PEP 621 and look for project.scripts.
you can also find a real world example from the pdm repo

Thanks @frostming !!!
I came to reply with this, too(by checking other projects) to see you already pointed to the PEP!
[project.scripts]
nebulagraph = "nebulagraph_lite.cli:main"


Small cosmetic incostistence - Updater dialog: fields "Compiled" have value as "Git hash" and "Compile time" is expected

Small cosmetic incostistence - Updater dialog: fields "Compiled" have value as "Git hash" and "Compile time" is expected. Please, see screenshot:

just noticed the same and was confused

Fixed 👍

Big thanks!

Big thanks!


atom/Whitespace package eat random characters on save !

Step 1: atom --safe
Step 2: Open http://gundvang.dk/atom/fonts.js
Step 3: Save As font2.js
Step 4: Notice the missing iof if at line 22 and various missing character ( for example $('.expanded') at line 217 miss the x)
Step 5: Undo (file is ok)
Step 6: Disable package whitespace
Step 7: Save As font3.js (file is ok)
Step 8: Enable package whitespace
Step 9: Save As font4.js
Step 10: See the file mangled again (but in my case different mangle !)
issue on discuss

This issue was moved to atom/whitespace#99


MIssing support for Peek & Pop preview options & interaction delegate

We currently do not support a registerPeek transition with UIPreviewAction & UIPreviewInteractionDelegate support.

UIPreviewActionItems are set in UIViewController and UIPreviewInteractionDelegate can be implemented without the need of XCoordinator integration.


Implement the Chi Square significance test.

This commit adds a goodness of fit test using Pearson's Chi Square
test. It produces a test statistic, but does not produce a p-value.
Additionally, the calculation is currently untested.
chore: Implement Chi Square significance test.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#6  👈
#5
trunk

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

Join @RobbieMcKinstry and the rest of your teammates on  Graphite


feat: overwrite WebRTC APIs with a recursive ES6 proxy

While this solution is a bit crude, it seems to work in 100% of all cases.
From what I found, it doesn't even trigger scripts inspecting properties of Web API objects (but it also might be that WebRTC API is a bit too obscure for those scripts to even check).
fixes #124

Note to self: this breaks WebRTC altogether (for actual proper usage too), so it should be opt-out? Perhaps {"webrtc": "off"} somewhere in FingerprintGenerationOptions, so all the settings are together?

Any news on this being merged / included in a next release?


Orchestrating Robot Framework with Celery - issue when gracefully cancelling Robot Framework tests

Hi!
I have specific use case, where I'm executing Robot Framework tests through robot.run(....) method, and that method call is a part of Celery task which is responsible for setting up, executing and further reporting of the tests.
I'm now trying to implement a functionality of canceling the specific Celery task, which would also result in graceful termination of underyling Robot Framework execution (so that Robot report is generated etc.)
celery_app.control.revoke(celery_task_id_to_cancel, terminate=True, signal="SIGINT")
With above line I can achieve exactly what I need -> it gracefully terminates Robot Framework tests, generates reports and then sets celery task status to Revoked.

What is surprising and unexpected, after that I'm spawning completely new celery task and underyling Robot Framework execution is not able to start, it fails right when it's started (and I have not canceled this new task):

Important to mention, the above behavior is not 100% reproducible. Sometimes after triggering second task (when first one was canceled) it runs ok and Robot Framework tests are able to complete.
Only after restarting the worker container (Celery worker is running on Docker container), above issue is fixed, but then after first Cancel the issues start to appear again.
I suspect it's some threading collision between Celery and Robot Framework, maybe you have any ideas why something like that could happen? Thanks!

Looks pretty odd. Are you running Robot always as a new process or do you run it programmatically using same Python instance? In the latter case it's possible that Robot's internal state is messed up after graceful termination and new execution doesn't work.


koa-jwt 改為 middleware 形式

實作 #6 提到的問題

Codecov Report

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

@@          Coverage Diff          @@
##           master     #7   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           4      5    +1
  Lines          15     14    -1
=====================================
- Hits           15     14    -1

Impacted Files
Coverage Δ

app/middleware/jwt.js
100% <100%> (ø)

app/extend/application.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

有東西缺的麻煩您在說一下～謝謝

👍  我先合了~

我把issue關掉了，再麻煩您把版本及npm更新上去

version: 2.1.0
done.


⚠ Jenkins Plugins Artifactory has degraded performance

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

HTTP code: 200
Response time: 1157 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 48e96eb after 12 minutes.


removed non-used loops vars

this removes unused variables mentioned in https://github.com/samsung-cnct/k2/issues/375

LGTM

retest this please

retest this please

passed pipelet.  good enough for now as I don't expect the new jenkins system to pass this.


Drop on DropTarget wont work

I have created two react components. But children of a parent component with a DragDropContext with HTML5Backend.
One of the components is a DragSource and the other a DropTarget (both with same type).
The Drag one seems to be working fine. But the drop, when I drop the Draggable, wont run the drop method.
Draggable:
import React from 'react';
import { DragSource } from 'react-dnd';

const itemSource = {
  beginDrag(props) {
    return {};
  },
  endDrag() {
    console.log('END DRAG')
    return {a: 1}
  }
};

class DraggableWidget extends React.Component {
  constructor() {
    super()

    this.state = {
      moved: false
    }
  }

  render() {
    const { connectDragSource, text } = this.props;
    return connectDragSource(
{text}
)
  }
}

function collectDrag(connect, monitor) {
  return {
    connectDragSource: connect.dragSource(),
    isDragging: monitor.isDragging()
  };
}

export default DragSource('DraggableWidget', itemSource, collectDrag)(DraggableWidget);

and Drop:
import React from 'react'
import { flow } from 'lodash'
import { DragSource, DropTarget } from 'react-dnd'

const itemTarget = {
  drop() {
    console.log('it should be consoled')
  },
};

class Row extends React.Component {
  render() {
    const { connectDropTarget, canDrop } = this.props
    console.log(canDrop) // true

    return connectDropTarget(

        HOLA

)
  }
}

function collectDrop(connect, monitor) {
  return {
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    canDrop: monitor.canDrop(),
  };
}

export default DropTarget('DraggableWidget', itemTarget, collectDrop)(Row);

the drop won't run, even if canDrop is true

The same problem happening to me .
Any solution

Both DragSource and DropTarget items must be in DragDropContextProvider


mne.read_labels_from_annot

Description of the problem
When I try to run the read_labels_from_annot faunction, it automatically adds "subject_id/label" to the end of my subjects_dir. However, this is not where my aseg.mgz file is saved. It is in the Freesurfer/Subjects/subject_id/mri folder. Is there a way to stop it from adding 'subject_id/label" to the end of my subjects_dir?
Steps to reproduce
subject=sub-ABNUTCYL
subjects_dir="/home/stojek/bids_all_sessions/derivatives/freesurfer/subjects"

aseg_file=f"{subject_dir}/{subjid}//mri/aparc.a2009s+aseg.mgz"
      aseg_dir=f"{subject_dir}/{subjid}//mri/"
    vol_labels=mne.get_volume_labels_from_aseg(mgz_fname=aseg_file)
 #read in the labels.
    mne.read_labels_from_annot(subjid, subjects_dir=aseg_dir,parc='aparc.a2009s+aseg')

Link to data
No response
Expected results
Reading labels from parcellation...
read X labels from /home/stojek/bids_all_sessions/derivatives/freesurfer/subjects/sub-ABNUTCYL/mri/aparc.a2009s+aseg.mgz
Actual results
mne.read_labels_from_annot(subjid, subjects_dir=subjects_dir,parc='aparc.a2009s+aseg')
Reading labels from parcellation...
Traceback (most recent call last):
File "/tmp/ipykernel_2922456/4104134062.py", line 1, in <cell line: 0>
mne.read_labels_from_annot(subjid, subjects_dir=subjects_dir,parc='aparc.a2009s+aseg')
File "", line 12, in read_labels_from_annot
File "/home/stojek/miniconda3/envs/mne2/lib/python3.11/site-packages/mne/label.py", line 2325, in read_labels_from_annot
annot, ctab, label_names = _read_annot(fname)
File "/home/stojek/miniconda3/envs/mne2/lib/python3.11/site-packages/mne/label.py", line 2153, in _read_annot
cands = _read_annot_cands(dir_name)
File "/home/stojek/miniconda3/envs/mne2/lib/python3.11/site-packages/mne/label.py", line 2116, in _read_annot_cands
raise OSError("Directory for annotation does not exist: %s", dir_name)
OSError: [Errno Directory for annotation does not exist: %s] /home/stojek/bids_all_sessions/derivatives/freesurfer/subjects/sub-ABNUTCYL/mri/sub-ABNUTCYL/label
Additional information
Platform             Linux-5.15.0-71-generic-x86_64-with-glibc2.31
Python               3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:08:17) [GCC 12.2.0]
Executable           /home/stojek/miniconda3/envs/mne2/bin/python
CPU                  x86_64 (8 cores)
Memory               15.6 GB
Core
├☑ mne               1.4.2
├☑ numpy             1.24.4 (OpenBLAS 0.3.23 with 8 threads)
├☑ scipy             1.11.1
├☑ matplotlib        3.7.2 (backend=Qt5Agg)
├☑ pooch             1.7.0
└☑ jinja2            3.1.2
Numerical (optional)
├☑ sklearn           1.3.0
├☑ numba             0.57.1
├☑ nibabel           5.1.0
├☑ nilearn           0.10.1
├☑ dipy              1.7.0
├☑ openmeeg          2.5.6
├☑ pandas            2.0.3
└☐ unavailable       cupy
Visualization (optional)
├☑ pyvista           0.41.1 (OpenGL 3.3 (Core Profile) Mesa 21.2.6 via NVD9)
├☑ pyvistaqt         0.0.0
├☑ ipyvtklink        0.2.2
├☑ vtk               9.2.6
├☑ qtpy              2.3.1 (PyQt5=5.15.8)
├☑ pyqtgraph         0.13.3
├☑ mne-qt-browser    0.5.2
└☐ unavailable       ipympl
Ecosystem (optional)
├☑ mne-bids          0.12
└☐ unavailable       mne-nirs, mne-features, mne-connectivity, mne-icalabel, mne-bids-pipeline

read_labels_from_annot only reads surface .annot files from subject_id/lables/*.annot, it does not read .mgz volumetric files.
For further discussion please start a new thread on https://mne.discourse.group/ because this seems more like a usage issue than one about MNE-Python's code itself!


ParallelForwardingAppender not logging

I have configured ParallelForwardingAppender  but logging to file is not hapening
Details are as below
I have a web application on which reference log4net.asyc library and added the section
<configSections>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

My log4net config is as following.

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
    <file value="..\\Logs\\Logfile.txt" />
    <appendToFile value="true" />
    <datePattern value="yyyyMMdd" />
    <rollingStyle value="Date"/>
    <filter type="log4net.Filter.LevelRangeFilter">
      <acceptOnMatch value="true" />
      <levelMin value="DEBUG" />
      <levelMax value="FATAL" />
    </filter>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d{yyyy-MM-dd HH:mm:ss.fff} %10p %-5property{_App} %-5property{_Node} [%2t] %5c{1}.%M - %m%n" />
    </layout>
  </appender>
  <appender name="asyncForwarder" type="Log4Net.Async.ParallelForwardingAppender,Log4Net.Async">
    <appender-ref ref="RollingLogFileAppender" />
    <bufferSize value="200" />
  </appender>
  <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
    <reconnectOnError value="true" />
    <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
    <connectionString value="data source=localhost;Port=3306;initial catalog=logging_db;User ID=root;Password=;Max Pool Size=25;" />
    <commandText value="AddLogEntry" />
    <commandType value="StoredProcedure" />
    <bufferSize value="25" />
    <useTransactions value="false" />
    <parameter>
      <parameterName value="_appname" />
      <dbType value="String" />
      <size value="32" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="My Web Service" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="_action" />
      <dbType value="String" />
      <size value="45" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%c{1}" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="_level" />
      <dbType value="String" />
      <size value="10" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%p" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="_thread_id" />
      <dbType value="String" />
      <size value="10" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%t" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="_context" />
      <dbType value="String" />
      <size value="45" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%M" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="_context_id" />
      <dbType value="String" />
      <size value="128" />
      <layout type="log4net.Layout.RawPropertyLayout">
        <key value="context_id" />
      </layout>
    </parameter>
    <filter type="log4net.Filter.LevelRangeFilter">
      <acceptOnMatch value="true" />
      <levelMin value="DEBUG" />
      <levelMax value="FATAL" />
    </filter>
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="asyncForwarder" />
    <!--<appender-ref ref="AdoNetAppender" />-->
  </root>
  <logger name="Boloro.Business.RuleEngine.ConditionComparer" additivity="false">
    <level value="ALL" />
    <appender-ref ref="RollingLogFileAppender" />
  </logger>
</log4net>

Please let me know what wrong i am doing

Have you tried your appender configuration outside of the async forwarder?

Yes.following do work

Chris can you help me in it

Can you enable internal debug to see the actual error that you are getting ?

Ok i will try enabling intrnal debug to see the actual error

If you need the code for it here is it
<system.diagnostics>
   <trace autoflush="true">
     <listeners>
       <add
           name="textWriterTraceListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="C:\Path\log4net.txt" />
     </listeners>
   </trace>
 </system.diagnostics>

Thanks PoorDesigner,
Yes I know how to enable that tracing and have done it prior

Ok. Did you find out the issue?

I think it's due to log4net version difference. I have log4net 1.2.15
Error I am getting is
log4net:ERROR Could not create Appender [asyncForwarder] of type [Log4Net.Async.ParallelForwardingAppender,Log4Net.Async]. Reported error follows.
System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'log4net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

I have downloaded the repository and then reference the log4net new version. Now I am getting other error
log4net:ERROR [RollingFileAppender] ErrorCode: GenericFailure. Failed in DoAppend
System.NullReferenceException: Object reference not set to an instance of an object.
at log4net.Layout.Pattern.MethodLocationPatternConverter.Convert(TextWriter writer, LoggingEvent loggingEvent)
at log4net.Layout.Pattern.PatternLayoutConverter.Convert(TextWriter writer, Object state)
at log4net.Util.PatternConverter.Format(TextWriter writer, Object state)
at log4net.Layout.PatternLayout.Format(TextWriter writer, LoggingEvent loggingEvent)
at log4net.Appender.AppenderSkeleton.RenderLoggingEvent(TextWriter writer, LoggingEvent loggingEvent)
at log4net.Appender.TextWriterAppender.Append(LoggingEvent loggingEvent)
at log4net.Appender.FileAppender.Append(LoggingEvent loggingEvent)
at log4net.Appender.RollingFileAppender.Append(LoggingEvent loggingEvent)
at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)

I have put  in my RollingLogFileAppender and it's look like working now

Only thing i am seeing is that logs entries were written instantly in log file even tough i have put buffersize to 200

<appender name="asyncForwarder" type="Log4Net.Async.ParallelForwardingAppender,Log4Net.Async">
    <appender-ref ref="RollingLogFileAppender" />
    _<bufferSize value="10" />_
    <Fix value="268435455" />
  </appender>

The buffer size for asyncforwarder serves a different purpose. I am not sure what it means exactly but
here is what i think it is
As the async appender writes the messages parallely it stores the messages into buffer and then writes them into the logs  file/db. The buffer size here indicates how many messages that it can store in buffer before it reaxhes a state where it can't take more message
but @cjbhaines  can give more information on it

Is there any chance of loss of messages

No.  It will block when the buffer is full.

No mean's no loss of log entries?
What should i do for both performance gain and no loss of log entries?

Richard Collette Can you please let me know what's mean by block here?
Will application stop doing any further thing or logging will stop?

Hi Kamran, sorry I've not replied I have a lot of work commitments at the moment.
If you read the documentation in the readme you will see that the AsyncForwardingAppender is implemented using a ring buffer and loss of messages (the oldest ones) will occur when the buffer is full. This appender is slightly less efficient than the ParallelForwardingAppender because it has to poll the buffer on a background thread.
The ParallelForwardingAppender is implemented using a blocking collection so when the collection has reached it's limit then the threads trying to log will block which is not ideal in a low latency application.
So it's really up to you which one you want to use, it's all documented.

I don't want's the messages to be loss and neither low latency. Any suggestion how i can achieve both?
Even a suggestion for alternative appender will be fine

I suggest you use the AsynxForwardingAppender and use a large buffer size.

My application is doing about a 80 transaction per seconds where each transaction logs about 100 to 125 logs entries. Any suggestion for buffersize.

@KamranShahid  - If you don't want message loss then you definitely do not want to use a ring buffer.   ParallelForwardingAppender will not introduce any "extra" latency.  You just need to experiment and make sure that you use a buffer size that is sufficiently large to handle peak logging periods.
To better understand the behavior you should look at the documentation for BlockingCollection
https://msdn.microsoft.com/en-us/library/dd267312(v=vs.110).aspx

Ok . I will experiment with both again with peak load. About ParallelForwardingAppender I were thinking that my application proessing(other then logging) might have a glitch when there is a condition of bolcking occurs as described https://github.com/cjbhaines/Log4Net.Async
(I might be wrong in understanding that). My prior importance is my application don't slow for file i/o needed for logs entry in the file and neither logs will be loss.
That's why i had put the hack on my application_end event of my web application as described in http://stackoverflow.com/questions/2045935/is-there-anyway-to-programmably-flush-the-buffer-in-log4net to avoid loss.
Thanks

You should be calling LogManager.shutdown() on application_end.   That's not a hack, that's a known requirement of Log4Net.
https://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.LogManager.Shutdown.html
@cjbhaines  - This issues should probably be closed at this point.

Actually, I can do so I just realized.

For all people, having the same problem:
The cause of the trouble is, that Log4net.Async has a reference to log4net v. 1.2.13. If you work with a newer version (currently 2.0.x), it won't work. You need an assembly binding:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
	<dependentAssembly>
		<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
		<bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
	</dependentAssembly>
</assemblyBinding>

Use your current log4net version instead ov <IP_ADDRESS>.


ENH: Added public/private key encryption and decryption

Uses ECIES encryption decryption method; AES-128-CBC with PKCS7 is used as the cipher; hmac-sha256 is used as the mac

I don't think that this is BitCash specific and might make the most sense to have it in its own repository and Python package. If I'm not mistaken, would this code work for Bitcoin, Bitcoin Cash, and Bitcoin SV?

@sometato
No, this is not BitCash specific. Would work with any Elliptical Curve based public/private key pair crypto.
However, it adds feature parity with the Electron-Cash app. Users of BitCash get the simplicity of public/private key based encryption/decryption. Such encryption/decryption methods are very common, and have allied applications.
@merc1er
Although I don't mind waiting for the review, you can also test out the feature parity with the Electron-cash app.
>>> key = wif_to_key('cU6s7jckL3bZUUkb3Q2CD9vNu8F1o58K5R5a3JFtidoccMbhEGKZ')
>>> key.public_key.hex()
'033d5c2875c9bd116875a71a5db64cffcb13396b163d039b1d9327824891804334'
This hex of public key can be used in the Electron-Cash app to encrypt any message.
>>> encrypted_message = <string of encrypted message from the electron-cash app>
>>> key.decrypt_message(encrypted_message)
<the message in its binary format>


Build Failed on Update-Database

I've upgraded my asp.net core 2.0.3 app to EF Core 2.1 and when I try to update database, I'm getting:

PM> Update-Database -v
Using project 'src\DevPortal'.
Using startup project 'src\DevPortal'.
Build started...
Build failed.

But I'm able to build the project in Visual Studio
Full code:
https://github.com/Liero/vyvojari-sk/tree/2193d67facd5a284990478ebd21bb61a4c3522c0

@Liero What issue are you reporting here?

I was able to build and run the project in visual studio but the Update-Database reported build failed. I tried to run dotnet build and found error in once of .Test projects that were not built by VS when I tried to run the project.


Frequent crashes when exporting has finished

What went wrong?

Very often, when I export the images, the program crashes after the operation is successful. All of the images are exported properly regardless of the crash, so it only happens when the operation has properly finished.

If you can, tell us the steps to reproduce the problem.
Use the Export Layers plugin on Gimp 2.10.20. Crashes are inconsistent but frequent.
Configuration
Version of Export Layers: 3.3.1 (February 04, 2019)
Version of GIMP: Gimp 2.10.20
Operating system: Windos 10

I believe I managed to reproduce this. It seems like it only raises unhandled exception error if you didn't save before exporting.

Thanks for reporting this issue. The latest revision should fix this crash. Hopefully I'll make a new release soon.

Fixed in 3.3.2.


Update node-stdlib to last version

You fixed your proxy agent here, but didn't update this lib to last version of node-stdlib

It's not worth releasing a new version just to bump dependencies every time a downstream dependency gets a bug fix. The latest version of stdlib is compatible with package.json here, so just run npm update if you need to update.


Installation

Hi. I know that you probably have very little time on your hands for shitty questions like these, but could you post a brief installation process?
Kind of new to Jellyfin, don't yet know how to install it without repositories.
Sorry and best wishes!

Hej!
I do not recommend using this plugin yet. I started experimenting with it a couple of months ago and then did not have the time to finish it. It will need some additional work and polishing to be properly usable.
But I am glad that you asked. That surely expresses the importance of documentation. I will add a clarification about how to install and configure the plugin as soon as I will be able to finish it.
Is that okay for you?
Thanks and best wishes to you, too!


[ConnectedK8s] Add support for multiple proxy instances running on the same machine using different ports

This PR addresses https://github.com/Azure/azure-cli-extensions/issues/6366
For our use case, it would be very helpful for the connectedk8s proxy to support multiple instances running on the same machine. This enables interactions/ control over multiple Arc connected Kubernetes clusters from the same machine by simply switching your kube context.
This checklist is used to make sure that common guidelines for a pull request are followed.
Related command

az connectedk8s proxy
General Guidelines

[X] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[X] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[X] My extension version conforms to the Extension version schema

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

ConnectedK8s

Note, azdev style is failing, but the flagged issues are not par of the code changes in this PR.

@darrendejaeger Could you please help review it again?


various tasks for package admin/cleanup

rename LICENSE -> LICENSE.txt 61353f8
add a MANIFEST.in file 267753c
update supported Python versions (+3.9, -3.6)

setup.py (also python_requires=">=3.7") 21f963e
installation.rst 75a77b1

update binder link creation in conf.py and DRY in general 89631cd
remove pin spaces in .ci/*.yml files c958bf4
reduce min builds before reporting in codecov.yml 3f6264f
adjust environment.yml f788d0b

bump Python version to 3.9, -3.8
replace coveralls with codecov

requirements*.txt files

alphabetize 89a1234
create requirements_tests.txt with pytest, pytest-cov, & codecov a10dbfc
create requirements_dev.txt with black & pre-commit c2da3e4

update setup.py 21f963e

add keyword in setup(): py_modules=[package]
add dev & testing reqs to _groups_files

All resolved in #111

All resolved in #111


How to setup dynamic service allocation in k8s

Hi team,
I have a sitiation where , I am deploying war files on tomcat using k8s and exposing deployment as node port. All things are automated using cicd so that when new use comes with war file , he is getting tomcat based applciation ready but every time  node port is changing . I need an help so that when user is coming with some war file, I should ask him what is the service name he wants (eg http://example.com/context_root) and based on that, I should provide him ready to use service , instead of "http://worker-node-IP-Address:nodePort/context_root" as URL. Please suggest how can I achieve this?

Does https://kubernetes.io/docs/concepts/services-networking/ingress/ help you find the documentation you wanted, @dhandma ?
As you read that and if you still have questions, please note those down and share them.
/triage needs-information


[W-10501541] - Fix payment method bug

Work Item
W-10501541
Changes
Now, the payment method of the payment is displayed regardless of the Paid checkbox field.
Only when an opportunity has multiple payments the condition to list a Payment Method should be the value of the earliest payment record marked as Paid.

@JoseRossiSF I'm receiving a 500 error when trying to approve, so consider this message my approval! 👍


fix: plugin builder

Signed-off-by: Jim Ma<EMAIL_ADDRESS>
Description

Related Issue
Fix #1772
Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.

Codecov Report

Merging #1775 (c2704c7) into main (da75d80) will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1775      +/-   ##
==========================================
+ Coverage   43.73%   43.79%   +0.05%
==========================================
  Files         128      128
  Lines       15868    15868
==========================================
+ Hits         6940     6949       +9
+ Misses       8396     8388       -8
+ Partials      532      531       -1

Flag
Coverage Δ

Object-compatibility-e2etests
?

e2etests
?

unittests
43.79% <ø> (+0.05%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

client/daemon/peer/peertask_conductor.go
57.01% <0.00%> (+0.65%)
:arrow_up:


isssue

Related page
https://mui.com/material-ui/customization/color/
Kind of issue
Unclear explanations
Issue description
issue
Context
issue
Search keywords: issue

Which part is unclear to you?


Migrating from v4.0.0-beta.24 to v4.0.6

Version
Tell us which versions you are using:

react-native-router-flux v4.0.6
react v16.9.0
react-native v0.61.2

Hello everybody, after upgrading to v4.0.6 from v4.0.0-beta.24 I'm facing strange issues, like the back button not working or properties not correctly passed when pushing at new scene.
Does anyone know the main things to care about in this migration? Or is there anywhere to check the differences?
Thank you very much!

Please use latest 4.1.x version instead

Hi Pavel! But isn't 4.1.x still in beta?
Thank you

Yes, it's beta but it works well and it is based on latest react navigation 4.x and we use it in our production app


json export / import for post types/versions,

improvements to post type version cloning

good stuff 👍

👍  Perfect!


clicking on file name in github diff view should bring you to editor for that file

this would be quite useful in projects with many files and seems like an easy thing to do

and if clicking on a line would take you to that line in the editor that would be absolutely fantastic


feat(api): Adding Survey Slug to the Survey Submission output

A small change to the survey submission is adding a Survey Slug as a parameter to the output. For the sake of the external modules (a.k.a. intake24-dietician).

This will only add it to json response output. I think we should include it as field to data export. Maybe add survey name as well?

@lukashroch Reasonable.  Adding a field object to data-export-files.ts will do the trick, as I understand.
Will do that once I figure out why my data export doesn't work and can't be configured via the admin dashboard.
Have some issues with modifying the data export for the survey schema. I don't think it is connected to the task itself, rather then the survey schema. For some reason, I can't save the changes in the exported fields (admin dashboard) list even if I don't change the code and list of fields. Getting the following error:
ExportSections/3/id must be equal to one of the allowed values. Where 3 is `surveyCustom`.

Not sure if it is only me, but it is missing the translation in the admin dashboard, too - `survey-schemes.data-export.sections.surveyCustom.`

when sending the request to http://{HOST}api/admin/survey-schemes/8.
It seems connected to the surveyCustom section in the Exported Fields. Similar to the TypeError: dataExportMapper[section.id] is not a function error I get when exporting the data. In the getExportFields function on the execution of dataExportMapper[section.id](section.fields) on the surveyCustoms section (API).
Do you know if surveyCustom was added recently? Do I need to run any migration/code or change the survey schema?

It was added couple of months ago. I thought admin screen is merging with default so new section would me merged. We'll probably have to look into that.
If you paste in into raw json
[
  { id: 'user', fields: [] },
  { id: 'userCustom', fields: [] },
  { id: 'survey', fields: [] },
  { id: 'submission', fields: [] },
  { id: 'submissionCustom', fields: [] },
  { id: 'meal', fields: [] },
  { id: 'mealCustom', fields: [] },
  { id: 'food', fields: [] },
  { id: 'foodCustom', fields: [] },
  { id: 'foodFields', fields: [] },
  { id: 'foodNutrients', fields: [] },
  { id: 'portionSizes', fields: [] },
]

I think that should work?

It was added couple of months ago. I thought admin screen is merging with default so new section would be merged. We'll probably have to look into that. If you paste in into raw json
[
  { id: 'user', fields: [] },
  { id: 'userCustom', fields: [] },
  { id: 'survey', fields: [] },
  { id: 'submission', fields: [] },
  { id: 'submissionCustom', fields: [] },
  { id: 'meal', fields: [] },
  { id: 'mealCustom', fields: [] },
  { id: 'food', fields: [] },
  { id: 'foodCustom', fields: [] },
  { id: 'foodFields', fields: [] },
  { id: 'foodNutrients', fields: [] },
  { id: 'portionSizes', fields: [] },
]

I think that should work?

Yep, it all worked. Now, Survey Slug is added as an option for the Survey fields' export

Sorry,  surveyCustom actually became submissionCustom and survey is referencing the survey rather than the submission

Please add it also to docs: https://github.com/MRC-Epid-it24/intake24/blob/master/docs/admin/surveys/schemes.md#survey-record-fields

added


how to add hotspotcontainers in different scenes

hello i have a question. how do i put another hotspot container to another scene?
I'd like to put my embedded hotspot of youtube streaming in my activity hall scene. thank you so much

I am curious too. I am trying to modify my multiple scenes layout – generated with the "Marzipano Tool".
Trying to integrate different hotspots like shown in the demo "Hotspot Styles". I understand that I can load the html of the hotspots into my file. I know how to call the js and the css. But how do I tell differnet hotspots in what scene to apply?
Thanks for pointing out any suggestions!

I was wondering the exact same thing. When I followed the code of the demo (embedded hotspot) it would just show the video in the last scene and kept overwriting it in the previous ones.
So I found a solution that for sure isnt the most elegant way, but it works. Since I couldnt add any fields in the data.js I added sth inside of the loop in the index.js

It's not possible to add embedded hotspots by modifying the generated data.js file. You must edit the JavaScript code as shown in the previous comment.

It's not possible to add embedded hotspots by modifying the generated data.js file. You must edit the JavaScript code as shown in the previous comment.

No es posible agregar puntos de acceso incrustados modificando el generado data.jsarchivo. Debe editar el código JavaScript como se muestra en el comentario anterior.

Creo que estas equivocado, si se puede colocar Hotspots en cada escena dentro de data.js sin que estas aparezcan o interrumpan otra escena, incluso hay maneras de calcular donde colocar cada hostpot, aqui les dejo mi repo de pruebas.
https://github.com/3P4R4/Recorrido_360


Does not identify the link as an avif file

Thanks for the great package!
I had a problem with my links.
When I try to save the image in my browser, it offers the .avif format.
But the package gives an error.
StateError (Bad state: https://imagedelivery.net/UFXEtuTp-F3STPvnZt0ShA/e7167363-ad5c-47d9-691b-3bdbd38b4400/medium is not an avif file.)

Maybe related to https://github.com/yekeskin/flutter_avif/issues/35

The problem affected the inaccessibility of the link in my region.


CSS source map and compression options are configured wrong

[x] I tried updating to the latest version.

[ ] I can't, there is an issue.

[ ] I Am on Windows

[ ] Ubuntu Bash on Windows
[ ] Fedora Bash on Windows

[ ] I Am on Linux
[x] I Am on macOS

Description
I opted for an issue because I'm not sure what it takes to test or what the preferred intent is, but I noticed that the current configuration seems to be the opposite of what is expected.
CSS compression is always on if source maps are enabled. In when the env is development, source_maps are on by default. Thus, compression is on by default in development, which I assume is the opposite of what is desired.
Steps

Run Jekyll in dev mode
Check out the assets folder
CSS is compressed

Expected
CSS should be uncompressed

Ironically it is intended... but not for long. Sprockets only does (or did) SourceMaps when compression is enabled, because it's at compression time that they do SourceMap generation (though this might have changed, and I think recently I seen something in their source that indicated that, that or I read the source wrong at the time... which can happen sometimes,) so we had to enable compression to do SourceMaps or take over everything, which at the time with such a big release was something I wasn't willing to do.
Luckily, over the last few months of releases, I've slowly added in stuff that will allow me to eventually take over that one last piece of SourceMaps so I can do it myself at a particular time, this should be changing here soon (read: sometime this month,) but for now it was hacky way to get what you wanted without having to create too much surface at once.

Ah, that makes sense. Thanks for the explanation. I was also going to open an issue noting that the sourcemaps that are generated for me are pointing to the wrong sources, but unless you want to look into that now, I figure I'll wait to see if your future changes resolve the issue.


Feature Request: Help Command

Is your feature request related to a problem? Please describe.
If someone uses the app without checking the source then there are high chances he won't readme file and hence he/she won't be able to use that. So a feature request: Help Command
Describe the solution you'd like
Will help the user to understand how to use this tool

Feature approved
This feature seems useful, thanks for your request! @MannuVilasara
PRs are open for everyone, just comment and start working, we appreciate all contributions.
Who interests could contribute, else I'd work on the same after a few days.
Implementation
Need to parse the command line arguments and check for --help / -h commands
and on the command usage, should show all the keybinds


依照开始文档，Bundle exec jekyll server 操作时  出错

我在依照官方文档操作时，Bundle etec jekyll server 报错 求告知
错误提示内容 Liquid syntax error (line 43): Unknown tag 'gist'

NexT is rebased into organization repo.
If you want new feature, fix, or support, create new in NexT v6.x repo (desirable in English).
There is instructions on English or Chinese how to update from v5.1.x to v 6.x
You also may read this for details.


bump object-store to 0.10

Actually looks like there were some changes around multipart uploads in object-store 0.10. I don't have the time right now to fix those

@H-Plus-Time is there some way to easily bump to object-store 0.10? I'm trying to upgrade geoarrow-rs to use arrow/parquet 52, and parquet 52 uses object store 0.10, so I need to update this object-store-wasm to also use object-store 0.10

I commented out multi part uploads for S3 but otherwise this branch compiles on object-store 0.10, which is good enough for geoarrow-rs to depend on this branch

Oops, yes, I've let this one languish a tad. Yeah, I know of no-one depending on it for Multi-Part (and it's not as if there aren't other options), LGTM.

Actually looks like there were some changes around multipart uploads in object-store 0.10. I don't have the time right now to fix those

Oh. Oh dear. I really need a good way to distinguish between bot notifications and ones from actual people 😬

No worries! I've been taking a bit of a break!


similarity_search Rust

I propose to consider the possibility of implementing the task using the Rust programming language and the functionality and recommendations available in CluadFlare. I propose a solution for consideration. https://github.com/1712n/dn-institute/issues/431

Could you explain the advantage of switching from TS to Rust to solve the batching challenge? Are there any cost calculations or test results that support your reasoning?

Switching from TypeScript (TS) to Rust for solving the batching challenge in a Cloudflare Worker can offer several advantages, particularly in terms of performance, safety, and resource efficiency. Below, I’ll outline these advantages and how they might impact cost calculations and performance metrics.
Advantages of Switching from TypeScript to Rust

Performance:

Low-Level Control: Rust provides low-level memory control, which allows for more efficient use of system resources. This can lead to faster execution times compared to JavaScript/TypeScript, which run on V8.
Concurrency: Rust’s concurrency model, built around the concept of ownership and borrowing, allows for safe and efficient parallelism, which can be beneficial for handling large volumes of batched requests.

Memory Safety:

Zero-Cost Abstractions: Rust ensures memory safety without a garbage collector, which means there’s no runtime overhead for memory management. This can lead to more predictable performance.
No Null or Undefined Values: Rust’s type system eliminates null and undefined values, reducing a common source of bugs and crashes.

Compile-Time Guarantees:

Error Checking: Rust catches many errors at compile time rather than runtime, resulting in more reliable and stable code.

Ecosystem and Tooling:

Cargo and Crates.io: Rust’s package manager (Cargo) and the repository of reusable libraries (Crates.io) provide robust tools for managing dependencies and building projects, which can speed up development time and improve code quality.

Cost Calculations and Test Results
To support the reasoning behind switching from TS to Rust, it’s useful to perform cost and performance analyses. Here’s how you might approach this:

Performance Benchmarks:

Latency Tests: Measure the average response time for batch processing in both the TypeScript and Rust implementations.
Throughput Tests: Measure the number of requests handled per second by each implementation.
Resource Utilization: Monitor CPU and memory usage for both implementations under the same load conditions.

Cost Analysis:

Execution Time: Since Cloudflare Workers are billed based on CPU time, a faster execution time directly translates to lower costs.
Resource Efficiency: More efficient memory and CPU usage can reduce the need for higher-tier plans.

Reliability and Maintenance:

Error Rates: Compare the frequency of runtime errors and crashes between the two implementations.
Maintenance Costs: Consider the long-term maintenance costs associated with each language. Rust's strict type system and compile-time checks can reduce the number of bugs and maintenance overhead.

Example Test Results
Suppose you conducted benchmarks and found the following results:

Latency:

TypeScript: 200ms per batch
Rust: 100ms per batch

Throughput:

TypeScript: 50 requests per second
Rust: 100 requests per second

Resource Utilization:

TypeScript: 70% CPU, 200MB RAM
Rust: 50% CPU, 100MB RAM

Error Rates:

TypeScript: 5 errors per 1000 requests
Rust: 1 error per 1000 requests

Cost Calculation Example
Assume the cost per 1 million requests based on execution time and resource usage:

TypeScript:

Execution Time: 200ms
Cost: $0.50 per 1 million requests (example rate)

Rust:

Execution Time: 100ms
Cost: $0.25 per 1 million requests (example rate)

Switching to Rust results in half the execution time, reducing the cost per request and improving overall system performance. Additionally, lower resource utilization might allow you to use less expensive Cloudflare Worker plans or handle more traffic on the same plan, leading to further cost savings.
Conclusion
Switching from TypeScript to Rust for the batching challenge can yield significant performance improvements, cost savings, and increased reliability. The benefits of Rust’s performance, memory safety, and concurrency model provide compelling reasons for the switch, supported by concrete cost and performance metrics.

Thank you for your suggestion to switch our Cloudflare Worker from TypeScript to Rust. I appreciate you taking the time to research and propose potential improvements to our stack. However, after carefully reviewing the information you provided, I don't believe it adequately justifies the significant effort and risk involved in changing our existing TypeScript implementation to Rust. The comparison you shared, while informative about the general characteristics of TypeScript and Rust, does not directly address the specific technical challenges and requirements of our Cloudflare Worker. It reads more like a high-level language comparison rather than a targeted analysis of how Rust would concretely benefit our particular use case, codebase, and constraints.
To properly evaluate a major language and toolchain change like this, we would need to see:

A clear articulation of what specific pain points and limitations we are encountering with TypeScript that warrant considering an alternative. What are the performance, productivity, maintainability or other issues we need to solve?
An analysis of how Rust would address those shortcomings for our Cloudflare Worker, supported by data, test results, benchmarks, or examples from similar projects. Generic language comparisons aren't sufficient to gauge the real-world impact.
A cost-benefit analysis of the migration. Changing languages involves significant engineering effort, new tooling and build processes, a learning curve for the team, and ongoing differences in hiring and maintenance. We need a compelling reason to incur that cost. What measurable benefits would make it worthwhile?
An incremental migration plan that mitigates risk. Rewriting the entire worker in a new language all at once would be very disruptive. Could we identify a small piece to prototype in Rust first and compare the outcomes? How would we roll it out gradually to our customers?

I'm not saying Rust is necessarily the wrong choice, but we need to do our due diligence and build confidence that it's the right choice for this particular challenge. The current rationale doesn't meet that bar.

Thank you for our conversation. You are right and I understand you intentions. It is interested what are you doing. Because I am not so deeply involved in your activity I try to be useful and provide easy way to communicate with you.
As I see you expect deeply involvement at start (with deeply research). I am not ready for such competitions. I just would liked share my knowledge.
Good luck!


Add prelude header for simplicity

An header with the most common includes would be useful for keeping samples and user code simple and short.

Related to #333.

No longer relevant.


align TensorNet with TorchMD implementation

Changes:

normalise the residual stream of X during message passing
add a LayerNorm before the ScalarReadout.mlp

@guillemsimeon - thanks for your offline comments regarding this.
I have a test in graph-pes that checks for equivariance of models: tests/models/test_equivariance.py.
As part of this, I construct a (symmetric) methane molecule, and check that the force magnitude on the central C atom is 0. Without the final LayerNorm, I get a magnitude of ~3e-5 (good enough) for TensorNet. However, when I add this LayerNorm, I get a magnitude in the range of 1e-2 : this is very much not 0!
Are you aware of this behaviour/have you seen it before?


E2E tests failed when scheduler patcher was killed by SIGKILL

Deploy CSI
Kill patcher pod to prevent configuration restore
Try to run e2e tests - failed with scheduler not restarted error

We have bm-wait-scheduler-restart option for e2e tests which can be used as workaround for this problem.
https://github.com/dell/csi-baremetal/blob/1bac047c625360599acbb3a4b57a48a7ed558eb9/test/e2e/baremetal_e2e_test.go#L45

We have bm-wait-scheduler-restart option for e2e tests which can be used as workaround for this problem.
https://github.com/dell/csi-baremetal/blob/1bac047c625360599acbb3a4b57a48a7ed558eb9/test/e2e/baremetal_e2e_test.go#L45

This issue was addressed during code refactoring


How to check Payment Decline status in Android Google Play Store @question

Hi,
Question:
Recently few of our customers payment has been declined in the Google Play store Transaction history. I don't any API or status reference where we can check Payment decline from Google Play store. Any Advice?
We are using RNIap.buyProductWithoutFinishTransaction(id);
Does validateReceiptAndroid help to validate transaction response from Google Play?
Response from Google Play
{"purchaseToken":"ndtslbfohescbfnvbiwkgkgf","signature":"lM2UG39Fotcsds6arm/FzkqmZgNJuMpnC0Sl43+ZMx5GvKVqgS0HeXmHSixtxb7+g/fr8NYTodLHuQ9FXLEbPrHFHkI2udQjtTUR3aEkDXo5WYBmhLd2KRQ4P3fWjfxaf1TnKof4NuysxmNf8Skex2Zlr8AmhXvbX6Fly5MIyLUYlRm90pO8kY6hZhadgURNBlD7nUKK7m+6K17UCfDd+C5qB8pm5h09bpe2M/bFauKbo+wFlUIsEVyxfrkETn6/MnE5sQjp3PTGuy464q3Tz6oNrQ==","autoRenewing":false,"data":"{"orderId":"7702772427343288954.2384710893962521","packageName":"com.xxxxxxxx","productId":"30000_advancedpack","purchaseTime":1533983071450,"purchaseState":0,"purchaseToken":"ndtslbfohescbfnvbiwkgkgf"}","transactionReceipt":"ndtslbfohescbfnvbiwkgkgf","transactionDate":"1533983071450","transactionId":"7702772427343288954.2384710893962521","productId":"30000_advancedpack"}

@charles85 I am not sure about this one but validating receipt may help you find out the problem.

Ok. We will try with validating receipt on server side because we saw few transaction payment was cancelled after 30 mins user made the purchase. Do we have a callback on this part?

Yes.

@charles85 If user canceled the purchase, I think you can't manage it unless you check the receipt manually. Check transactionReceipt field in the readme. Maybe there could be better approach, but currently I think checking the receipt is the only way. Check receipt-validation.


Feature request: Stop execution of code

It would be very helpful to have a "stop" button with an associated keyboard shortcut that stops code execution. For example, when currently running a python code there is no way to stop it other than killing the process or Cmd+Q-exiting VS Code. I assume the same happens with other languages.

@dkgaraujo how are you running "a Python code"?

Hi @weinand - thanks for your inquiry and further info. I was running through the command line; more specifically, it was a *.py file that I ran through "control-option-N" (the output was in a separate "Code" session, not in the terminal session in the window below). Unfortunately "Control-C" didn't pause it.

I'm not aware of a "control-option-N" command for running Python programs.
Are you using a (Jupyter-) Notebook? A screenshot would be helpful.
Thanks.

Sorry, only now I realised - this control+option+N option to run the code is from the extension "CodeRunner". It creates a "play" button on the top right where users can run the code by clicking it, or by pressing the key command I mentioned. But regardless of how the code runs, there is no button in VS Code native that will stop the code.
(Incidentally, I actually tried to record the screen with this issue but a pop-up saying it needed to be updated - when it had just been updated - showed up and did not go away no matter how many times I clicked 'OK'. If you think it's worth it I can file a new issue and post that video.)

@dkgaraujo since the "Coderunner" extension provides the "play" button, only that extension could provide the corresponding "stop" button.

Many thanks @weinand - makes complete sense. I thought a “stop button” should be part of VS Code by default but then, you are right - given the play button comes from an extension, I should discuss it with them. Thanks for your time!

@dkgaraujo please note that the Python extension already provides a "Run" and "Debug" button in the same location as the CodeRunner extension:

That's excellent, @weinand, thanks. That's exactly what I was looking for. Thanks for all your time!


GDScript but not C# is able to set Blend Shapes values via code

Godot version: 3.2 (stable) mono
OS/device including version: Windows 10 19014
Issue description:
The attached project shows GDScript (but not a similar c#) is able to set the blend_shape value via code
Steps to reproduce:
See the attached project, run Game scene with 2 sphere, the one (red) with GDscript works, not the green sphere with c#
Minimal reproduction project:
[BlendShapeCsharp.zip]
(https://github.com/godotengine/godot/files/4208427/BlendShapeCsharp.zip)
Ref of the modified project:
Other open issues with blend shapes
Most relevant:
https://github.com/godotengine/godot/issues/15778
Other FYI isseus:
https://github.com/godotengine/godot/issues/31595
https://github.com/godotengine/godot/issues/34658
https://github.com/godotengine/godot/issues/24226
https://github.com/godotengine/godot/issues/17749

In Csharp,  BlendShape are get and set through two classes
ArrayMesh.cs and VisualServer.cs
Interestingly, in ArrayMesh.cs there is no corresponding SetBlendShapeWeight method
Could this explain why the above bug happens?
================================================
There is this method in VisualServer.cs
/// <summary>
/// <para>Sets the weight for a given blend shape associated with this instance.</para>
/// </summary>
[GodotMethod("instance_set_blend_shape_weight")]
public static void InstanceSetBlendShapeWeight(RID instance, int shape, float weight)
{
     NativeCalls.godot_icall_3_630(method_bind_262, ptr, RID.GetPtr(instance), shape, ref weight);
}

One way to by pass bugs in Csharp is to call GDScript from c#

instance_set_blend_shape_weight is a method that is called from MeshInstance and takes data from the mesh instance consuming the mesh. I'm guessing each mesh instance can set their own weights even when they reuse the same mesh.
If you try and call that method on the visual server and pass it an ArrayMesh instead of a MeshInstance I can imagine it will crash.

From a quick look, you're calling set in GDScript but _Set in C# instead of Set. Could that be the cause?

@neikeq I just check, U are right. Next time, I go straight to u without waiting too long here :-)


feat(gcp-stackdriver): handling value if no timeseries is return

Provide a description of what has been changed
Context: it's pretty common to see metric that have no value during some period that can be interpretate by 0.
So this pulling request adding an optional metadata valueIfNull. This value (if not empty) that will be used if there is no timeseries return by the gcp monitoring query.
Checklist

[x] When introducing a new scaler, I agree with the scaling governance policy
[X] I have verified that my change is according to the deprecations & breaking changes policy
[X] Tests have been added
[x] Changelog has been updated and is aligned with our changelog requirements
[X] A PR is opened to update the documentation on (repo) (if applicable)
[X] Commits are signed with Developer Certificate of Origin (DCO - learn more)

Fixes #

Relates to #
https://github.com/kedacore/keda-docs/pull/1285

/run-e2e gcp

/run-e2e gcp


:memo: Update Windows installation instructions

Hey :wave:! Not sure if you're interested, but you can just use windows-build-tools, which will make the whole installation process a lot easier :wink:

agreed but it is nice to list both install processes. Similar to the windows related instructions in node-gyp readme

That's awesome, thanks @felixrieseberg 🙌


is not updating and is not showing tree

Hello.
I follow yout doc and the creocoder doc too.
I created database like in documentation
I can see just parent tree menu and not the children ( do it manually ),
I can move the menu
But is not updating.
no errors from server
I make a log in IF-ELSE statement, the parameters are passing in correct way and json is returning.
Can you please help me?
thanks

was my model rules validation the problem


Dependency on Plots.jl

The current implementation has Plots.jl as a dependency. However, Plots.jl is only required for visualization. A refactor to not require Plots would help make TagPOMDPProblem.jl a bit lighter.

Closing this for now based on improvements with Julia over the past year.


fix: G2P module fails to initialize #138

✨ Description
The G2P module fails to initialize due to using an unassigned variable. This PR fixes this bug.
🚧 Related Issues
#138
👨💻 Changes Proposed

[x] Fix the bug

🧑🤝🧑 Who Can Review?
@lmxue
🛠 TODO
None
✅ Checklist

[ ]  Code has been reviewed
[x]  Code complies with the project's code standards and best practices
[x]  Code has passed all tests
[x]  Code does not affect the normal use of existing features
[x]  Code has been commented properly
[x]  Documentation has been updated (if applicable)
[ ]  Demo/checkpoint has been attached (if applicable)

Before changes

After changes


Syntactic sugar for inplace object update

From this:
let a = {n: 42};
a.n = 69;

To this:
let a = {n: 42};
let a = a...{n: 69};

And here a new variable (the 2nd a) would be inserted.

On code generation, if the right hand side object to concatenate is a single-field one, we could optimize it into a handy inplace object update in JS.

On code generation, if the right hand side object to concatenate is a single-field one, we could optimize it into a handy inplace object update in JS.

This is not implemented, since an assignment statement could ruin the fashion of "everything is expression" and it's hard to adapt.


Distributing the MS bot to users in other tenant without publishing it to store

Hello Team,
I have a question related to the publishing process and distribution of app.
I have developed a bot in Microsoft teams using developer portal. I would like to make this app available for the beta customers or for testing purpose in some other tenant/ organization. As of now I can see only two options:

Publish to org
Publish to store
Is there any way I can make it available to the users in other tenant for testing purposes. I want to myself test the bot in some other tenant without publishing it to the store.

If yes, can you please tell me the solution?
And if I go for publish to store, I need to give test accounts as mentioned in your documentation. But the app will be available only to the organization where I have created the app. "you will be needing test accounts" can you elaborate on this, like where should the test accounts be created and what if I am not able to give the test accounts where I have developed the bot.
Please correct me If I have understood it wrong and let me know if you have any further questions.
Thanks,
Shweta

@mahavarkarshweta - You can use Sideload your app in Teams if you want to test and debug an app locally yourself or with other developers.
You can also sideload your app package in different tenant provided that your app registration is of type multitenant.

Thanks Meghana.
I had sideloaded the app. But since many days I was getting app does not exist error when I was uploading the app to other tenants.
But yesterday I tried I was able to.


Add layer

Add in ag data and new subregion boundaries for Uganda

Merge conflicts in:
src/assets/mtf-graphs/index.js
src/config/ug/uicontrols.js

Merges managed


chore: run k8s/generate_code.sh

Signed-off-by: Chin-Ya Huang<EMAIL_ADDRESS>

Please update the commit message to mention this change is about generating supportbundles

This includes:

https://github.com/longhorn/longhorn/issues/2759
https://github.com/longhorn/longhorn/issues/3957
https://github.com/longhorn/longhorn/pull/4953

Added ref to commit message.

Thanks @c3y1huang :+1:
cc @derekbit (for local volume)

Thanks @c3y1huang 👍!


Visual Studio 2013 Debug Configuration Compile Error

You want to:

[x] report a bug
[ ] request a feature

Current behaviour
The Code does not compile in Visual Studio 2013 with Debug configuration.
Steps to reproduce (if the current behaviour is a bug)
Compiling the source code in Visual Studio with an active Debug configuration results in the following error messages:

sio_client\socket.io-client-cpp-6063cb1\sio_client\internal\sio_client_impl.cpp(283): error C3321: initializer-list unexpected in this context
sio_client\socket.io-client-cpp-6063cb1\sio_client\internal\sio_client_impl.cpp(497): error C3321: initializer-list unexpected in this context

The Problem is a missing semicolon at the end of the LOG() define:
if(ec)LOG("ec:"<<ec.message()<<endl){}; should be
if(ec)LOG("ec:"<<ec.message()<<endl);{};
I'm not able to send a pull request because I'm not using GIT.
Therefore it would be great if someone else could test my patch and add it to a pull request.
I am also open for discussion on other solutions.
It would be great if my patch could make it in the next release because I'd prefer to use the library without private modification.
Thanks a lot in advance.
Setup

OS: Windows7
browser:
socket.io version: 1.6.1

Other information (e.g. stacktraces, related issues, suggestions how to fix)
The problem can be fixed by the following patch:
--- 3rdParty-OpenSource/sio_client/socket.io-client-cpp-6063cb1/sio_client/internal/sio_client_impl.cpp	2018-01-30 11:42:04.000000000 +0100
+++ 3rdParty-OpenSource/sio_client/socket.io-client-cpp-6063cb1/sio_client/internal/sio_client_impl.cpp	2018-02-02 17:09:27.000000609 +0100
@@ -280,7 +280,7 @@
         if(ec || m_con.expired())
         {
             if (ec != boost::asio::error::operation_aborted)
-                LOG("ping exit,con is expired?"<<m_con.expired()<<",ec:"<<ec.message()<<endl){};
+                LOG("ping exit,con is expired?"<<m_con.expired()<<",ec:"<<ec.message()<<endl);{};
             return;
         }
         packet p(packet::frame_ping);
@@ -494,7 +494,7 @@
             m_ping_timer.reset(new boost::asio::deadline_timer(m_client.get_io_service()));
             boost::system::error_code ec;
             m_ping_timer->expires_from_now(milliseconds(m_ping_interval), ec);
-            if(ec)LOG("ec:"<<ec.message()<<endl){};
+            if(ec)LOG("ec:"<<ec.message()<<endl);{};
             m_ping_timer->async_wait(lib::bind(&client_impl::ping,this,lib::placeholders::_1));
             LOG("On handshake,sid:"<<m_sid<<",ping interval:"<<m_ping_interval<<",ping timeout"<<m_ping_timeout<<endl);
             return;

hey, how this work is going?
this issue is not reflected at working branch still.
but I thinks It should be.


Upgrade actions dependencies

Description of the change
This PR upgrades @actions/* where possible. The reason to do so is that GitHub changed the rules around add-path to address a security vulnerability.

Checklist:

[x] Added the change to the changelog's "Unreleased" section with a link to this PR and your username
[x] Linked any existing issues or proposals that this pull request should close
[x] Updated or added relevant documentation in the README and/or documentation directory
~Added a test for the contribution (if applicable)~ I believe that the existing addPath test should verify that this is fine

I went ahead and made this change and release v0.2.2 (I messed up v0.2.1 at first...).
I'm going through the steps to get it into the package-set, at which time we can update setup-purescript.
We should still get this change into main, I will come back to this tomorrow and we can work on that.

It feels a little bad that CI is mad about Data.Functor and Data.Array stuff from a js upgrade -- guessing that's 0.14.x related?

CI is broken because the 0.14 package set doesn’t currently build — we’re applying some changes to the functors and related libraries. That work will be done in the next day or two and CI will work again then. But if this builds successfully against 0.13.8 then we can still merge it; the CI issue is temporary and only because we’re in a transition right now along with many other core packages.

It does build against 0.13.8: https://github.com/purescript-contrib/purescript-github-actions-toolkit/commit/4a094063e6e9fa4ce2d163eefa6b1cb0dce8660a
I'll set a reminder to kick the build on Sunday unless y'all want to merge before then

All fixed! Thanks, @jisantuc.

Shouldn't we also deprecate the addPath function as is done in the patch we're upgrading to? We could also remove it altogether to get ahead of this change, though we're going to have to figure out what to do in setup-purescript instead.
There are plenty of references to both functions throughout the project code and documentation, including:

The core docs
The tool cache docs
The core bindings and foreign file
The tests

Fortunately we don't even have bindings for set-env so there's nothing to do there.

Shouldn't we also deprecate the addPath function as is done in the patch we're upgrading to?

Can we deprecate things in PS? I'm used to Scala's/Python's way of deprecating things with decorators. How do users find out about deprecations in PS?

You can use the Warn type class to emit a compiler warning with custom text, which is how we typically handle deprecations. See, for example, in the compiler repo:
https://github.com/purescript/purescript/blob/868eba2be75fb21fc958ed48ace2b6c0897e6640/tests/purs/warning/CustomWarning2.purs#L1-L13
In this case we'd do something like
addPath
  :: Warn (Text "addPath is deprecated due to a security vulnerability and will be removed in the next release.")
  => String
  -> Effect Unit

Then, when someone uses the function in their code they'll see a compiler warning containing that text.

Oh that's pretty cool 😎 9591275

You can see an example of the syntax for filtering out warnings of this type here:
https://github.com/purescript/purescript-profunctor/blob/master/package.json

✅ 🎉 thanks for the pointer. Out of curiosity, will that exclude all user-defined warnings, even if a dependency adds a warning about something?

It will only censor user-defined warnings in this library. The —censor-lib flag censors warnings from library dependencies.


Create Blog “what-are-data-structures”

Automatically generated by Netlify CMS

Browser metadata
Path:      /
Browser:   Chrome <IP_ADDRESS> on Windows 10
Viewport:  2560 x 1238 @0.75x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved


[monorepo] chore: Adding husky and @jeliasson/husky-hooks

Implements @jeliasson/npm-husky-hooks, a npm package to increase the developer experience and consistency by providing a set of hooks that can be opted-in the development lifecycle.

[x]  Install @jeliasson/npm-husky-hooks to monorepo's root
[x] check-branch should not allow commits to main
[x]  check-lock-files should only allow pnpm lockfiles
[x] Write something cool about how this works in README

Thanks @jeliasson. I've updated this issue with a checklist to complete before merge.

That should do the trick @kjellberg.

Great! Thanks @jeliasson

check-branch

check-lock-files


Allow Bluebird.resolve(nativePromise) to yield the wrapped type

Hi there
Bluebird.resolve is often used (IME, at least) to wrap a native promise with the additional Bluebird methods.   For example:
Bluebird.resolve(fetch('/').then(r => r.text()).then(function(responseBody) {
  // use the responseBody string
})

flow thinks that responseBody is a native Promise (from fetch), whereas it should be the value returned from r.text().
Does this PR make sense to fix it?

... one other thought - ideally, I suspect all Bluebird functions would accept native promise and implicitly unwrap them - ie:
Bluebird.all([1, Bluebird.resolve(1), Promise.resolve(1)]).then(function(r: Array<number>) {

})

ought to typecheck ok, but I couldn't persuade that to work.  Any suggestions?


Serverless with Node14 & Yarn unable to install @vendia/serverless-express via serverless package/deploy. Pulls latest @CodeGenieApp tag instead

Context:
Yes, apollo-serverless-lambda is end of life.
Yes, apollo-serverless-core is end of life.
Yes, apollo-serverless-errors is end of life.
It appears that serverless cannot install (and I assume it cannot find since your migration) @vendia/serverless-express during package/deploy and instead it tries to pull @CodeGenieApp/serverless-express which is incompatible with Node14. @vendia/serverless-express is a dependency of apollo-serverless-core & apollo-serverless-lambda. Even with pinned versions of these I cannot run serverless deploy/package.
Any insight or suggestions would be greatly appreciated.
Node 14.20.1
Yarn 1.22.10
package.json
...
"dependencies": {
    ...
    "apollo-server-core": "3.6.2",
    "apollo-server-errors": "3.3.1",
    "apollo-server-lambda": "3.6.2",
},
...

Command: sls package --region dev --stage us-east-1
Read the last line.
warning<EMAIL_ADDRESS>The `apollo-server-lambda` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-express ><EMAIL_ADDRESS>The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n' +
    "warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-express > apollo-server-types ><EMAIL_ADDRESS>The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the<EMAIL_ADDRESS>package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-express > apollo-server-types ><EMAIL_ADDRESS>The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the<EMAIL_ADDRESS>package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core > apollo-datasource ><EMAIL_ADDRESS>The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the<EMAIL_ADDRESS>package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-lambda > apollo-server-core > apollo-server-plugin-base ><EMAIL_ADDRESS>The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning<EMAIL_ADDRESS>The @apollo/federation package is deprecated and will reach end-of-life September 22, 2023. It contains outdated utilities for both running subgraphs and composing supergraph schemas. Please migrate to the appropriate package for your use case (@apollo/subgraph or @apollo/composition). For more details, see our announcement blog post (https://www.apollographql.com/blog/announcement/backend/announcing-the-end-of-life-schedule-for-apollo-gateway-v0-x/) and documentation (https://www.apollographql.com/docs/federation/federation-2/backward-compatibility/#is-official-support-ending-for-apollogateway-v0x).\n' +
    'warning apollo-datasource-dynamodb ><EMAIL_ADDRESS>The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n' +
    "warning apollo-datasource-dynamodb ><EMAIL_ADDRESS>The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-datasource-dynamodb > apollo-datasource ><EMAIL_ADDRESS>The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the<EMAIL_ADDRESS>package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning apollo-datasource-dynamodb ><EMAIL_ADDRESS>This package is part of the legacy caching implementation used by Apollo Server v2 and v3, and is no longer maintained. We recommend you switch to the newer Keyv-based implementation (which is compatible with all versions of Apollo Server). See https://www.apollographql.com/docs/apollo-server/v3/performance/cache-backends#legacy-caching-implementation for more details.\n' +
    'warning apollo-datasource-dynamodb > apollo-datasource ><EMAIL_ADDRESS>This package is part of the legacy caching implementation used by Apollo Server v2 and v3, and is no longer maintained. We recommend you switch to the newer Keyv-based implementation (which is compatible with all versions of Apollo Server). See https://www.apollographql.com/docs/apollo-server/v3/performance/cache-backends#legacy-caching-implementation for more details.\n' +
    'warning apollo-datasource-dynamodb ><EMAIL_ADDRESS>This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.\n' +
    'warning apollo-datasource-dynamodb > aws-sdk ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.\n' +
    'warning apollo-datasource-dynamodb > aws-sdk > url ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.\n' +
    "warning<EMAIL_ADDRESS>The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning<EMAIL_ADDRESS>The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n' +
    "warning<EMAIL_ADDRESS>The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n' +
    "warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'warning apollo-server-core ><EMAIL_ADDRESS>This package is part of the legacy caching implementation used by Apollo Server v2 and v3, and is no longer maintained. We recommend you switch to the newer Keyv-based implementation (which is compatible with all versions of Apollo Server). See https://www.apollographql.com/docs/apollo-server/v3/performance/cache-backends#legacy-caching-implementation for more details.\n' +
    "warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the<EMAIL_ADDRESS>package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    "warning apollo-server-core ><EMAIL_ADDRESS>The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.\n" +
    'error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=16". Got "14.20.1"\n' +
    'error Found incompatible module.\n'
}

Error ---------------------------------------------------

  Error: yarn install --non-interactive --frozen-lockfile failed with code 1
      at ChildProcess.<anonymous> (/Users/dillonashley/Workspace/dt-service-vs-batch-intake/node_modules/serverless-webpack/lib/utils.js:92:16)
      at ChildProcess.emit (events.js:400:28)
      at ChildProcess.emit (domain.js:475:12)
      at maybeClose (internal/child_process.js:1088:16)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:296:5)
      ```

Sorry about that. Could you try now? I released a version that should be compatible with 14.x

Works! Amazing, thank you for your timely maneuvers!