High Latency seen in IIS Logs

Hey folks,
For some background: we are seeing a lot of latency when talking to Azure Storage. They've asked us to collect IIS_FailureTrace Logs to see a better picture of what might be happening.
We looked into the logs and see that there is a lot of latency during this event:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
  <Provider Name="ASPNET" Guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}"/>
  <EventID>0</EventID>
  <Version>0</Version>
  <Level>4</Level>
  <Opcode>18</Opcode>
  <Keywords>0x4</Keywords>
  <TimeCreated SystemTime="2018-01-12T10:08:32.469Z"/>
  <Correlation ActivityID="{80000189-0403-D800-B63F-84710C7967BB}"/>
  <Execution ProcessID="5980" ThreadID="3232"/>
  <Computer>RD0003FF271C0B</Computer>
</System>
<EventData>
  <Data Name="ConnID">0</Data>
  <Data Name="Context ID">{80000189-0403-D800-B63F-84710C7967BB}</Data>
</EventData>
<RenderingInfo Culture="en-US">
  <Opcode>AspNetHttpHandlerEnter</Opcode>
  <Keywords>
   <Keyword>Page</Keyword>
  </Keywords>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{06A01367-79D3-4594-8EB3-C721603C4679}</EventGuid>
</ExtendedTracingInfo>
</Event>

The next thing that happens shows a timestamp where it’s created 3 seconds after the previous event which is why we believe the latency is stemming from AspNetHttpHandlerEnter:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
  <Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
  <EventID>0</EventID>
  <Version>1</Version>
  <Level>4</Level>
  <Opcode>56</Opcode>
  <Keywords>0x0</Keywords>
  <TimeCreated SystemTime="2018-01-12T10:08:35.438Z"/>
  <Correlation ActivityID="{80000189-0403-D800-B63F-84710C7967BB}"/>
  <Execution ProcessID="5980" ThreadID="3232"/>
  <Computer>RD0003FF271C0B</Computer>
</System>
<EventData>
  <Data Name="ContextId">{80000189-0403-D800-B63F-84710C7967BB}</Data>
  <Data Name="HeaderName">X-CorrelationId</Data>
  <Data Name="HeaderValue">c420c068-246b-4e89-970e-8c2d4e684d23</Data>
  <Data Name="Replace">false</Data>
</EventData>
<RenderingInfo Culture="en-US">
  <Opcode>GENERAL_SET_RESPONSE_HEADER</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>

We’ve tried searching what that event is but we’re not able to find anything – we were wondering if you were able to help us dig into this anymore or had any thoughts on what this could be?
Attaching an example of the IIS_FailureTrace log.
MSOSP443_FE1.zip

Hi. We're closing this issue as no response or updates have been provided in a timely manner and we have been unable to reproduce it. If you have more details and are encountering this issue please add a new reply and re-open the issue.


Default exporting of the class created

How can we create a Class with default export?

Like so:
// or use addClases, insertClass, or insertClasses
sourceFile.addClass({
    isDefaultExport: true,
    name: "MyClass",
});

You can also similarly insert classes to namespaces, functions, class method declarations, etc..
Let me know if that solves your question or if you have other ones.

Thank you!


solution for issue #45 - Add option to relax SSL checks

This is the draft for a possible solution for issue #45
Possible optimizations:

The location of dangerous.rs is not optimal,yet.
I'd suggest to create a new folder "connectors" and move the RustlsConnector and a possible TcpConnector into that folder.
the body of new_with_clientconfig() in client.rs is equal to the last part of new. To remove doubled code one could replace the last part of new with a call of new_with_clientconfig(config).

This should be addressed with #59.


Fixing Blog page

Make each blog in one row on mobile resolution. And update the blogs to the latest ones. Fix the navbar menu button to hamburger menu. Change "go to top" button to an arrow icon.

Sure.


Adding smart contract using 'graph add' leads to SyntaxError with 'Zero' on manifest: subgraph.yaml

After using graph init --product hosted-service and attempting to add another smart contract using graph add <Address> --abi <localABI> --contract-name <contractName>, encountered following error:
SyntaxError: Aliased anchor not found: Zero* (4:19)
      2 |       address: '0x8af500dEf828b18A3a5D126F97aDf5D13eE69D3b'
      3 |       abi: lake
    > 4 |       startBlock: *Zero*

yaml thinks  *Zero* is an alias. I have temporarily fixed the issue by replacing all occurences of *Zero* in the node package graph-cli with 0.

I think this is the wrong repository.
Graph CLI is under a different repository;
https://github.com/graphprotocol/graph-cli


SP5: Alt-Right click to draw zoom region fails if the alt key is released before click is released

A per the title.  This is with the default interaction.  If the alt key is released before the right button is released the red zoom rectangle stays drawn on the screen and the zoom to region does not occur.  The red zoom rectangle will disappear the next time a region starts to draw.
I'm not sure what the best or expected behaviour is here.  Possibly one of:

As soon as the alt key is released clear the red rectangle and ignore the subsequent right click release?
Ignore the alt key release and continue tracking the mouse pointer to draw the red rectangle, zooming to the drawn region once the right click is released?

Either choice makes sense to me.  But, since the alt-right click is probably used most commonly with touchpads, I would probably recommend option 2 as it can be hard to hold down the alt key while clicking and dragging with a touchpad.

ScottPlot version 5.0.34 BTW.


[pwm] Correction to heartbeat mode

Heartbeat direction reversal was premature in the event of passing the target duty cycle (non-wrapping case). The heartbeat direction shall only be changed at the end of the 'X'+1 pulse cycles for the current duty cycle.
This was found using the improved DV which is ongoing; the current DV environment overlooked this deviation from the specification.

CHANGE AUTHORIZED:  hw/ip/pwm/rtl/pwm_chan.sv
This causes a behaviour change, but only by fixing a bug! Looks like the right thing to me.


Link to Garfield Checkpoint / Possibly Ambiguous Documentation?

First of all, thank you for sharing your exciting work! The GARField paper and code are both very impressive and have great potential for improving the world around us.
In my attempts to follow along at home, I've run into a couple of mentions of the fully trained Garfield checkpoint- I see it is require for Gaussian Fields and a required field in the Data scripts, but I do not see any link to the fully trained Garfield checkpoint either here, or on the popular model repository Huggingface.
If the checkpoint is hidden somewhere in this repo, or there is a link that I have overlooked, please let me know. Otherwise, please share the checkpoint! I would be happy to help by going through the process of getting it up on Huggingface and pointing the documentation over, if that would be any help.

Hi! The garfield model needs to be trained from scratch per scene, which takes around 30 minutes. More details are available in #22.


[EMB-377] fix project links modal

Purpose
Fix project links modal issues identified in EMB-377 (Problem 6)
Summary of Changes

Add readOnly parameter to node-card component to force-hide the dropdown controls (currently only shown for forks)
Use paginated-list/has-many directly w/ readOnly=true for links modal

Side Effects
Should be isolated to "Links to this project" modal since readOnly defaults to false.
Feature Flags
n/a
QA Notes
Make sure projects listed on "Link to this project" modal display correctly. Forks should not have dropdown controls in this view. Should also spot-check project registrations page and forks page, which both use the node-card component and it's logic for displaying the dropdown controls has been slightly refactored.
Ticket
https://openscience.atlassian.net/browse/EMB-377
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

Pull Request Test Coverage Report for Build 1737

1 of 2 (50.0%)  changed or added relevant lines in 2 files are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.02%) to 62.698%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/analytics-page/addon/application/controller.ts
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

app/models/node.ts
1
72.03%

lib/analytics-page/addon/application/controller.ts
6
52.94%

Totals

Change from base Build 1731:
-0.02%

Covered Lines:
3589

Relevant Lines:
5450

💛  - Coveralls


Method "to_pkcs1_pem" doesn't work for SigningKey

Hi.
I'd like to extract the signing key to PEM format, but receiving an error:
let mut csprng = OsRng;
let signing_key: SigningKey = SigningKey::generate(&mut csprng);

match signing_key.to_pkcs1_pem(rsa::pkcs1::LineEnding::LF) {
    Ok(_) => {}
    Err(e) => {
        error!("{}", e)
    }
}

Error:
unknown/unsupported algorithm OID: 1.2.840.1135<IP_ADDRESS>

Sorry, my problem is related with ed25519-dalek crate :)


Provide the capability to add custom actions to the test controller

Provide the capability to add custom actions to the test controller or chain methods that contain a test controller chain.
Custom Actions
Suppose the following test code:
const appPage = new AppPage();
test('log in', async t => {
    await t
        .typeText(appPage.loginInput, 'MyLogin')
        .typeText(appPage.passwordInput, 'Pa$$word')
        .click(appPage.signInButton)
        .expect(appPage.logInMsg.textContent).eql('Logged In');
});

With custom actions, you will be able to rewrite this test as follows:
test('log in', async t => {
    await t
        .logIn(appPage)
        .expect(appPage.logInMsg.textContent).eql('Logged In');
});

(from here: https://testcafe-discuss.devexpress.com/t/use-custom-actions-on-test-controller/228)
Chain Page Model Methods
Assume the following page model:
import { Selector, t } from 'testcafe';

export class Shop {
    constructor() {
        this.coffeeElement = 'a.coffee';
        this.teaElement = 'a.tea';
    }

    async makeCoffee() {
        await t.click(Selector(this.coffeeElement));
    }

    async makeTea() {
        await t.click(Selector(this.teaElement));
    }
}

In test code, you will be able to call these methods in a chain.
const shop = new Shop();

await shop
    .makeCoffee()
    .makeTea();

(from here: https://testcafe-discuss.devexpress.com/t/how-to-chain-pagemodel-methods/313)

Might a simpler alternative be to add a apply() action that takes a function as its argument, and then calls that function with the controller as its argument? Then there would be no risk of polluting the controller's API, and we could all factor out whatever we'd like into separate functions, at least provided we only want to do sync calls.

It's already possible with function composition :) You can use smth this:
test('can login', pipe(
<EMAIL_ADDRESS>'1234567')),
  expectsTo(see(Dashboard.container))
))

Just thinking out loud here but it looks like a custom action could be implemented as a subset of the current Role behaviour where a chain of actions are applied when using .useRole(roleX).
Let's imagine we have a similar .useAction(customAction) function and the custom actions would look something like this
const customAction = Action( async(t) => {
    await t
        .expect(something).ok(…)
        .click(Selector(x))
        .typeText('xyz')
        …
}
// Or just
async function(t){
    await t …
}

This would provide consistency with current API and wouldn't clutter the t object with our custom methods while still providing good facilities to execute them in the chain.
I could so how in a more mature project an internal library of actions could be procured so the individual tests are much higher level.

Any updates on this?

Once we get any results, we will post them here.

Bumping this, we've been looking for a way to do this with our testcafe suite @wistia, and we'd love to see this merged! If there's anything we can do to help here, let us know!

Is there any update on this since feature?

@Benyon, We have no updates at the moment.

Another point for discussing this feature:
Using Promise subclasses as return values for re-evaluating functions is bad in modern JS. Since if you return an instance of a Promise subclass from async function, it will be awaited automatically inside the engine and wrapper in a regular Promise.
> B = class extends Promise {}
[class B extends Promise]
> x = (async () => new B(resolve => resolve()))()
Promise { <pending> }
> x instanceof B
false

This is already especially bad for people using TestCafe and the promise-function-async TypeScript-ESlint rule. Since ClientFunctions returns extended Promises and the rule can auto-fix your code, using it can turn reexecutable promises into regular promises, practically disabling Smart Assertions and in some cases even completely breaking your test scenario if it is written with chained actions.

would really like that feature! :)

This feature would be gold 🥇 My tests would look awesome. ✨

Definitely would be nice as a few of our tests can be quite long and chaining within single models would make things a lot cleaner.

Having a feature such as this would be great when using POM. Without this, I have to break the test chain often and produces messy code. A simple function that just executes whatever is passed to it would make it much easier.
Current:
    await t
        .click(Page.Inventory.El.ItemAddRemoveButton)
        .expect(Page.Inventory.El.ItemAddRemoveButton.innerText).eql('REMOVE')
        .expect(Page.Navbar.El.ShoppingCartBadge.innerText).eql('1')
        .click(Page.Navbar.El.ShoppingCartButton);
    await Page.Cart.ItemExist(item);
    await t.click(Page.Cart.El.CheckoutButton)
    await Page.Checkout.EnterInfo(person);
    await Page.Checkout.ItemExist(item);
    await t.click(Page.Checkout.El.FinishButton)
        .expect(Page.Checkout.El.CompleteHeader.innerText).eql('THANK YOU FOR YOUR ORDER');

I'm not sure why I seem to be the only one on the Internet who ran into this problem, but I kept getting ReferenceError: Selector is not defined in my custom action. The solution is to put this at the top of your .testcaferc file:
const { Selector } = require("testcafe");

Maybe this'll save someone time in the future.

https://github.com/DevExpress/testcafe/issues/1535
Hi @DanKaplanSES,
This is how Node.js works: you need to import the Selector class before using it.

This is how Node.js works: you need to import the Selector class before using it.
@miherlosev

True. You mean require, though right? I tried import and it errored (maybe because it was in a cjs file and not a js file? Although I thought node.js uses CommonJS by default anyway, so I wouldn't expect that to make a difference).

Hi @DanKaplanSES,
It is the same. import is used in ESM and require is used in CommonJS modules, but they serve the same goal - import one module to another. In the config file, you need to use require because TestCafe doesn't support the ESM format in the config. In tests, you can use both ways.


fix size text menu left

Fixes #5314cdb.
Changes proposed in this pull request:

Change text size menu left

@rafaelmilanibarbosa What is the reason for this change?  "Fixes #5314cdb" isn't a valid issue.  Can you explain further what you are attempting to do here?


Type issue with multer-s3 3.0.1 and @aws-sdk/client-s3

Following the example in the README, using S3 instead of S3Client, I obtain this error of missing parameters...
Type 'S3' is missing the following properties from type 'S3': getBucketLifecycle, getBucketNotification, putBucketLifecycle, putBucketNotification, and 11 more.ts(2740)
index.d.ts(13, 5): The expected type comes from property 's3' which is declared here on type 'Options'

import multers3 from 'multer-s3';
import { S3 } from '@aws-sdk/client-s3';

const s3 = new S3({});
return {
	storage: multers3({
		s3,
		contentType: multers3.AUTO_CONTENT_TYPE,
		bucket: config.get<string>('S3_BUCKET'),
		key: function (req, file, cb) {},
	}),
};

Since I had to change S3Config to S3 (as S3config had many more errors), is there anything else I'm missing?

Edit: I just noticed the typings for multer-s3 seems to be out of date, as they still target multer-s3 v2...
// Type definitions for multer-s3 2.7


pandas Series typing is confusing and raises a TypeError exception

Environment data

Pylance: v2022.10.10
pylint: 2.15.0
pandas: 1.4.4
Python: version(3.10.7 (tags/v3.10.7:6cc6b13, Sep  5 2022, 14:08:36)
Visual studio: 1.72.00
Windows-10-10.0.19042-SP0

Code Snippet
from pandas import DataFrame, Series

df: DataFrame = DataFrame({'A': [1,2,3], 'B': [3,4,5]})

row_a = df.loc[0]
print(f'row_a =\n{row_a}')

row_b: Series = df.loc[0]
print(f'row_b =\n{row_b}')

try:
    row_c: Series[int] = df.loc[0]
    print(f'row_c =\n{row_c}')
except Exception as exc:
    print(f'Exception({type(exc).__name__}): {exc}')

def my_func(_df: DataFrame) -> None:
    """ my_func """
    row_d: Series[int] = _df.loc[0]
    print(f'row_d =\n{row_d}')
    return

my_func(df)

Actual behavior

On the one hand Pylance expects Series with an argument Series[S1] and reports that the type is partially unknown otherwise.
On the other hand pylint reports that the argument as unexpected: Value Series is unsubscriptable.
Line: row_c: Series[int] = df.loc[0] raises a run time exception: TypeError: 'type' object is not subscriptable.
However the very same code line within the my_func function works correctly: row_d: Series[int] = _df.loc[0]

Expected behavior

It is sensible that 'Series has an argument.

I used to trust Pylance and hide pylint messages (assumed false positive)
with pylint: disable=unsubscriptable-object until I got the TypeError exception.

My investigation gives confusing results:

Pylance uses its own dedicated stubs located at
C:\Users\...\.vscode\extensions\ms-python.vscode-pylance-2022.10.10\dist\bundled\stubs\pandas\core\frame.pyi
where Seriesis defined as a Generic type with one argument.
class Series(IndexOpsMixin, NDFrame, Generic[S1]): ...

pandas defines the class Series in file ...\Python310\Lib\site-packages\pandas\core\series.py
as class Series(base.IndexOpsMixin, NDFrame): ... with no argument.
Note that this series.py module is typed: few lines later read:

    @property
    def _constructor(self) -> Callable[..., Series]:
        return Series

class Series in pandas_stubs-<IP_ADDRESS>003 (last version from pypi)
is consistent with pylance stubs: class Series(IndexOpsMixin, NDFrame, Generic[S1]): ...

Something's wrong, but I don't not what?
Tell me if I don't report the issue at the correct place.
Thank you for the pyright/pylance tool.
Patrick Bourdon - Paris

Pylance uses its own dedicated stubs...

The pandas stubs included in Pylance are from https://github.com/pandas-dev/pandas-stubs. We generally update them weekly. You can see the version that we're currently bundling in C:\Users\...\.vscode\extensions\ms-python.vscode-pylance-<ver>\dist\bundled\stubs\pandas\_version.pyi.

Something's wrong, but I don't not what?

The pandas-stubs authors have chosen to represent Series as generic internally, but as you've seen, Series is not really a generic class and treating it as such in your code will result in runtime errors.
The issue with reportUnknownVariableType and Series was discussed here.
Pylance is acting correctly here. You could report this as an issue in the pandas-stubs repo. Perhaps they hadn't considered the impact of making Series generic on Pyright/Pylance users with typeCheckingMode set to strict.
cc: @Dr-Irv

You could report this as an issue in the pandas-stubs repo. Perhaps they hadn't considered the impact of making Series generic on Pyright/Pylance users with typeCheckingMode set to strict.

We are gradually making changes to the stubs to allow strict to work.
The generic declarations for Series are only used for type checking, so that we can return things like Series[bool], which the type checker can then use when pandas expects a boolean Series.  But the runtime doesn't support the generic declarations.
Also, given a DataFrame, we can't track the underlying types of the various Series corresponding to each column of the DataFrame, so you will get the "partially unknown" messages.
You can do  row_c = cast("Series[int]", df.loc[0]) so that the type checker knows the generic version of the type of df.loc[0].  That will also work in runtime.

Any news on this issue?

@aleksandar-adevinta, did you see the responses from me and Dr-Irv above? I didn't think there's anything left for the Pylance team to address here.


Uncaught TypeError: Cannot read property 'substring' of undefined

[Enter steps to reproduce:]

Buid a latex file without defining a root(it takes the root file correctly and build it as well but raise this Error)

Atom: 1.20.0 x64
Electron: 1.6.9
OS: Microsoft Windows 10 Enterprise
Thrown From: atom-latex package 0.8.1
Stack Trace
Uncaught TypeError: Cannot read property 'substring' of undefined
At C:\Users\pas\.atom\packages\atom-latex\lib\autocomplete\citation.coffee:74

TypeError: Cannot read property 'substring' of undefined
    at Citation.module.exports.Citation.splitBibItem (/packages/atom-latex/lib/autocomplete/citation.coffee:74:16)
    at Citation.module.exports.Citation.getBibItems (/packages/atom-latex/lib/autocomplete/citation.coffee:51:21)
    at /packages/atom-latex/lib/manager.coffee:278:34)
    at emitTwo (events.js:106:13)
    at FSWatcher.emit (events.js:191:7)
    at /packages/atom-latex/node_modules/chokidar/index.js:196:15)
    at FSWatcher._emit (/packages/atom-latex/node_modules/chokidar/index.js:238:5)
    at FSWatcher.NodeFsHandler._handleFile (/packages/atom-latex/node_modules/chokidar/lib/nodefs-handler.js:275:10)
    at /packages/atom-latex/node_modules/chokidar/lib/nodefs-handler.js:473:21)
    at FSReqWrap.oncomplete (fs.js:112:15)

Commands

Non-Core Packages
atom-latex 0.8.1
atom-material-syntax 1.0.6
atom-material-syntax-dark 1.0.0
atom-material-syntax-light 0.4.6
atom-material-ui 2.0.4
expose 0.14.0
highlight-selected 0.13.1
imdone-atom 2.2.7
language-matlab 0.2.1
minimap 4.29.6
minimap-bookmarks 0.4.2
minimap-find-and-replace 4.5.2
minimap-highlight-selected 4.6.1
multi-wrap-guide 1.0.0
nord-atom-syntax 0.9.1
nord-atom-ui 0.11.0
northem-atom-syntax 2.1.0
northem-atom-ui 2.1.0
northem-dark-atom-syntax 2.1.0
northem-dark-atom-ui 2.1.0
northem-light-atom-syntax 2.1.0
northem-light-atom-ui 2.1.1
project-manager 3.3.5
tool-bar 1.1.0
tool-bar-atom 1.7.0

Could you recheck your .bib file?  Or share a MWE .bib file that reproduces this error?
I am guessing there will be an unexpected bibLaTeX syntax as in #67.  I have implemented a more meaningful error in https://github.com/James-Yu/Atom-LaTeX/commit/aa0435b911c2fe28b217bff3839d42fe5076e734 that should be in the next version :-)

hi here is my .bib file(it comes from IEEE)
IEEEexample.zip

Can't find anything wrong with the bib file, do you have a MWE that threw this error?

I have this issue as well.

@dpo Issue report please! :-)

@dpo , @Rocknpools  Any updates?

I'll post the issue report the next time this comes up.

I will close this for now, feel free to comment if you face this issue again!


[2.17.0] GuardedBy on lambda

The constructor assigns a Consumer to which is invoked under a lock. However the checker now fails by assuming it was invoked in the constructor.
final Consumer<Node<K, V>> accessPolicy;
...
accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
...
/** Drains the read buffer. */
@GuardedBy("evictionLock")
void drainReadBuffer() {
  if (!skipReadBuffer()) {
    readBuffer.drainTo(accessPolicy);
  }
}

/Users/ben/projects/caffeine/caffeine/src/main/java/com/github/benmanes/caffeine/cache/BoundedLocalCache.java:270: error: [GuardedBy] This access should be guarded by 'this.evictionLock', which is not currently held
    accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
                                                        ^
    (see https://errorprone.info/bugpattern/GuardedBy)
1 error

However the checker now fails by assuming it was invoked in the constructor.

I think we need to improve the diagnostic message here, really. It's not so much failing because it assumes it's invoked in the constructor, it's failing because it can't work out whether the lock will be held when it's invoked.


Multiple Python Versions CI

Purpose of PR

related issues and PRs #73 #92 #94

Provide multiple python versions CI ( CD will be handled in a different PR )
To achieve this, introduce usage of tox for testing built wheels in "isolated envs" of multiple python versions.
Notes regarding similar open PRs

The difference between this PR and #92 is that it does not run pipenv in tox, but rather lets tox handle dependencies and venvs
The difference between this PR and #94 that it keep pipenv as the project's dev env manager

Tasks

[x] add tox.ini with python{3.7,3.8,3.9,3.10} test envs
[x] add build matrix of python versions to ci

ref docs: https://docs.github.com/en/actions/using-workflows/advanced-workflow-features#using-a-build-matrix
ref proj: https://github.com/spotify/luigi/
ref proj: https://github.com/samuelcolvin/pydantic/

[x] remove caching of Pipfile.lock

Pipfile.lock is a py37 lock file

[x] for dev purposes, update Pipfile and Pipfile.lock

for ci, tox is used directly as Pipfile.lock is a py37 lock file

Notes for future changes

Evaluate usage of pipenv in tox
1.1 See https://pipenv-fork.readthedocs.io/en/latest/advanced.html#tox-automation-project
1.2 Evaluate tox-pipenv
Evaluate poetry to replace pipenv
2.1 See #94
2.2 See related discussion of "who does what and why" regarding tox and poetry: https://github.com/python-poetry/poetry/discussions/4307

Changes to Pipfile
To use tox, it was added to pipfile as a dev dependency, with the following command:
pipenv install pytest-cov "tox<4.0" tox-wheel --dev

tox-wheel was added as well to make tox build wheels rather than zip, so these can be used for publishing [ more below ].
After running tox, you'll find the wheels under .tox/dist:
❯ ls .tox/dist
hera_workflows-1.8.0rc7-py3-none-any.whl

pytest-cov was added as well so we can add a coverage reports and tests, and perhaps add a coverage test.
Even though this might be related to a different PR, I think it's also related to this PR as well, as it concerns major changes to how hera is tested. In this context, I've added the relevant pytest opt in setup.cfg.
More on added tox.ini

To use tox update  / recreate your pipenv virtual env according to the updated Pipfile

An initial tox.ini was created with a few tox envs.
The "main" env - testenv -- provides the first desired functionality discussed in #73 and tests 4 python versions, including 3.10 ( latest ).
To list all tox envs you can run:
❯ tox -a
python3.7
python3.8
python3.9
python3.10
lint
typecheck

And to run a specific one, e.g. lint, run -
❯ tox -e lint

In order to already have tox run as part of this PR checks, so changes in tox.ini are checked, I've changed Run tests step to use tox. This required updating Pipfile.lock with the additional dev-packages.

Assuming we keep using pipenv rather than poetry

The issues described below is also to an issue pointed out in #73 regarding pipenv and multiple python versions.

Regarding using gh actions matrices -
If we want to use gh actions matrices, there is a problem with the current caching of  Pipfile.lock in .github/workflows/hera_pr.yaml -
      - id: cache-pipenv
        uses: actions/cache@v1
        with:
          path: ~/.local/share/virtualenvs
          key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}

      - name: Install dependencies
        if: steps.cache-pipenv.outputs.cache-hit != 'true'
        run: |
          pipenv sync --dev --pre

Since Pipfile.lock in under version control, it's locked for a specific python version. However, the matrix will be for the various python versions.
I'm adding here a possible addition to .github/workflows/hera_pr.yaml to demonstrate the issue -
[...]

jobs:
  hera-pr-build:
    timeout-minutes: 10
    runs-on: ubuntu-latest

    strategy:
      matrix:
        include:
          - python-version: 3.7
            tox-env: python3.7
          - python-version: 3.8
            tox-env: python3.8
          - python-version: 3.9
            tox-env: python3.9
          - python-version: 3.10
            tox-env: python3.10

    steps:
      - name: Set up python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Checkout
        uses: actions/checkout@v2

      - name: Install pipenv
        run: |
          python -m pip install --upgrade pipenv wheel

      - id: cache-pipenv
        uses: actions/cache@v1
        with:
          path: ~/.local/share/virtualenvs
          key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}

      - name: Install dependencies
        if: steps.cache-pipenv.outputs.cache-hit != 'true'
        run: |
          pipenv sync --dev --pre

[...]

      - name: Run tests
        env:
          TOXENV: ${{ matrix.tox-env }}
        run: |
          pipenv run tox

The cache will be wrong for py version != 3.7
One way to deal with it is -

remove pipfile.lock from version control
check for cache
2.1. if false create lock  file and cache ( first hit will always be false )
2.2 if true skip install deps

What do you think ?

@harelwa I agree with your solution!

One way to deal with it is -

remove pipfile.lock from version control
check for cache
2.1. if false create lock file and cache ( first hit will always be false )
2.2 if true skip install deps

You folks have done a lot of work for this and had loads of valuable discussions. This looks awesome 🚀 I like the way this structure delegates virtual environment creation to tox and still maintains pipenv as the default venv management tool for now; otherwise, things can get very complicated to deploy in the same PR as there are too many changes, as @hirosassa suggested here. I also love that there's already a PR for poetry's introduction. If you folks don't mind, I will approve this one, then look into poetry a bit more so I can perfectly understand #94 as well.

@flaviuvadan Thanks for your comment! I agree with your opinion 👍

I'll edit the PR subject + description accordingly ( e.g. - it does not include CD .. )

Thanks again @harelwa and @hirosassa 🙂 I'll wait until the docs are updated for development then ship this. Enjoy the time away @harelwa!

hi @flaviuvadan
perhaps overlooked in my previous comment -docs are updated.

@flaviuvadan - my bad. i see the changes to README are not pushed for some reason.
I can take of this only next wednesday :
if someone wishes to pick up from where I left and complete the PR so it does not wait to next wednesday — by all means.

I can take of this only next wednesday :

Please tag me whenever you have a chance to continue on this 🙂 I will immediately circle back to this so we can deliver it.

Thank you again for the efforts @harelwa and @hirosassa! 🚀

@harelwa @flaviuvadan Thanks for the great discussions!


recalculate_for_stored(table) How can I use this in Trigger

At least daily I wish to recalculate stored (via formula)  using the trigger, I found in your document that recalculate_for_stored() can be used? but can anyone help me how can I do it via trigger?
Trigger: Daily
Action: recalculate_for_stored(table)
Hope anyone can help, got stucked in this one.

this is a great idea for an action

this is a great idea for an action

So this is not yet possible in the trigger event? I just wish to have the value stored so I can use it to filter in the list view, but really got stuck

Implemented in https://github.com/saltcorn/saltcorn/commit/9f4b4871560b8ba5d5bbef781ffb3a6b03d924d3 - there is now a recalculate_ stored_ fields action
I don't think this is possible any other way.

even as API call?

I guess you could call /table/recalc-stored/{TABLE NAME}, you would have to fill in the CSRF token in the body.
Using the new action is much easier. Would you like me to release a new beta version, so you can upgrade to this?

I guess you could call /table/recalc-stored/{TABLE NAME}, you would have to fill in the CSRF token in the body.
Using the new action is much easier. Would you like me to release a new beta version, so you can upgrade to this?

Thank you very much, I can wait for the proper release with other commits, not really in a hurry, just trying to fit it with my current personal project.

I guess you could call /table/recalc-stored/{TABLE NAME}, you would have to fill in the CSRF token in the body.

can you make some example? you mean the access_token?

Like this one? example the table name is 'test'

Found something in the inspect, but how can I translate it to JSON?, should I included the method: post ?

You should include this either in a form post body with the name _csrf (i.e. _csrf=inkJo7....) or as a CSRF-Token header in the HTTP POST request
see further docs: https://github.com/expressjs/csurf
Note that this token that's changed on every request so you need to fetch it from a fresh page. It is also included in a script tag on every page: <script>var _sc_globalCsrf = "TsHIhyid-Ts3okb6p0hEN_bq8mWr-WPdGdg8"; ...</script>

sorry I really not familiar with this haha, I'll just wait for the action trigger then.

I guess you could call /table/recalc-stored/{TABLE NAME}, you would have to fill in the CSRF token in the body.
Using the new action is much easier. Would you like me to release a new beta version, so you can upgrade to this?

if you also make a sample trigger it will be very much appreciated.

Will it be included in the next release? I really tried that URL/webhook action but not working, the formula field really needs to be stored to be included in the filters/search. Also need it to generate view for reporting (CSV)

Hi I just want to thank you for that update on recalculate, it works well, now mu list monitoring working as expected, thank you again.

Great!


Single header with source code file

Something that I didn't point out before: it turns out I didn't need a separate FormatSpecifierValueResolver typedef. The only change existing users need to make is to wrap plain functions (not part of a class/struct) with std::bind in the CustomFormatSpecifier constructor.


Make the height of the calc integration automatic

Do as the title says

Closed since calc api is deprecated


Make it possible to view read receipts

In zulip/zulip#3618 / https://github.com/zulip/zulip/pull/18935, we're making it possible to view read receipts in the webapp. We should add an option to the long-press message menu to make this possible on mobile as well.
This feature should of course respect the user privacy setting for whether to allow others to view read receipts from them. Where possible, it should follow the webapp design in terms of headings, sorting, etc.

Just as a note on the privacy setting -- that's implemented server-side, so there should be nothing the app needs to do there. (Specifically, the server will just not send the client information about readers who have disabled sharing read receipts).


performance improvement to developer pick

random.choice only needs to pull target_units of projects. and only needs to run if we are not using all or none of the projects.

Coverage decreased (-0.1%) to 95.225% when pulling d53940a741927ec543e02931409f5f4d88f7313f on Eh2406:developer_pick into f6e0791f84c926b450bf165f2ae4f309579db903 on UDST:master.

Coverage decreased (-0.1%) to 95.225% when pulling d53940a741927ec543e02931409f5f4d88f7313f on Eh2406:developer_pick into f6e0791f84c926b450bf165f2ae4f309579db903 on UDST:master.

I have a question about this one - the biggest change is here min(len(df.index), target_units).  The problem as I see it is that target_units is actually the sum of an attribute of all the developments you're picking from (the number of units in each development).  So it's not like it's the target number of developments - we don't know how many developments we're going to need until we pick them based on their profitability and sum up the number of units in them.  So you could definitely write a "for" loop to pick developments one by one and sum up the units but I actually think that would be slower in most cases than essentially sorting the vector of developments which is what this is doing.  In other words, I think the code makes sense but only because I'm trying to avoid for loops at all cost.  At any rate I just think this code isn't quite right since many developments might have 100s or 1000s of units I think this is a min of apples and oranges.  Does that make sense - maybe I'm missing something too?

I should have explained. Yes it is a min of apples and oranges. However we know that all developments have net_units > 0 which implies that we have target_units >= len(new developments) So I think it is safe to only choice target_units meny. I should probably add a comment.
If I have missed something then perhaps np.random.permutation or np.random.shuffle is clearer and faster than np.random.choice(x, size=len(x), replace=False)

Right, agreed that it won't actually hurt anything.  I'm just guessing that len(df.index) will be less than target_units usually but that's certainly not always the case.  A comment would help just to make it clear that's what's intended thanks!
Yes it is a shuffle but the p parameter is the catch - we definitely want to bias the developments we choose by the probabilities that are passed in, hence the random.choice with n=len(df).  Sometimes it feels like we jump through a lot of hoops to avoid for loops doesn't it?

Coverage decreased (-0.1%) to 95.225% when pulling 8db23ba57ff8c7e54358014af5af34b7796767dd on Eh2406:developer_pick into f6e0791f84c926b450bf165f2ae4f309579db903 on UDST:master.

Do you have any other way to get closer to picking the right number to start with?
Yes, fast loops is one of the things I love about developing in Rust.
Ahh, the 'p' is important. I just spent all morning doing a deep dive into whether
np.random.choice(x, size=len(x), replace=False)[:n]

and
np.random.choice(x, size=n, replace=False)

are equivalent. They are. Because np.unique returns the first occurrence. A deep dive for not much gain, lol.

This change looks fine to me - are you ready to merge?  Thanks for adding the comment...
And yeah Rust and a few other languages might give Python a run for its money someday.  My personal preference is Julia, especially if it eventually gets a big stats following ;)

+1I'm ready to merg.


Update switch styles

Thanks for submitting a PR! Please check the boxes below:

[ ] I have run pre-commit to check linting
[ ] I have filled in the "Changes" section below?
[ ] I have filled in the "How did you test this code" section below?

Changes

updated switch styles
updated dark mode switcher

How did you test this code?

Please describe.

It looks like the left icon is a bit too far to the left I think ?

The off state background seems to be incorrectly using the disabled background colour

It should be as follows:


chore: move configurations to pyproject.toml

This PR aims to minimize the number of configuration files for the project. Instead of a separate .coveragerc and mypy.ini, we now would have all the configurations within the pyproject.toml file leading to a overall minimal code structure.

Request for Review: @janjagusch


Add vendoring support

This PR is to add go's vendoring support. You'll need to install Masterminds/glide to run make deps. In addition I added 2 make tasks, test and run just to be lazy 😄

Closing and reopening to initiate a test by CircleCI.

Also the CI job fails due to the lack of the circle.yml file but I'm merging this.


Support for properties in the parent type

Unassigned rule calls create a parent-child relation, and in the example below, AbstractToken is a parent of TokenA, TokenB and TokenC. AbstractToken also has own property cardinality.
AbstractToken:
  ( TokenA
  | TokenB
  | TokenC
  ) cardinality=('?'|'+'|'*')?;

However, types generation  only reflects reflects ownership, not inheritance. Generated types:
export interface AbstractToken extends AstNode {
    cardinality?: '*' | '+' | '?'
}

// similar to `TokenB` and `TokenC`
export TokenA extends AstNode {
	...
}

Since inheritance is reflected by union type for the purpose of property lifting, we should generate the types in the above case as follows:
export type AbstractToken = (TokenA | TokenB | TokenC) & { cardinality?: '*' | '+' | '?' }

Closing this issue should includes supporting union types here.

With the solution you proposed, we would have to repeat the cardinality property in all three subtypes, so declaring it in the supertype is not necessary. I'd propose to change this to
export interface AbstractToken extends AstNode {
    cardinality?: '*' | '+' | '?'
}

export interface TokenA extends AbstractToken {
    ...

This means: use a type alternative only if the supertype does not declare its own properties. Otherwise fall back to an interface.

With the solution you proposed, we would have to repeat the cardinality property in all three subtypes, so declaring it in the supertype is not necessary.

You are right.

use a type alternative only if the supertype does not declare its own properties. Otherwise fall back to an interface.

This is the current solution. However, in this case when the parent has own properties and represented by an interface, we have to manually lift the children properties, and thus we go back to necessity to implement an algorithm that lifts properties. So I'd propose to duplicate parent properties in children and don't use interfaces in that case.

In fact, when deciding on inheritance (type or/and interface), we must keep in mind:

the declared types get into `ast.ts' as they are with the inheritance hierarchy expressed by interfaces
#441 forces us to implement a "conversion" of inferred types to declared types, so if inferred types express inheritance by types and declared types by interfaces, it will be harder to convert; besides, this conversion will force us to implement a property-lifting algorithm anyway

So, it seems to me that we should reintroduce the property-lifting algorithm.

In conclusion, we have 2 possible solutions:

leave the current solution with types and interfaces where the parent has its own properties, and reintroduce the algorithm for raising properties
duplicate parent properties in children

@pluralia I agree with the notion that we probably have to propagate child properties up to parents when inheritance is a factor, as we currently don't allow duplicate properties in any form. This matches what would be written explicitly with our types, and it makes sense to me that we would do the same with the generated component of the type system.
If we wanted to allow duplicates we would have to change things, but after some talks last week it seems like that's not desired. Also duplicating parent properties in children doesn't feel quite right.
@spoenemann I have a question about the example above. You have TokenA inheriting from AbstractToken, giving each token its own cardinality. I think, given the grammar, an abstract token just contains one of 3 concrete token types, in addition to a cardinality. Whereas you have each token inheriting the cardinality property. This makes sense from the perspective of using interfaces/types effectively for abstraction, but not from the perspective of the grammar rules.

We could simply decide not to do any property lifting ourselves here and see whether it's a real problem in languages that have such constructs. WDYT?

Yes, that makes sense. At least we can take a pause to think more about it. I move the milestone.


srb init should prompt before overwriting existing config

Problem
When setting up a new project it is not uncommon to need to run srb init, deal with some issue that is exposed, and then try again.  If changes have been made to the config file, those changes are overwritten.
Proposed solution
srb init should detect that generated directories/files already exist and prompt for the right behavior (e.g., sorbet/config exists, overwrite? [y/N])

Looks like this one was effectively addressed by #1343 quite a while ago. (We no longer overwrite existing config files.)


fix: use limited permissions for member clusters in charts and E2E environment

Description of your changes
This PR updates the charts and the E2E env. setup to grant only limited permissions to member agents.
I have:

[x] Run make reviewable to ensure this PR is ready for review.

How has this code been tested
N/A
Special notes for your reviewer
N/A

The failing v1alpha1 E2E test concerns the InternalServiceExport CRD, which is out of scope for this PR.


x/pkgsite: unable to fetch packages from module proxy (go.buf.build)

What is the URL of the page with the issue?
https://pkg.go.dev/go.buf.build/library/go-grpc/envoyproxy/protoc-gen-validate/validate
What is your user agent?

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36
Screenshot

Clicking the "Request" button leads to:

What did you do?

Attempted to view documentation for any package available through go.buf.build, a module proxy.
What did you expect to see?
Generated documentation for the package, e.g.:
https://godocs.io/go.buf.build/library/go-grpc/envoyproxy/protoc-gen-validate/validate
What did you see instead?
The "Oops!" page as seen in the above screenshots.

I've tried following each of the linked instructions to fetch the package but none appear to succeed.
godocs.io seems to handle this fine, so I am not sure if the problem is with pkgsite or go.buf.build. If it's the latter, any guidance on what's incorrect would be much appreciated.

go.buf.build would also need to include a license for the generated code

@jba great, thanks! I appreciate it.


Add commitizen script to package.json

One barrier to contributing is getting the commit message conventions right the first time. I don't expect I need to justify that this is a challenge and would be nice to make easier.
Enter commitizen by @jimthedev. Long story short:

Add commitizen and cz-conventional-changelog to devDependencies

"devDependencies": {
   "commitizen": "^1.0.4",
    "cz-conventional-changelog": "1.1.0"
}

Add czConfig to package.json to tell commitizen to use the cz-conventional-changelog:

"czConfig": {
  "path": "node_modules/cz-conventional-changelog"
}

Add commit npm script that utilizes the git-cz binary installed from commitizen:

{
  "scripts": {
    "commit": "git-cz"
  }
}

Then, just update documentation to tell people to run npm run commit after they've staged the changes they want to commit. They will be greeted by the beautiful step-by-step wizard to fill in to create their perfectly formatted commit message:

A few comments to address some possible concerns:
Q: What if I don't want to use some weird wizard?
A: You don't have to use it. Everything will work just fine using the regular git commit flow you're used to.
Q: I use a GUI like SourceTree. What if I don't want to do this?
A: See answer above.

I've been using commitizen for a while at work (though I use the cz-jira-smart-commit plugin) and it's be really great. I added it to angular-formly and so far it's been quite helpful. I think that people would find the barrier to contributing lowered even a little bit with something like this.

As a side-note, you could take this a step further and integrate something like ghooks by @gtramontina to ensure that people don't attempt to commit with a message that doesn't follow the conventions. I added this to angular-formly too: config, script. But that's probably another story...
Anyway, I was just thinking of ways to lower the barrier to contributing. Hope this sparks ideas at least :-)

Quick update, now you use config.commitizen.path in package.json.

This only work for people who commit via command line, what happens if you use SourceTree for example?

You have to do the same thing you have to do now... Code it manually. This is only useful for people who will run the command. But I don't see that as a drawback...........

Yes, commitizen is completely opt in. There will still need to be server side validation hooks to verify that people are following the convention. This simply makes it easier for people to commit to the angular project without needing to worry if they followed the commit message convention.

Closed by https://github.com/angular/angular.js/commit/a179757fad90285cd3ce0934ccfffd571518cbc1


make Federation + description work

src/registry/export_sdl.rs currently omits description text in exported sdl { _service { sdl }, but it's actually supported by Apollo Gateway.
relevant source code and test:
https://github.com/apollographql/federation/blob/main/federation-js/src/service/printFederatedSchema.ts#L384-L405
https://github.com/apollographql/federation/blob/main/federation-js/src/service/__tests__/buildFederatedSchema.test.ts#L76-L129

Released in v2.5.10

🌹


Forking Boost.Tokenizer

flyby: remove more Boost headers that are not needed anymore

Working towards #3440

bors merge


sys: move ForceRemoveAll to integration/client

ForceRemoveAll was only used in tests/fuzzing, but added hcsshim as dependency
for the sys package. Moving this to integration/client makes the "sys" package
slightly more lightweight, and may help simplifying dependency-management.

@kzys @dims @kevpar PTAL; looks like this can somewhat simplify things as well.
I did a quick check if nobody else was using it, and couldn't find any uses in moby, buildkit, kubernetes, and hcsshim itself, so I think this would be ok to move (and un-export for now)

Failures look unrelated (cri-tools tests look unhappy on other PR's as well). But, it did make me head to that repository to see if it might be using this function (wasn't the case, but I found some deprecated use of a docker package, so 🤷♂ 😂 https://github.com/kubernetes-sigs/cri-tools/pull/969)

Ah! Needs a rebase now; let me do so in a minute

done 👍

whoop, all green now; @dims @estesp ptal 🤗


Typescript Definition files

Hi, do you have any plans to include Typescript Definition files in vue-smooth-dnd (and smooth-dnd would also need one)?
If not, I might investigate creating them, if I did that would you accept a pull request?

My vue-smooth-dnd.d.ts file:
declare module 'vue-smooth-dnd' {
    import Vue from 'vue';

    type Payload = any;

    interface DropResult {
        removedIndex: number;
        addedIndex: number;
        payload: Payload;
        element: Element;
    }

    interface DragEvent {
        isSource: boolean;
        payload: Payload;
        willAcceptDrop: boolean;
    }

    interface NodeDescription {
        value: string;
        props: Vue.VNodeData;
    }

    interface ContainerProps {
        orientation?: string;
        behaviour?: string;
        tag?: string | NodeDescription;
        groupName?: string;
        lockAxis?: string;
        dragHandleSelector?: string;
        nonDragAreaSelector?: string;
        dragBeginDelay?: number;
        animationDuration?: number;
        autoScrollEnabled?: boolean;
        dragClass?: string;
        dropClass?: string;
        removeOnDropOut?: boolean;
        getChildPayload?: (index: number) => Payload;
        shouldAnimateDrop?: (sourceContainerOptions: ContainerProps, payload: Payload) => boolean;
        shouldAcceptDrop?: (sourceContainerOptions: ContainerProps, payload: Payload) => boolean;
        getGhostParent: () => Element;
        onDragStart?: (dragEvent: DragEvent) => void;
        onDragEnd?: (dragEvent: DragEvent) => void;
        onDrop?: (dropResult: DropResult) => void;
        onDragEnter?: () => void;
        onDragLeave?: () => void;
        onDropReady?: (dropResult: DropResult) => void;
    }

    class Container extends Vue {
        props: ContainerProps
    }

    class Draggable extends Vue {
        props: {
            tag?: string | NodeDescription;
        }
    }
}

I needed this! Thanks so much!!

How can I add those definition files. I tried some ways that google told me but nothing works. I'm getting still the missing definitions errors from typscript.

very useful

I need it very much, thank you very much


Set up CI with Azure Pipelines

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


Adding new regions to determine region set

Microsoft have added new regions and I have included the newly added regions to determine_region method. Region identifier is verified by visiting https://disco.#crm_web_service_number#.dynamics.com/XRMServices/2011/Discovery.svc?singleWsdl for the various new web service URL's available in  https://msdn.microsoft.com/en-in/library/gg328127.aspx

Excellent. Thank you.


Support multiple versions on docsite

The docusaurus documentation site currently displays only the latest version. Given that we are releasing new versions, and have a major release coming soon, we want to keep the historical docs available. We can re-use code from the OZ docsite, which currently does support it.

I'm currently attacking this issue. I think that the current directory structure is a bit annoying, as it has a directory named docs/ that has a docs/ directory inside (with the docusaurus scaffold + customisation) and that directory has another docs/ directory inside (with mds). As this package is only for zos documentation stuff, I think we should merge the docs/ root directory that contains the scripts/ folder with the docs/ directory created by docusaurus.
I'll be opening a new issue proposing this merge so we can discuss it.
docs
├── AUTHORS
├── docs
│   ├── docs
│   ├── package.json
│   ├── package-lock.json
│   └── website
│       ├── core
│       ├── i18n
│       ├── package.json
│       ├── package-lock.json
│       ├── pages
│       ├── sidebars.json
│       ├── siteConfig.js
│       ├── static
│       │   ├── css
│       │   └── img
│       └── yarn.lock
├── package.json
├── package-lock.json
├── README.md
├── scripts
│   ├── bump-docs.js
│   ├── gen-docs.js
│   └── util.js
└── yarn.lock


Ruby symbols and variables have same colors (with tree-sitter)

Example with other theme:

Kanagawa for helix:

If you are running on latest release, could you please show the output of :Inspect command on the badly highlighted keyword?


Update rubocop plugins

Also, update Ruby to the latest 2.7.x version, and add a gemset to
improve local development.

@fede-moya or @filipesperandio can you merge this one?

@BrianHawley I'll be reviewing it next week 👍🏼

@fede-moya @BrianHawley this PR has been merged for a while already, but trying to use it setting channel: rubocop-1-31-0 throws an error saying it can't be found:
$ codeclimate --version
0.86.0
$ codeclimate analyze -e rubocop
Starting analysis
Running rubocop: Done!
Skipped rubocop: Channel rubocop-1-31-0 not found for rubocop, available channels: ["stable", "beta", "cache-support", "rubocop-0-42", "rubocop-0-46", "rubocop-0-48", "rubocop-0-49", "rubocop-0-50", "rubocop-0-51", "rubocop-0-52", "rubocop-0-54", "rubocop-0-55", "rubocop-0-56", "rubocop-0-57", "rubocop-0-58", "rubocop-0-59", "rubocop-0-60", "rubocop-0-61", "rubocop-0-62", "rubocop-0-63", "rubocop-0-64", "rubocop-0-65", "rubocop-0-66", "rubocop-0-67", "rubocop-0-68", "rubocop-0-69", "rubocop-0-70", "rubocop-0-71", "rubocop-0-72", "rubocop-0-73", "rubocop-0-74", "rubocop-0-75", "rubocop-0-76", "rubocop-0-76-airbnb", "rubocop-0-77", "rubocop-0-78", "rubocop-0-79", "rubocop-0-80", "rubocop-0-81", "rubocop-0-82", "rubocop-0-83", "rubocop-0-84", "rubocop-0-85", "rubocop-0-86", "rubocop-0-87", "rubocop-0-88", "rubocop-0-89", "rubocop-0-90", "rubocop-0-92", "rubocop-1-7-0", "rubocop-1-8-1", "rubocop-1-9-1", "rubocop-1-10-0", "rubocop-1-11-0", "rubocop-1-12-0", "rubocop-1-12-1", "rubocop-1-18-2", "rubocop-1-18-3", "rubocop-1-20-0", "rubocop-1-21-0", "rubocop-1-22-2", "rubocop-1-22-3", "rubocop-1-23-0"]

Analysis complete! Found 0 issues.

I also see this commit on the CLI but maybe it's not included in the latest released version? https://github.com/codeclimate/codeclimate/commit/cfb01771b5e646ad77ba4d1f681feb004b715b36


added option to use cusom land cover legend and transition matrix

will add some input_check for the CSV input.

You could use the following data to test the new dev:
AOI: Singapore
initial landcover : users/amitghosh/sdg/esa_2000
final landcover: users/amitghosh/sdg/esa_2015

Reclassification matrix:
50,artificial,#C31400
40,wetland,#04DC83
30,cropland,#FFFF64
20,grassland,#FFB432
10,forest,#02A000

Landcover matrix:
landcover,2015,artificial,wetland,cropland, grassland, forest
2000,code,50,40,30,20,10
artificial,50,0,1,1,1,1
wetland,40,-1,0,1,1,1
cropland,30,-1,-1,0,0,1
grassland,20,-1,-1,1,0,1
forest,10,-1,-1,-1,-1,0

Land cover matrix format:
1st column: class labels for initial land cover
2nd column: class code/pixel values for initial land cover
1rst row: class labels  for target land cover
2nd row: class code/pixel values for target land cover
3rd column * 3rd row to n*n: transition matrix

that's super nice !

Yes, I am working on some other small issues, will create a new PR to integrate these update.


node.js version from 16 to 20

@yoshi389111 are you still alive ?

@lgmorand according to his profile activity he opened an issue in August 2024.

@BeyzaCavusoglu  @yoshi389111  should we fork this repo and consider it as stale ?


Module currency-symbols not found

xls2xlsx version: 0.1.5
Python version: 3.10
Operating System: Windows

Description
I am simply trying to import the package but getting an error for currency-symbols
What I Did
ran the below code
 import xls2xlsx (even tried from xls2xlsx import XLS2XLSX)

Traceback (most recent call last):
  File "c:\Sample_project\venv\defra_excel_read_v1.py", line 13, in <module>
    import xls2xlsx
  File "C:\Sample_project\venv\lib\site-packages\xls2xlsx\__init__.py", line 3, in <module>
    from .htmlxls2xlsx import HTMLXLS2XLSX
  File "C:\Sample_project\venv\lib\site-packages\xls2xlsx\htmlxls2xlsx.py", line 40, in <module>
    currency_symbols_constants = importlib.import_module('currency-symbols.constants')
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'currency-symbols'

check this solution https://stackoverflow.com/questions/72732983/why-do-i-get-no-module-named-currency-symbols-when-importing-xls2xlsx-even-t
which need you to go to the module and change in it underscore sign and you are good

Fixed in v0.2.0


undefined variable $commentWidget

I have installed the plugin, from the instructions I put the line of code in my posts controller
public $components = array('Comments.Comments' => array('userModelClass' => 'Users.User')); // Customize the User class
/**
 * Initializes the view type for comments widget
 *
 * @return string
 * @access public
 */
	public function callback_commentsInitType() {
		return 'flat'; // threaded, tree and flat supported
	}

and the line of code in my view.ctp

options(array('allowAnonymousComment' => false));?>
		display();?>

When I go to my view page I keep getting a Notice (8): Undefined variable: comments [APP\View\Posts\view.ctp, line 50]
any ideas?

Please put here view file content to see what is wrong with it. Some wrong with your view file definetely


<IPython.core.display.HTML object> error

I get that error when i try to run it as a python file on vscode and not a jupiter notebook. In the sketch extensions file i can see that ask method has display(HTML(f"""{result}"""))  which pretty much means it should be able to output it to console, yet it doesn't. I have also tried to import and apply display to the ask line and it still didn't work. Heres my python file code.
import sketch
import pandas as pd
state_data = pd.read_csv('state.csv')
state_data.sketch.ask("How many columns are there?")

In vscode in jupyter, click on the left ... and then click "change presentation" and select the HTML renderer

also, if you just want the text, you can add the call_display=False to the call
Eg. state_data.sketch.ask("How many columns are there?", call_display=False) (but this won't give you the HTML rendering which can be nice sometimes. (eg. html rendering on howto gives you the copy button))

(Closing for now, since I think these are the 2 paths depending on what you want. Either update the renderer or use call_display=False to get the raw output as a return from the function (you can in a script use this to put into a variable and do whatever you'd like with it))


info required

Hi,
Would you please suggest some examples or links for below:-

Calling remote application or service on other machine. Please suggest whats required on conductor side and whats required for that service on remote machine?
Want to register conductor under eureka server and other micro services.
Want to change from jetty server to tomcat.

please suggest.
Regards
Ajay

Hi Ajay,

Conductor provides a task type called HTTP, that can be used to make HTTP calls to remote service and store the results of the remote service.  Take a look at the kitchensink example and look for a task named search_elasticsearch.
Check the eureka documentation on how to register services.
Take a look at the ConductorServer.java that configures Guice and other dependencies.  You can replace jetty with embedded tomcat or just create a war file that contains all the required dependencies.

Hi Viren,
Thanks,I have registered conductor in eureka server as an eureka client.
I have another question as below,
I have created some tasks an workflows but everything got deleted when i restarted server. I want to make them persist so please suggest some steps or documentation for the same.
Regards
Ajay

Hi,
I have setup dynomite on my local machine and would yo suggest changes i have to do so that tasks, workflow i define should persist in dynomite and available for use later.
Regards
Ajay

For the persistence, you want to setup dynomite cluster where the data is persisted.  Check dynomite docs for how to achieve that.
Docker images will be transient and loose data when you restart them.


Fixed manifest for Firefox, added linting and CI

Fixed problems with the FF extension by using the web-ext package from Mozilla, which helps with linting.
Web-ext linting was also added as a step to GitHub actions, so we can be sure it's compatible with Firefox without having to first package and upload to addons.mozilla.org.

Not sure while snyk licensing is failing (the only package added was web-ext which has MPL 2.0) - I don't have access to Expensify's Snyk org.

Still getting auto-rejected :(

dang, thought i'd be lucky haha

Waiting for GitHub to get back to me on the support ticket

Waiting for GitHub to get back to me on the support ticket

@dangrous @tgolen it's fixed now, closing and reopening PRs works

wooo

Yay, that worked. I'm publishing it now and then you can send out an email to everyone announcing the new version once I give you the green light.

OK, green light! I've uploaded it to 1Password.

Send an email to @all to let anyone know they can update by following the steps from I use firefox, how do I install the Kernel Scheduler (KS) browser extension?

Here is an example email I sent out a while ago:

@tgolen I'll go through the remaining snyk PRs, bump the version number and then deal with the e-mail - at least we'll have a "security updates" changelog entry for that


useTreeState doesn't rebuild the tree collection when a node is expanded

🐛 Bug Report
When useTreeState is used in an uncontrolled component, it doesn't rebuild the tree collection after the internal expandedKeys state changes due to a toggleKey() call.
As a result, the prevKey and nextKey props of the children of the newly expanded node never get set, which prevents keyboard navigation from working on those children when a keyboard delegate is attached to the tree via useSelectableCollection.
🤔 Expected Behavior
In an uncontrolled component, an internal change to the expandedKeys state should cause the tree collection to be rebuilt, so that the prevKey and nextKey props of each child node are updated.
😯 Current Behavior
The tree collection is not rebuilt when expandedKeys state changes internally.
💁 Possible Solution
I think this can be fixed by changing this line in useTreeState:
https://github.com/adobe/react-spectrum/blob/c66852948e2eb7427ce24d4f3199e53c4f615919/packages/%40react-stately/tree/src/useTreeState.ts#L54
...to:
let tree = useCollection(props, nodes => new TreeCollection(nodes, {expandedKeys}), null, [expandedKeys]);

Happy to send a PR if there's agreement!
🔦 Context
I'm building a treeview component that uses useTreeState to manage the state of the tree and useSelectableCollection to manage selection state and keyboard interactions within the tree.
💻 Code Sample
Reduced test case: https://codepen.io/rgrove/pen/eYBNpao
🌍 Your Environment

Software
Version(s)

@react-stately/tree
3.1.2

Browser
n/a

Operating System
n/a

🧢 Your Company/Team
SmugMug

@rgrove I've reproduced your issue locally and confirmed that your suggested fix seems to work, just need some time to dig around and make sure this is the approach we want to go with (IMO passing the expandedKeys as a invalidator for useCollection seems correct, just wonder if we need to add any additional invalidators)


Drop typings dependency

typings install --save npm:skype-http
typings ERR! message Unable to read typings for "request". The author of "skype-http" needs to check the entry paths in "package.json" are up to date
typings ERR! caused by ENOENT: no such file or directory, open 'C:\temp\skytest\node_modules\skype-http\node_modules\request\index.d.ts\index.d.ts'
typings ERR!

I am not a typings expert for how these imports normally  go, it seems it reads from the local folder so not requiring a remote source to be updated. I am guessing it is because request does not have any typings locally.  I am guessing modifying typings.json to specify the npm typings source (not sure why it doesn't pickup from package.json). I can investigate further if the immediate answer is not apparent to someone more familiar.

A better solution would be to completely drop the dependency on typings and only use @types. This should simplify the build process and reduce the errors.


Added lecture notes for May 4,6

Added lecture notes, but I haven't checked how they render yet -- may need some fixing

I think you mean March.


Text-Element Update Problem

Describe the bug
I'm using the Text Element to display GPS-Koords and Date/Time.. Using this code:
String gps_time = "";     gps_time = String(gps.date.day())+("/")+String(gps.date.month())+"/"+String(gps.date.year())+" "+String(gps.time.hour())+":"+String(gps.time.minute())+":"+String(gps.time.second());     Serial.println(gps_time);     char carray[26] = "                        ";     gps_time.toCharArray(carray, sizeof(carray));     gslc_ElemSetTxtStr(&m_gui, m_pElemDateInfo, carray);
it's working the text is updated, but i'm not able to clear the displaying text in the element.
So the new text (seconds as example) appear on top of the old text
The page is not updated properly even when i try to call it or use gslc_Update(&m_gui);
Maybe i just need to get the trigger to force the update into my code but i wasn't able to determine what this would be.
Changing page and returning to main page does the charm but only shows me the problem not the solution, can you give me a quick tip?
Device hardware

MCU: ATmega2560
Display: Ellegoo ILI9341 2.8" resistive
GUIslice config selected:  ard-shld-elegoo_28_res

Please confirm whether:

Display works correctly with standalone display driver library examples (eg. TFT_eSPI graphicstest, Adafruit graphicstest, etc.) without GUIslice: all works fine
Touch works correctly with standalone touch library examples without GUIslice: yep

Hi @feendrache -- thanks for reporting this.
There are a few different ways in which fonts can be rendered, depending on the display mode and color options. In your case, it sounds like the text is being updated without a background redraw.
Can you confirm a couple additional details for me:

What library version are you using?
What font have you selected?
Please indicate any calls you have made to create & modify the appearance of the text element (m_pElemDateInfo). In particular, I'm interested in the foreground color, background color and and fill attribute, ie. ElemCreateTxt(), ElemSetFillEn(), ElemSetTxtCol(), etc.
Alternately, please attach the sketch you have created.

thanks!

Thanks for attaching the sketch!
The problem you are seeing is that the text output is wider than the created text element dimensions. GUIslice performs rendering updates within the boundaries of each element. In both the KOORD and T_TIME elements, the width was specified as 18 pixels.
Please try modifying your sketch (or Builder project) to use a field that is large enough to encompass your output. For example:
// E_ELEM_KOORD width changed from 18 to 150
pElemRef = gslc_ElemCreateTxt(&m_gui,E_ELEM_T_KOORD,E_PG_MAIN,(gslc_tsRect){90,40,150,10},
    (char*)m_sDisplayTextKoord,26,E_FONT_TXT5);

// E_ELEM_T_TIME width changed from 18 to 100
pElemRef = gslc_ElemCreateTxt(&m_gui,E_ELEM_T_TIME,E_PG_MAIN,(gslc_tsRect){90,60,100,10},
    (char*)m_sDisplayTextTime,26,E_FONT_TXT5);

To visualize the update region differences, you can enable a frame on the text field with:
gslc_ElemSetFrameEn(&m_gui,pElemRef,true);
Note that I would have expected that the Builder code generation would have defaulted to a wider dimension after you had entered an External Storage Size of 26, but if not, that could explain the config difference.

Ah thank you,
yeah that explains a lot and the enabling of the frame is magic for debugging.
You were right that this was the problem with the updating.
I'm not quite sure if it was a fault of the builder code generation or if i changed the storage size afterward...
THANK YOU for your help :)


chore: 增加一些 eslint 规则

👀 PR includes

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[x] Other ()

📝 Description
增加一些 eslint 规则, 主要如下, 配合 vscode 可以保存自动 fix
no-else-return

- if(a) {
-  return xx
- } else {
-  return xx
-}

+if(a) {
+  return xx
+}
+return xx

object-shorthan

const a = 1
- const o = { a: a }
+ const o = { a }

max-params

避免一个函数太多参数, 多的参数通过 object 的方式传入

- const fn = (a, b, c, d, e, f, ...) => xx
+ const fn = (a, b, {...}) => xx

🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self Check before Merge

[x] Add or update relevant Docs.
[x] Add or update relevant Demos.
[x] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.14.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.13.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.13.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.12.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow user to set OPENJCEPLUS_GIT_REPO and BRANCH

resolves: https://github.com/adoptium/aqa-tests/issues/5055

@llxia This fails because the newer upload artifact action doesn't allow the uploading of the exact same named artifact.

PR builds failure has nothing to do with this PR. It is a known issue that PR builds do not check up PR repo: https://github.com/adoptium/aqa-tests/issues/4855. Even if it does, this PR cannot be tested via PR build.

The PR is rebased.