ModulationPy: M-PSK and M-QAM implementation

Hello!
This issue relates to #99 and #60. One of my pet-projects is implementation of the M-PSK and M-QAM modems: ModulationPy. Actually, this is a little faster than your implementation :) (results).
I've tested M-PSK case more or less successfully:

However, I did not have time to do something similar for M-QAM (only unit-tests are done).
Actually, you can just import my module into your project, or we can discuss the optimal way if you are interested!
Have a nice day!  :)

The results are very good for M-PSK! You have already implemented the M-QAM and only the test is missing, isn't it?
Anyway, importing your code seems the right short-term fix to #99 and #60. I see that you also use BSD 3-clauses licence so we could merge the projects on a mid-term basis.

The results are very good for M-PSK! You have already implemented the M-QAM and only the test is missing, isn't it?
Anyway, importing your code seems the right short-term fix to #99 and #60. I see that you also use BSD 3-clauses licence so we could merge the projects on a mid-term basis.

I would suggest importing ModulationPy as a dependency and using it in the functions in https://github.com/veeresht/CommPy/blob/master/commpy/modulation.py so that there is no API change for CommPy.

I would suggest importing ModulationPy as a dependency and using it in the functions in https://github.com/veeresht/CommPy/blob/master/commpy/modulation.py so that there is no API change for CommPy.

@BastienTr, yes, there are no simulations for M-QAM in my project. Only unit-tests (decoded message is equal to uncoded) and signal constellation looks right:

@veeresht, I guess it will be the most straightforward way.

@kirlf, if you only miss BER vs. SNR curves, I can try to find some time to make them. It's not the most challenging part.
Regarding the embedding of ModulationPy, I see two options to add @kirlf's codes without API changes. On the first hand, we can add ModuationPy in the dependency tree as suggested by @veeresht. On the other hand, we can include the code directly into the modulation module of CommPy.
Pros for the dependency:

@kirlf keep full control on his codes ;
if improvements are made on ModulationPy without API changes, this will automatically improve CommPy.

Cons for the dependency:

makes the dependency tree more complicated for a piece of code that would have fit in commpy ;
Put some constraints on ModulationPy since an API change would break CommPy.

I guess that the right choice depends mainly on @kirlf's plans for his repo.

Hello guys,
I have quickly written three functions that could be used to implement the gray mapping for M-QAM in your package. You just need to include them as methods in the current class QAMModem and it should work.  I have tested them with BER vs EbN0 and the results are in agreement with the theory. The demodulate function assumes only hard decision, though. I believe your code for soft-decision could probably be easily adapted to receive a Gray mapping (or any mapping) as input and return the corresponding LLRs, but I did not look into that. I am attaching a jupyter notebook file with the functions and a quick test. Let me know if it could be of any help to you.
GrayMapping.zip

@BastienTr @veeresht actually, I won't plan to change API. The interfaces for M-PSK (https://github.com/kirlf/ModulationPy#1-m-psk) and M-QAM (https://github.com/kirlf/ModulationPy#2-m-qam) were designed according to MatLab style and opportunities. I guess to add something is not necessary (and we always can use default values or specify version of the library).
So, the opportunity to make the decision is yours! :)

I just had a quick review of your suggestions. First of all, thanks for your inputs!
I see two rather independent parts in this discussion: enhancing modem performance and the implementation of Gray coding for QAM modems.
In the first phase, I feel that we should focus on implementing Gray code for QAM since it is the most requested feature (Cf. #99 and #60). The present modem object supports any constellation and maintains its coherency (hard and soft decoding, average power calculation, etc.). Therefore, I'm considering the function proposed by @edsonportosilva as a complementary function to our code. Below is a simple demonstration to show how simple it is.
from sympy.combinatorics.graycode import GrayCode
from numpy.matlib import repmat
import numpy as np
from commpy.modulation import QAMModem

def GrayMapping(M):
    L = int(np.sqrt(M) - 1)
    bitsSymb = int(np.log2(M))

    PAM = np.arange(-L, L + 1, 2)
    PAM = np.array([PAM])

    # generate complex square-QAM constellation
    const = repmat(PAM, L + 1, 1) + 1j * repmat(np.flip(PAM.T, 0), 1, L + 1)
    const = const.T

    for ind in np.arange(1, L + 1, 2):
        const[ind] = np.flip(const[ind], 0)

    code = GrayCode(bitsSymb)
    a = list(code.generate_gray())

    const_ = np.zeros((M, 2), dtype=complex)
    const = const.reshape(M, 1)

    for ind in range(0, M):
        const_[ind, 0] = const[ind, 0]  # complex constellation symbol
        const_[ind, 1] = int(a[ind], 2)  # mapped bit sequence (as integer decimal)

    # sort complex symbols column according to their mapped bit sequence (as integer decimal)
    const = const_[const_[:, 1].real.argsort()]

    return const

QAM16 = QAMModem(16)
QAM16.constellation = GrayMapping(16)[:, 0]
assert QAM16.Es == QAMModem(16).Es
QAM16.plot_constellation()

Since GrayMapping is called only once, there is no point of optimizing it to much but it may still be useful to have a closer look. This function could be included in QAMModem and called by \QAMModem.init.  I like this solution all the more because it only requires adding to the dependencies a quite standard library ([sympy`](https://pypi.org/project/sympy/)).
After this quick fix, we could optimize the code by borrowing and/or embedding @kirlf's code, but the work is a bit heavier since we need to interface both codes.
What do you think about it?

From my point of view, that would also be the simplest and the best solution, in the sense that you keep the basic code structure of Commpy. In that case, @BastienTr, you may consider adding this modified version with support to 'qam' and 'psk' constellations:
def GrayMapping(M, constType):

    L   = int(np.sqrt(M)-1)
    bitsSymb = int(np.log2(M))

    code = GrayCode(bitsSymb)
    a    = list(code.generate_gray())

    if constType == 'qam':
        PAM = np.arange(-L, L+1, 2)
        PAM = np.array([PAM])

        # generate complex square M-QAM constellation
        const = repmat(PAM, L+1, 1) + 1j*repmat(np.flip(PAM.T,0), 1, L+1)
        const = const.T

        for ind in np.arange(1,L+1,2):
            const[ind] = np.flip(const[ind],0)

    elif constType == 'psk':
        pskPhases = np.arange(0,2*np.pi,2*np.pi/M)

        # generate complex M-PSK constellation
        const     = np.exp(1j*pskPhases)

    const    = const.reshape(M,1)
    const_   = np.zeros((M,2),dtype=complex)

    for ind in range(0,M):
        const_[ind,0]   = const[ind,0]   # complex constellation symbol
        const_[ind,1]   =  int(a[ind],2) # mapped bit sequence (as integer decimal)

    # sort complex symbols column according to their mapped bit sequence (as integer decimal)
    const = const_[const_[:,1].real.argsort()]

    return const

@BastienTr  yes, I am agree that the simplest way means the best way in this case.

Ok.
The last question is : do we make Gray coding the new default or do we add a new argument? On one hand, changing the default behaviour is a retrocompatibility issue. On the other hand, Gray coding is assumed by most users.
I feel like this is one of the rare situation when we should break the retrocompatibility but I'm not sure...

I think it's better to make Gray mapping default because e.g. many people who will try to use Commpy for the first time will look for some way to test if the code is doing what it's supposed to do by basically comparing its results with a theoretical reference. If you don't have Gray mapping as default, the mismatch between simulations and theory will make people suspicious that there is a bug somewhere. There is a gap of less than 0.5 dB from the current mapping to the Gray mapping performance for some QAM formats. Because this penalty is small in some cases, it's not straightforward to find from where it's coming from if you e.g. have already built a reasonable complex simulation. Until you realize it's the mapping, if you do, you may have lost a long time debugging stuff. So, making it default would avoid that.

P.S.
@BastienTr I'm writing to inform that I've finalized BER simulation and performance testing for M-QAM in ModulationPy project!
Have a nice day!

@BastienTr @veeresht
Hello guys, just a heads up: I tried to update the Commpy version I use, to get the code after the update to implement Gray mapped constellations, and the script I had before with QAM modem was still not using Gray mapping as default. I don't know why. I didn't try to look into the code in detail, but I have checked that the modifications made in the last pull request are there. Maybe something went missing while updating the modems.

Hi @edsonportosilva,
Thanks for the feedback. Could you please share minimal working example (MWE) or an executable piece of codes that show the bug? I have some free time to have a look :smile:

Hello @BastienTr
I have updated the code manually downloading the files from GitHub. Check the notebook attached with a simple implementation to test BER vs EbN0. If you run it, you will see that the BER curve yet does not agree with the theory, which is the very same problem the pull request was supposed to fix.
CommpyTest_BERvsEbN0_March2021.zip

I just run your code on my laptop and everything work as expected. Here is the output from your code.

Moreover, the unit tests from the library match the theory for both m-PSK and m-QAM.
https://github.com/veeresht/CommPy/blob/15eef391a30097cb2801222817179cd56bc8baa4/commpy/tests/test_modulation.py#L132-L162
Could you double check that you use the last Commpy version from github? I'll try to use a fresh install on my desktop to see if I can reproduce the bug on my laptop.

I just checked with a fresh intall using Python 3.9 and pip install -r requirements.txt. Everything work as expected.

Hi @BastienTr,
Funny, then It must be something went wrong when I tried to update the code in my notebook. I remember I tried to use pip and it didn't work, so I move to manually install everything, then I checked the version of Commpy and tried to run some tests...
But still, right now, with another fresh install, following the same steps as you mention, and using a new conda environment I get this:

I am using GitHub Desktop to download the files, let me download them directly to see what happens...

Ok, after downloading the files from GitHub, if I try to install using python setup.py install, I get this error:
(py39) C:\Users\edson\Documents\GitHub\edsonportosilva\CommPy>python setup.py install
Traceback (most recent call last):
  File "C:\Users\edson\Documents\GitHub\edsonportosilva\CommPy\setup.py", line 9, in <module>
    LONG_DESCRIPTION = open('README.md').read()
  File "C:\Users\edson\AppData\Roaming\SPB_Data\.conda\envs\py39\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 5410: character maps to <undefined>

All right, finally:

So, the problem was that some updates were missing and Anaconda was messing up with the environments in my notebook...
I guess the whole installation became a bit trickier than simply using pip. Perhaps, it would be nice to have a new release for the pip repo.

Cool that you figured it out. I'll try to update on pip when I have some time.

Just to let you know that pip should be updated to include Gray coding @edsonportosilva

Just to let you know that pip should be updated to include Gray coding @edsonportosilva

Thanks, @BastienTr! Right on time. I have just started teaching a course this semester where I plan to use Commpy, and pip will ease the way for the students to install it.


Failed to run detox on circleci

In circle ci, i could build the app in detox. however, it failed at test command:
this is the error I am getting:
detox[21821] ERROR: [EXEC_FAIL, #6] "SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="/Users/runner/Library/Detox/ios/f92aa3d8e66509bba254a5e62204c52b76488e49/Detox.framework/Detox" /usr/bin/xcrun simctl launch DAD58974-FC52-4796-9F09-12EAF0A0323F org.name.Myapp2960601 --args -detoxServer ws://localhost:49767 -detoxSessionId 3bfcd75c-31c0-97f2-8cd4-c8bfc0003de4 -detoxDisableHierarchyDump YES" failed with error = ChildProcessError: Command failed: SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="/Users/runner/Library/Detox/ios/f92aa3d8e66509bba254a5e62204c52b76488e49/Detox.framework/Detox" /usr/bin/xcrun simctl launch DAD58974-FC52-4796-9F09-12EAF0A0323F org.name.Myapp2960601 --args -detoxServer ws://localhost:49767 -detoxSessionId 3bfcd75c-31c0-97f2-8cd4-c8bfc0003de4 -detoxDisableHierarchyDump YES
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=4):
The request to open "org.name.Myapp2960601" failed.
Underlying error (domain=FBSOpenApplicationErrorDomain, code=4):
	The operation couldn’t be completed. Application info provider (FBSApplicationLibrary) returned nil for "org.name.Myapp2960601"
	Application info provider (FBSApplicationLibrary) returned nil for "org.name.Myapp2960601"
 `SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="/Users/runner/Library/Detox/ios/f92aa3d8e66509bba254a5e62204c52b76488e49/Detox.framework/Detox" /usr/bin/xcrun simctl launch DAD58974-FC52-4796-9F09-12EAF0A0323F org.name.Myapp2960601 --args -detoxServer ws://localhost:49767 -detoxSessionId 3bfcd75c-31c0-97f2-8cd4-c8bfc0003de4 -detoxDisableHierarchyDump YES` (exited with error code 4) (code=4), stdout and stderr:

detox[21821] ERROR: [EXEC_FAIL, #6] org.name.Myapp2960601: -1

detox[21821] ERROR: [EXEC_FAIL, #6] An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=4):
The request to open "org.name.Myapp2960601" failed.
Underlying error (domain=FBSOpenApplicationErrorDomain, code=4):
	The operation couldn’t be completed. Application info provider (FBSApplicationLibrary) returned nil for "org.name.Myapp2960601"
	Application info provider (FBSApplicationLibrary) returned nil for "org.name.Myapp2960601"

@xiongemi the error is fairly generic and can happen due to various reasons. My advice is to first make sure the app runs properly on your local environment, and then figure out a way to execute on CI regardless of Detox - just to see whether the app launches properly.


add ccx params doc

Related to https://github.com/prebid/Prebid.js/pull/2575

Related pull request has been resolved.


Error: Unknown binary target debian-openssl-3.2.x in generator client.

Bug description
When I try to generate the client for target "debian-openssl-3.2.x", I get the message of unknown binary target. Even installing Openssl 3.2.2:
Error: Unknown binary target debian-openssl-3.2.x in generator client.
Possible binaryTargets: darwin, darwin-arm64, debian-openssl-1.0.x, debian-openssl-1.1.x, debian-openssl-3.0.x, rhel-openssl-1.0.x, rhel-openssl-1.1.x, rhel-openssl-3.0.x, linux-arm64-openssl-1.1.x, linux-arm64-openssl-1.0.x, linux-arm64-openssl-3.0.x, linux-arm-openssl-1.1.x, linux-arm-openssl-1.0.x, linux-arm-openssl-3.0.x, linux-musl, linux-musl-openssl-3.0.x, linux-musl-arm64-openssl-1.1.x, linux-musl-arm64-openssl-3.0.x, linux-nixos, linux-static-x64, linux-static-arm64, windows, freebsd11, freebsd12, freebsd13, openbsd, netbsd, arm, native
How to reproduce

npx prisma generate
Expected behavior
debian-openssl-3.2.x
Prisma information

// Add your schema.prisma

generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "debian-openssl-3.2.x"]
}
// Add your code using Prisma Client

Environment & setup

OS: Debian
Database: PostgreSQL 16.1
Node.js version: 16.20.1

Prisma Version
4.2.1

Hi, there's no debian-openssl-3.2.x build of Prisma Engines. You probably want to install debian-openssl-3.x.x, which is compatible with every minor version of OpenSSL 3, including 3.2.x.
Can you please try that, and report back with the results? Thanks.

Hi,
Unfortunately, I can't install OpenSSL 3.x because the Debian image is not controlled by me.
OpenSSL works:
OpenSSL 3.0.10 - (Library: OpenSSL 3.0.10 1 Aug 2023)
OpenSSL has problems:
OpenSSL 3.2.2 - (Library: OpenSSL 3.2.2 4 Jun 2024)
Do you have any plans for Prisma to support OpenSSL 3.2.x?
Thank you very much!

Hi, Unfortunately, I can't install OpenSSL 3.0.x because the Debian image is not controlled by me.
OpenSSL works: OpenSSL 3.0.10 - (Library: OpenSSL 3.0.10 1 Aug 2023)
OpenSSL has problems: OpenSSL 3.2.2 - (Library: OpenSSL 3.2.2 4 Jun 2024)
Do you have any plans for Prisma to support OpenSSL 3.2.x?
Thank you very much!

Hi, let me restate what I previously wrote.
You don't need to install any new specific OpenSSL version. For any OpenSSL 3.x.x version you have installed in your system, like v3.2.x, Prisma requires the ${DISTRO}-openssl-3.x.x engines, which in the case of DISTRO="debian", is debian-openssl-3.x.x.
So, in your Prisma schema, please use:
generator client {
  provider = "prisma-client-js"
  binaryTargets = ["native", "debian-openssl-3.x.x"]
}

I used this configuration (binaryTargets = ["native", "debian-openssl-3.x.x"]) on Ubuntu 22.04 (OpenSSL 3.0.x) and it worked fine, but when running on Debian (OpenSSL 3.2.x OR 3.3.x) I get the following runtime error:
"You may have to run prisma generate for your changes to take effect. Error: Unknown PRISMA_QUERY_ENGINE_LIBRARY debian-openssl-3.3.x. Possible binaryTargets: darwin, darwin-arm64, debian-openssl-1.0.x, debian-openssl-1.1.x, debian-openssl-3.0.x, rhel-openssl-1.0.x, rhel-openssl-1.1.x, rhel-openssl-3.0.x, linux-arm64-openssl-1.1.x, linux-arm64-openssl-1.0.x, linux-arm64-openssl-3.0.x, linux-arm-openssl-1.1.x, linux-arm-openssl-1.0.x, linux-musl, linux-nixos, windows, freebsd11, freebsd12, freebsd13, openbsd, netbsd, arm, native or a path to the query engine library.
You may have to run prism generate for your changes to take effect."

Well, did you run prisma generate as asked by the error message? :)


Add FreeBSD 14.0 to CI

FreeBSD 14.0 came out a month ago, it's high time to add it to CI. I tried two times already (https://github.com/newsboat/newsboat/pull/2631, https://github.com/newsboat/newsboat/pull/2635), but I can't get it to work because CIrrus CI can't find the images: https://github.com/cirruslabs/cirrus-ci-docs/discussions/1256
This issue is just so I don't forget about this. Currently waiting for a response from Cirrus CI folks or from fellow users.

This is currently blocked on https://github.com/Koka/gettext-rs/issues/117.


Fix/duplicated setting header

Fixes #683
I've also started creating release notes file (like I'm doing for robotidy or roboswag) - recently creating release notes from scratch each release for Robocop could take me ~1 hour so I hope it will help.

Codecov Report
Base: 96.90% // Head: 96.90% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (5028b59) compared to base (809a56b).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #725   +/-   ##
=======================================
  Coverage   96.90%   96.90%
=======================================
  Files          24       24
  Lines        3070     3071    +1
=======================================
+ Hits         2975     2976    +1
  Misses         95       95

Impacted Files
Coverage Δ

robocop/checkers/duplications.py
98.59% <100.00%> (+<0.01%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


GlobalFilter support

Background
As discussed in issue https://github.com/megaease/easegress/issues/253, global filters that can be used by all pipelines is a real and important requirement.
Design
Object GlobalFilters can create several filters that can be used globally.
Spec:
name: globalFilters
kind: GlobalFilters
filters:
  - name: globalValidator
    kind: Validator
    headers:
      Content-Type:
        values:
        - application/json
  - name: globalRequestAdaptor
    kind: RequestAdaptor
    header:
      set:
        X-Adapt-Key: goodplan
  - name: globalProxy
    kind: Proxy
    mainPool:
      servers:
      - url: http://<IP_ADDRESS>:9095
      - url: http://<IP_ADDRESS>:9096
      - url: http://<IP_ADDRESS>:9097
      loadBalance:
        policy: roundRobin

Then, we create three global filters, named: globalValidator, globalRequestAdaptor, globalProxy. Then we can use them in pipelines.
In pipeline:
Spec:
name: pipeline-demo
kind: HTTPPipeline
flow:
  - filter: validator
  - filter: requestAdaptor
  - filter: proxy
filters:
  - name: validator
    kind: GlobalFilterWrapper
    globalFilter: globalValidator
  - name: requestAdaptor
    kind: GlobalFilterWrapper
    globalFilter: globalRequestAdaptor
  - name: proxy
    kind: GlobalFilterWrapper
    globalFilter: globalProxy

GlobalFilterWrapper behaves just like normal filters, so it can be put in front, end or middle of a pipeline.

#253


don't talk about injection if the install profile is ambient

$ istioctl install --set profile=ambient --skip-confirmation
✔ Istio core installed
✔ Istiod installed
✔ CNI installed
✔ Ztunnel installed
✔ Installation complete
Made this installation the default for injection and validation.

That last line is confusing to someone who is only installing ambient.

Makes sense. I will make a small PR to sort it out


[Debug] Failure returned for configurationDone is not displayed in UI

VSCode Version: all
OS Version: all

Steps to Reproduce:

Create a debug adapter that sets the supportsConfigurationDoneRequest flag to true in initialize.
Have the configurationDone handler return a failure with an error message.

Expected:
VSCode ends the debug session (by sending a disconnect request) and displays the error message.


[SPARK-20787][PYTHON] PySpark can't handle datetimes before 1900

time.mktime can't handle dates from 1899-100, according to the documentation by design. calendar.timegm is equivalent in shared cases, but can handle those years.
What changes were proposed in this pull request?
Change time.mktime for the more able calendar.timegm to adress cases like:
import datetime as dt
sqlContext.createDataFrame(sc.parallelize([[dt.datetime(1899,12,31)]])).count()

failing due to internal conversion failure when there is no timezone information in the time object. In the case there is information, calendar was used instead.
How was this patch tested?
The existing test cases should cover this change, since it should not change any existing functionality.
This PR is original work from me and I license this work to the Spark project

Can one of the admins verify this patch?

Closing while I fight with an issue seemingly related to DST between gmtime and mktime


Author and institution list hiding in pure CSS

The current author list using the <detail> element doesn't allow for responsive list hiding different number of authors and insitutions at different breakpoints.
This PR removed all that, simplifies the server-side back to rendering a list, and then implements the show/hide bahaviour using a hidden checkbox for state and CSS only. It then also implements different number of authors hidden at different breakpoints

The current author list using the <detail> element doesn't allow for responsive list hiding different number of authors and insitutions at different breakpoints.
This PR removed all that, simplifies the server-side back to rendering a list, and then implements the show/hide bahaviour using a hidden checkbox for state and CSS only. It then also implements different number of authors hidden at different breakpoints\n\n---Preview instance will be available at https://epp-preview-309.elifesciences.org/

Preview environment at https://epp-preview-309.elifesciences.org/


WIP Implement NFC tag writing feature in iOS

NFC tag writing feature in iOS has been implemented and tested.
iPhone version: 11
NFC tag type: Type 2 Tag used in the current sensors.
Forked repo will be published as GitHub package as @nordsense/nativescript-nfc

Read and write passed using iPhone 11 and DevKit.


Support Redis v6 ACL.

Description
Redix currently ignores the username if specified in the connection URI. For versions of Redis before v6, this was correct, because Redis had no concept of usernames.
Redis v6, however, has the new ACL system which allows you to authenticate as a given user.
This commit adds a new :username option to the allowed start options, and parses this value from a URI if given. If the username and password are both present, it then uses the new two argument form of the AUTH command when connecting to Redis, i.e. AUTH <username> <password>. The old one argument form (AUTH <password>) is used if a password is given, but no username is given.
Testing
I've added a new Docker service to the docker-compose.yml file, which starts a version of Redis 6 with some ACL users already specified. I've then added some unit tests to test that we can connect to this, and the correct username is passed when authenticating (this is tested indirectly by testing what actions we are able to perform in Redis).
Also added a unit test to test that we pull the username out of the URI correctly.
Breaking changes
This will potentially break a use case such as the one in this issue: https://github.com/whatyouhide/redix/issues/145.
My understanding there is that Heroku always uses the username h in the URI, and the writer of the app has no control over that URI value (e.g. it's set by Heroku in an environment variable). If someone with this setup upgrades to the new version, Redix would see a non-nil username, and attempt to use the new two-argument for of AUTH <username> <password>. But if their Redis instance is <6, this would break their connection because old versions of Redis only support AUTH <username>.
There is a simple fix for this - add username: nil to the options when calling Redix.start_link, e.g. Redix.start_link(uri, username: nil). This will override the username set in the URI, setting it to nil, thus causing us to use the old one argument form of the AUTH command.
If you aren't happy with the breaking change, we could add another option called something like ignore_username, and default it to true. This would mean the breaking change goes away, but it would make things more confusing for a user who wants to use ACL - they would now have to add the username option (or specify it in the URI), and also set ignore_username to false. That seemed a bit poor UX to me so I chose the option to default to using the username if it is specified.
Summary
Thanks for your hard work on Redix - please let me know if you have any comments and if there is anything I can do to make it easier for this to be merged.
Thanks,
Steve

Hey,
I don’t suppose you’ve had a chance to look at this?
I don’t actually need it any more, we’ve decided to not use Redis ACL for now, but I still think it’s a good addition to the library for other users.
Thanks,
Steve

Hey @whatyouhide. No problem. Thanks for the merge and the great work!


Are CHEBI:165297 '20-HeDE' and CHEBI:72848 'HEDE' related?

Hi,
Are CHEBI:165297 '20-HeDE' and CHEBI:72848 'HEDE' related in some way, please?
Thank you,
Paola Roncaglia

@amalik01 thank you for the prompt reply! So CHEBI:165297 '20-HeDE' should be a subclass of CHEBI:72848 'HEDE', right? Or are the two classes the same thing? Thank you.

yes, that's right 20-HEDE is a subclass of HEDE.
HEDE contains a hydroxy group but its position is unspecified and 20-HEDE contain a hydroxy group specifically at position 20.


Set ws.Client disconnected on Stop

Prevents the following panic:
panic: send on closed channel

goroutine 16 [running]:
github.com/lorenzodonini/ocpp-go/ws.(*Client).Write(0xc00009a790, 0xc000036720, 0x25, 0x30, 0x0, 0x0)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ws/websocket.go:758 +0x70
github.com/lorenzodonini/ocpp-go/ocppj.(*Client).SendResponse(0xc00009e310, 0xc00003aca0, 0x9, 0xb44860, 0xc000073770, 0x7f64d4b2e108, 0x10)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ocppj/client.go:154 +0x114
github.com/lorenzodonini/ocpp-go/ocpp1%2e6.(*chargePoint).sendResponse(0xc0000a0400, 0xb44860, 0xc000073770, 0x0, 0x0, 0xc00003aca0, 0x9)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ocpp1.6/charge_point.go:263 +0x9a
github.com/lorenzodonini/ocpp-go/ocpp1%2e6.(*chargePoint).handleIncomingRequest(0xc0000a0400, 0xb44880, 0xc00004c900, 0xc00003aca0, 0x9, 0xc0000384f8, 0x13)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ocpp1.6/charge_point.go:387 +0x1c5
github.com/lorenzodonini/ocpp-go/ocppj.(*Client).ocppMessageHandler(0xc00009e310, 0xc0000cb400, 0xcb, 0x200, 0x0, 0x1)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ocppj/client.go:194 +0x29a
github.com/lorenzodonini/ocpp-go/ws.(*Client).readPump(0xc00009a790)
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ws/websocket.go:711 +0x16f
created by github.com/lorenzodonini/ocpp-go/ws.(*Client).Start
        /home/mike/projects/project/client/vendor/github.com/lorenzodonini/ocpp-go/ws/websocket.go:792 +0x5fa

which is due to handleIncomingRequest being called after we've called Stop and it calling SendResponse and then Write

This one's pretty unlucky.
Closing the outQueue channel already triggers the setConnected(false), although with scheduling in between.
You might even want to move this statement above the close statement, just to be on the safe side.

True, updated.


Heroku setup

Adds initial setup so we can start deploying to heroku.
New scripts:
    "build": "npm-run-all -l setup --parallel build:client build:server",
    "build:server": "webpack --config './webpack.server.babel.js'",
    "build:client": "webpack --config './webpack.client.babel.js'",
    "heroku-postbuild": "yarn build",
    "setup": "rimraf build",
    "start": "node build/server/server.js",

It works!!!!! http://careday-app-prod-we.herokuapp.com/
TODO: Get hard reload on /search working

closing in favor of https://github.com/wework/careday-app/pull/27


Error: dlopen (...node_modules/canvas/build/Release/canvas.node, 0x0001): symbol not found in flat namespace '_cairo_fill' when Running the project on M1

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Get the Repo offline
Follow Getting Started (successfully)

Install nvm then node & npm: brew install nvm && nvm install
Install watchman: brew install watchman
Install dependencies: npm install

Run npm run web
The error is shown & it breaks the WebApp.

Expected Result:
The WebApp runs without error
Actual Result:
The WebApp break with Error: dlopen (...node_modules/canvas/build/Release/canvas.node, 0x0001): symbol not found in flat namespace '_cairo_fill'
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
**Reproducible in staging?:n
**Reproducible in production?:n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
View all open jobs on GitHub

I'll test soon

Still on my test list

I realized that this one closed automatically. For now, I'm going to keep it closed since it should first be reported in  #expensify-open-source.


Some test attributes do not exist on ODF4.11

OCP Version:
OCP Version: 4.11.0-0.nightly-2022-06-04-014713
ODF Version: 4.11.0-85
https://docs.google.com/document/d/1-yHsQwbf7aAGnxMr8Ycg0bJx2NPT3Z-60L2ZYS1b6sI/edit

Closing as PR mentioned above is merged.

/close


facing error when remove the dynamic row with nova row

hi,
when I remove the row it gives me an error of focus in the console.
how to fix it ??

Can you provide the error that are you getting? I can't reproduce this in my tests.


Two error messages shown during self registration flow

Describe the issue:
The user portal shows two error messages when a user attempts to login with an already registered email address first and afterwards with an invalid email address.
How to reproduce:
Prerequisites: Enable email as username and enable self registration feature in resident idp configs.

Go to user portal login page.
Click on Create Account hyperlink.
On the create new account page, input a valid email address, which already exists as a username in the system, and click Next/Continue button.
When the button is clicked, WSO2 checks in the background if the user already exists with the provided email, and returns error "<email address> already exists. Please try a different email address."
On the same page, input an invalid email address (username without @ symbol) and click Next/Continue button.
Now two error messages are shown. One is from step 3 and the other one for the validation of the email address.

Expected result: The backend error message should disappear when a new UI validation error is shown.
Actual result: Shows the previous error message along with the latest error message

This issue is not reproducible in 5.12.0-M2.


Improving load balancer performance

TL;DR
Updates to improve load balancer performance at a high load scenario.
Resolves https://github.com/moby/moby/issues/35082
Detailed explanation is provided at https://github.com/moby/moby/issues/35082#issuecomment-565245210

thanks for running the tests and contributing ! Had a few questions -

should we also set net/ipv4/vs/expire_quiescent_template to 1 which should expire persistent connections to the real server with weight 0 (after the backend is down thanks to the net/ipv4/vs/expire_nodest_conn=1 setting ), but I see there is an open issue https://github.com/kubernetes/kubernetes/issues/81775 so would like to understand the negative implications of setting net/ipv4/vs/conn_reuse_mode to 0
cc: @lbernail

will this setting work for most kernels ?

This fix resolved the same issue for me.  My findings here: https://github.com/moby/moby/issues/35082#issuecomment-585433224
Happy to help in any way to move this forward!

@arkodg do you think this fix is likely to be introduced at this layer?  Trying to understand if we should add scripting to our deployment that adds this after every docker stack deploy:
sudo nsenter --net=/var/run/docker/netns/{your_load_balancer} sysctl -w net.ipv4.vs.conn_reuse_mode=0
sudo nsenter --net=/var/run/docker/netns/{your_load_balancer} sysctl -w net.ipv4.vs.expire_nodest_conn=1

...or whether we should wait for a fix here.  Any guidance would be much appreciated!

@geekdave
That's our current solution to this problem.
default_network_id=$(docker network ls | grep "myservice_default" | awk '{print $1}')
sudo nsenter --net=/var/run/docker/netns/lb_${default_network_id:0:9} sysctl -w net.ipv4.vs.conn_reuse_mode=0
sudo nsenter --net=/var/run/docker/netns/lb_${default_network_id:0:9} sysctl -w net.ipv4.vs.expire_nodest_conn=1

Once your stack is running, consecutive docker stack deploy is unnecessary since your load balancer sandbox will be re-used throughout the lifetime of your docker stack.

Thanks for this, @ahjumma !  We have some tooling that performs an initial stack deploy on fresh machines.  I'm considering adding some scripting that waits in a loop until the ${service}_default network is created before running your commands.  Does that seem like the right approach?

👋 In kube-proxy we set:

net.ipv4.vs.conn_reuse_mode=0
net.ipv4.vs.expire_nodest_conn=1
net.ipv4.vs.expire_quiescent_template=1

expire_nodest_conn is required to avoid blackholing traffic to existing destinations after removing the RealServer (RST on next packet to backend for TCP, ICMP destination unreachable for UDP)
expire_quiescent_template is great when you set weight to 0 to avoid creating new connections to a real server with weight 0
conn_reuse_mode is great for performances: if you set it to 1, a new connection reusing the same 5 tuples will get its first packet dropped, which means the new connection will wait for 1s to retry.
However, it leads to some problems in kube-proxy because if ports are reused fast enough a realserver always has Active/InActive Connections and is never garbage collected (we currently asynchronously gc backends with weight 0 when they have no connections, but we are looking into ways to forcefully delete the backend after a while to avoid this situation)

thanks for running the tests and contributing ! Had a few questions -

should we also set net/ipv4/vs/expire_quiescent_template to 1 which should expire persistent connections to the real server with weight 0 (after the backend is down thanks to the net/ipv4/vs/expire_nodest_conn=1 setting ), but I see there is an open issue kubernetes/kubernetes#81775 so would like to understand the negative implications of setting net/ipv4/vs/conn_reuse_mode to 0
cc: @lbernail
will this setting work for most kernels ?

Hi @arkodg.
It does seem net.ipv4.vs.expire_quiescent_template=1 would be also helpful.
Regarding your concern raised by possible problematic behaviours of net.ipv4.vs.conn_reuse_mode=0, net.ipv4.vs.expire_nodest_conn=1 is what allows by-passing the problem.
This has been acknowledged in kubernetes/kubernetes/issues/81775#issuecomment-542542167 you have referenced .
For the second question, what's the earliest linux kernel that Docker Swarm needs to support?

thanks @lbernail @ahjumma
can we also include  net.ipv4.vs.expire_quiescent_template=1

Hi @arkodg ,
According to @lbernail's previous finding, kernel 2.6 is supported.

can you ptal as well @lbernail

will look into it soon.

I did the same steps but the ingress ld still low. Did I missed any steps
sudo nsenter --net=/var/run/docker/netns/lb_o7wjqxluj sysctl  net.ipv4.vs.conn_reuse_mode
sudo nsenter --net=/var/run/docker/netns/lb_o7wjqxluj sysctl  net.ipv4.vs.expire_nodest_conn
sudo nsenter --net=/var/run/docker/netns/lb_o7wjqxluj sysctl  net.ipv4.vs.expire_quiescent_template


Incorrect string formatting when rounding up to include additional digit

I've run into some strange behaviour when converting values to strings that require rounding up. For example, see the code snippet below:
var b decimal.Big
b.SetString("9.996208266660")
fmt.Println(fmt.Sprintf("%.2f", &b)) // Should be 10.00, but is 1.000

b.SetString("0.9996208266660")
fmt.Println(fmt.Sprintf("%.2f", &b)) // Should be 1.00, but is 0.100

Other values appear to be fine – this appears to only happen when rounding up to include an additional digit, almost as if the decimal point is being outputted 1 position left from where it should be. Any idea why this may be happening? More examples can be found here. Thanks!

I just noted I'm also having this issue and it seems like a serious problem. Rounding up to include an additional digit happens all the time and causes some really strange effects on the UI. :-(

Workaround, use Quantize on a copy:
var b decimal.Big
b.SetString("9.996208266660")
fmt.Println(fmt.Sprintf("%.2f", new(decimal.Big).Copy(&b).Quantize(2)))

But I really think this should be fixed.

Thanks for the workaround.
Any news on this issue ?


Share links should not have a lang pre-appended

to get share links without a us prefix, the lang should be en-global with no prefix.
Fixes #5482

:100: :dancer:


secp256k1: ported BitCurve.Add changes

Fixes ledgerwatch/erigon#2680
The following functionality were ported in func (BitCurve *BitCurve) Add in file curve.go:
When adding a point at infinity to another point, the other point
should be returned. While this is undefined behavior, it is better
to be more inline with the go standard library.
Thus (0,0) + (a, b) = (a,b)
Adding the same point to itself produced the point at infinity.
This is incorrect, now doubleJacobian is used to correctly calculate it.
This is also similar to the go standard library.
Thus (a,b) + (a,b) == 2* (a,b) and not (0,0) anymore
The rest of changes are made to support compiling with and without cgo, in order to be able to compile fuzzer.
Another PR in main erigon repository will be added for fuzzer implementation.

I will merge and create release tag. Wait 1 sec.

done https://github.com/ledgerwatch/secp256k1/releases/tag/v1.0.0


[Draft] Added Footer component in the stories

Fixes
Fixes #196 by @dhruvkb
Description
This PR should add the story for the footer component
Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the master branch of the repository.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Presently it looks like this

Thanks for this @hemanth-hk, but I'm going to close this. We're doing a major re-working of vue-vocabulary and we will make a new issue for creating the footer. We'll let you know when that issue is ready. Thank you!


ADReplicationSiteLink Add Integration tests, add setting 'options'

Pull Request (PR) description
Add integration testing ability. Adds ability to enable options such as Change Notification Replication
This Pull Request (PR) fixes the following issues

Fixes #356
Fixes #504

Task list

[ ] Added an entry under the Unreleased section in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[ ] Resource documentation added/updated in resource directory README.md.
[ ] Resource parameter descriptions added/updated in schema.mof
and comment-based help.
[ ] Comment-based help added/updated.
[ ] Conceptual help topic added/updated (cultureFolder\about_ResourceName.help.txt).
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[ ] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[ ] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #509 into dev will decrease coverage by <1%.
The diff coverage is 80%.

@@         Coverage Diff         @@
##            dev   #509   +/-   ##
===================================
- Coverage    98%    98%   -1%
===================================
  Files        23     23
  Lines      3108   3159   +51
  Branches     10     10
===================================
+ Hits       3063   3098   +35
- Misses       35     51   +16
  Partials     10     10

Hi @johlju , are you able to review this and #510 at all please? I know there will be a conflict on the changelog.md when one is merged. Thank you

@1800Zeta Thank you for this! The integration tests worked perfectly! 😃

Thank you so much @johlju


make IOContext handle env and cwd as well?

This would get rid of some code that's going to be duplicated among run/BaseCommand/Subshell.

Probably just call it ExecutionContext at that point.

context = ExecutionContext(pipe0, pipe1, pipe2, cwd, full_env, check)
with context.make_sub_thing(stdin, stdout, stderr, cwd, env, full_env, check) as sub:
    # files opened, threads spawned, env updated
    ...
    # files closed, threads joined

Done, though I haven't changed the name. ExecutionContext would be a little confusing given that check for example is not in it.


Add EditCommand's class diagram, update obsolete diagrams from AB3

Sequence diagram for add command was added as well.

Codecov Report

Merging #178 (45a5b53) into master (8e7e509) will increase coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #178      +/-   ##
============================================
+ Coverage     74.56%   74.58%   +0.02%
- Complexity      632      633       +1
============================================
  Files            88       88
  Lines          1879     1881       +2
  Branches        217      218       +1
============================================
+ Hits           1401     1403       +2
  Misses          399      399
  Partials         79       79

Impacted Files
Coverage Δ

...in/java/seedu/address/logic/parser/ParserUtil.java
96.29% <0.00%> (+0.09%)
: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 8e7e509...45a5b53. Read the comment docs.


Support Cospend App

When using the Android sync client for Cospend, "Moneybuster", the following FP appears upon creation of a new bill:
ModSecurity: Warning. Match of "within %{tx.allowed_methods}" against "REQUEST_METHOD" required. [file "/etc/modsecurity/crs/rules/REQUEST-911-METHOD-ENFORCEMENT.conf"] [line "44"] [id "911100"] [msg "Method is not allowed by policy"] [data "PUT"] [severity "CRITICAL"] [ver "OWASP_CRS/4.0.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/210/272/220/274"] [tag "PCI/12.1"] [uri "/ocs/v2.php/apps/cospend/api/v1/projects/personal/bills/1374"]].
I was able to fix it using the following exclusion rule, but can guarantee no safety:
SecRule REQUEST_FILENAME "@rx /ocs/v[0-9]+\.php/apps/cospend/api/v[0-9]+/" \
    "id:9509000,\
    phase:1,\
    pass,\
    t:none,\
    nolog,\
    ver:'nextcloud-rule-exclusions-plugin/1.0.0',\
    setvar:'tx.allowed_methods=%{tx.allowed_methods} PUT'"

@mhastu I think that rule is fine, but you could improve the regex so that your matching if the request uri ends with instead of contains by using negated sets like so:
SecRule REQUEST_FILENAME "@rx /ocs/v[0-9]+\.php/apps/cospend/api/v[0-9]+/(?:[^/]+/){3}[0-9]+$" \
    "id:9509000,\
    phase:1,\
    pass,\
    t:none,\
    nolog,\
    ver:'nextcloud-rule-exclusions-plugin/1.0.0',\
    setvar:'tx.allowed_methods=%{tx.allowed_methods} PUT'"

May need to be adjusted depending on how cospend works exactly
Cospend is an 3rd party Nextcloud app, this plugin is already pretty big(about 160 rules) and it'll continue to grow. 3rd party plugins for WordPress isn't supported so for Nextcloud I think a similar policy is reasonable.

I understand that not every app can be supported so you can close this issue. But thanks for your feedback on the regex :)


Stop writing to pipeline when it errored

Watch error events from the pipeline and stop the gRPC source stream
when that happens.
Fixes #108

Closing, this is the wrong approach. A readable (source) always unpipes from the writable (destination) when the latter errors.


Retangled WIP

From untangled to retangled.
Signed-off-by: zeramorphic<EMAIL_ADDRESS>

What are your plans for the blueprint?

I'm doing the phase1 refactor without a blueprint, because it is pretty simple. I plan to meet with @Randall-Holmes next week to discuss phase 2, and then we can blueprint it out.


⚠ Bofrost.lu has degraded performance

In 7aff5d8, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1175 ms

Resolved: Bofrost.lu performance has improved in 8ea1fc1 after 7 minutes.


npm run start -> plutus-playground-generate-purs: not found

Ubuntu 20.04.1 LTS
npm 6.13.4
node v12.16.0
$ cd plutus-playground-client && npm run start
sh: 1: plutus-playground-generate-purs: not found

as stated in plutus-playground-client README.md

Note: The workflow described here relies heavily on Nix. This means you should either be working inside a nix-shell environment or use tools such as lorri or nix-direnv or similar to provide a suitable environment.

my solution is running npm run start inside nix-shell

Hi, I have same result running command inside nix-shell. Can anybody help?
macOS Monterey 12.2.1 M1 chip
npm 8.11.0
node v18.3.0
`[nix-shell:~/Documents/Repo/plutus-apps/plutus-playground-client]$  npm start

<EMAIL_ADDRESS>start
plutus-playground-generate-purs && npm install && npm run install:spago && npm run build:webpack:dev

sh: line 1: plutus-playground-generate-purs: command not found
[nix-shell:~/Documents/Repo/plutus-apps/plutus-playground-client]$ `


Handle cases where students do not achieve the exam/deferred sub-minimum of 35%

Clarify whether the grade should be FSB or FAL

First check for FSB followed by a check for FAL


UI/UX Contribution

[ ] Contrbute designs for different pages that are required
[ ] Contribute towards the wireframing of the website

Hello @Frenzyritz13 I would like to contribute to this project

@Octateam That is awesome! A couple of things I want to mention though, this is a more beginner oriented project with a priority towards our college community. We would love for you to guide our design team by making template contributions to this project, if you are interested. Also could you drop me a mail here if you are interested in getting involved in this project as a mentor? Thank you! I am assigning this to you to get started anyway.

Thanks @Frenzyritz13 and I’ll be glad to help mentor the designers on this project. The link for me to drop you a mail isn’t working, could you send a new link ?

Hey @Octateam I have updated the link above.

Ok great, i'll be sending you a mail soon

It still isn’t working. Here’s what I see when I click the link

Maybe you could drop me your email address on Twitter, I’m @Eugenedotfig on Twitter


ObservingConditions Template Exception

When trying to use the observingconditions.py template as described in the documentation, when I try to run the code, I get the following error:

I am not a well versed programmer and brand new to Python, but I dropped "to_int" (and later "to_float" when that produced a similar error) and that seems to work.  I am not sure if it can't find those to import, does not need them, or were not defined for some reason.

These are template errors.  You are correct to remove them.  I am making fixes to the template generator. The fixes will be in 0.4. Thank you.

Released 0.4 with this fixed in the templates.


Add ability to add no-cache or must-validate to cache-control

When we pass in something like browserTTL: 0, we want to also be able to specify cache-control rules like no-cache and must-validate.

This is a very old issue so I'm going to close it for now. If you're still running into problems feel free to comment with more details and we can investigate further.


refactor(redux-sequence-action): change sequence-action structure and…

change sequence-action structure and support parallel actions

Great job! Thanks @jasonHzq


rest_tornado support

Just installed the v2.0-beta1.
It works like a charm when you run rest_cherrypy. However, when running rest_tornado, the login request is denied with
HTTP/1.1 400 Bad Request
Date: Fri, 18 Nov 2016 20:07:02 GMT
Content-Length: 73
Content-Type: text/html; charset=UTF-8
Server: TornadoServer/4.2.1

<title>400: Bad Request</title>400: Bad Request

This might be a bug in rest_tornado - I'm not that sure about the api spec.
The rest_cherrypy webserver accepts the login credentials in the form
[
  {
    "username": "rootus_rootus",
    "password": "thebigsecret",
    "eauth": "auto"
  }
]

as well as
{
  "username": "rootus_rootus",
  "password": "thebigsecret",
  "eauth": "auto"
}

rest_tornado only accepts the latter
Btw - great kudos for the awesome plugin!

I've filed an issue in saltstack/salt to get clarity of what is expected behaviour

Tornado support was just added via #70
Supporting tornado caused some changes in the salt return
Cherrypy:
"return": [{
  "master": "total 20\ndrwx------ 3 root root 4096 Mar 25 07:51 .\ndrwxr-xr-x 25 root root 4096 Mar 30 06:40 ..\n-rw-r--r-- 1 root root 3106 Oct 22 2015 .bashrc\n-rw-r--r-- 1 root root 148 Aug 17 2015 .profile\ndrwx------ 2 root root 4096 Mar 25 07:51 .ssh"
}]

Tornado:
"Result": {
  "master": {
    "return": "total 20\ndrwx------ 3 root root 4096 Mar 25 07:51 .\ndrwxr-xr-x 25 root root 4096 Mar 30 06:40 ..\n-rw-r--r-- 1 root root 3106 Oct 22 2015 .bashrc\n-rw-r--r-- 1 root root 148 Aug 17 2015 .profile\ndrwx------ 2 root root 4096 Mar 25 07:51 .ssh"
  }
}

Tornado also does not support subset or batch functionality saltstack/salt#40476
Hook, local (both polling and standard running), and runners all appear to be fine.

Version 3.0 released which incorporates these fixes. The major version was bumped due to supporting saltapi with tornado, which caused changes to the returned output for both tornado and cherrypy.
Pre-3.0 output
"return": [{
  "minionid": "Results and output"
}]

Output in 3.0
"Result": {
  "minionid": {
    "return": "Results and output"
  }
}


Adding support for django-nested-admin

Added support for django-nested-admin by moving the initialization function to a separate media script that watches for the data-django-jsonform data attribute and uses its json value to configure the form. This allows django-nested-admin to update the input IDs while allowing django-jsonform to still be able to find and initialize itself correctly.
(The other PR had a bad branch name)

@bhch thanks for the feedback and catching those issues! It should be good for you to re-review again.

Hello, I've released this in v2.13.0. Thank you for your contribution.


Refactoring of ConvLSTM2D. Added ConvRNN2D and ConvLSTM2DCell.

ConvRecurrent2D has been moved to legacy/layers.
The classes have been written:

ConvLSTM2DCell
ConvRNN2D
ConvLSTM2D

This PR has been mainly copy pasting and adapting code. Below are the places where there were the most changes are or the possible hotspots are (changes I'm not so sure are correct).
ConvLSTM2DCell

In call, I use K.ones_like to generate the dropout mask. Like this:

K.ones_like(inputs)

but in LSTMCell, this code is used:
def _generate_dropout_ones(inputs, dims):
    # Currently, CTNK can't instantiate `ones` with symbolic shapes.
    # Will update workaround once CTNK supports it.
    if K.backend() == 'cntk':
        ones = K.ones_like(K.reshape(inputs[:, 0], (-1, 1)))
        return K.tile(ones, (1, dims))
    else:
        return K.ones((K.shape(inputs)[0], dims))

I'm not sure why K.ones_like isn't used in LSTMCell
ConvRNN2D

In the test function, this part kept failing:

layer = convolutional_recurrent.ConvLSTM2D(**kwargs)
layer.build(inputs.shape)
assert len(layer.losses) == 3
assert layer.activity_regularizer
output = layer(K.variable(np.ones(inputs.shape)))
assert len(layer.losses) == 4

layer.losses was 6 instead of 4. I solved the problem by adding self.built = True at the end of the build function and by changing the way losses are collected. Because the activation loss was associated with the layer and not the cell. So this part:
@property
def losses(self):
    if isinstance(self.cell, Layer):
        return self.cell.losses
    return []

became this:
@property
def losses(self):
    layer_losses = super(ConvRNN2D, self).losses
    if isinstance(self.cell, Layer):
        return self.cell.losses + layer_losses
    return layer_losses

Also, this is get_initial_states. I assume here that the cell does a convolution on the input. Which may be not true (but for the moment it works since ConvLSTM2DCell is the only cell class that exist for 5D tensors).

def get_initial_state(self, inputs):
    # (samples, timesteps, rows, cols, filters)
    initial_state = K.zeros_like(inputs)
    # (samples, rows, cols, filters)
    initial_state = K.sum(initial_state, axis=1)
    shape = list(self.cell.kernel_shape)
    shape[-1] = self.cell.filters
    initial_state = self.cell.input_conv(initial_state,
                                          K.zeros(tuple(shape)),
                                          padding=self.cell.padding)
    if hasattr(self.cell.state_size, '__len__'):
        return [initial_state for _ in self.cell.state_size]
    else:
        return [initial_state]

ConvLSTM2D

Nothing magor. Copy-pasting the LSTM class and adding arguments like kernel_size or padding.

The corrections were done. Quite a lot of code could be removed indeed. But I'm still stuck on the Theano issue. Do you have any ideas or leads on this?

Sorry, no time to look into it right now. Could someone else help out?

Thank you very much for the help and expertise. I don't think I could have find this on my own (and the patch would have been discarded anyway since we want to keep the cell architecture). I'll update the PR this weekend.


some doc pages have unformatted headers

See http://docs-v2.readthedocs.org/en/latest/installing-deis/digitalocean/

That particular URL seems to have gone extinct. Is this still a problem in the Workflow docs @bacongobbler?

Yes. It still seems like an issue in http://docs-v2.readthedocs.org/en/latest/installing-workflow/quickstart/ (and everywhere else).

I think MkDocs is handled differently on readthedocs. Looking at the source it seems like that nav bar is injected into the document by RTD, so we'll have to style around it.

closed via #243


fix: translate keys for communities/events

Solve #2351 for the scope of communities/events.
Web frontend checklist

[x] Formatted my code with yarn format && yarn lint --fix
[x] There are no warnings from yarn lint
[x] There are no console warnings when running the app
[ ] Added any new components to storybook
[ ] Added tests where relevant
[x] All tests pass
[x] Clicked around my changes running locally and it works
[ ] Checked Desktop, Mobile and Tablet screen sizes

Notice: there is one remaining constant called "details" that is left behind:
app/web/features/communities/events/constants.ts
export const details = ({ colon = false }: { colon?: boolean } = {}) =>
  `Details${colon ? ":" : ""}`;

As the word Details is not translated, I'll leave this change for a future PR.

As the word Details is not translated, I'll leave this change for a future PR.

I wonder if it's worth just swapping in the literal string as translation key for places that use this function and just get rid of it here altogether. This kind of "DRYness" doesn't really work well with translation as we found from encountering similar issues in other parts of the app already.
Separately, do you want to go through checking the naming some of the keys here as well? It's not as bad as the old codes, but there are still smells of things like community_page_updated which could do with generalising to its purpose, to something like community_update_success_message

I also note this PR also is showing the translation keys instead of the strings on vercel for event pages, but not locally. I wonder if it's some strangeness related to the fact the event pages are marked "fallback" and the translations aren't being loaded properly when running as a cloud function?

Yeah it's a bit of a balance, and it doesn't look like it's too bad in this part of the codebase from what you renamed.
It's mostly more effort for translators than for us I guess when we find later we're renaming a bunch of things as we fix things, but maybe it's not that bad as there seem to be more of them working on the translation side of things than us at the code at the moment.


Fix wrong type for optional parameter images in TweetEntityUrlV2

The PR #42 introduced the optional property images to the TweetEntityUrlV2.
Unfortunately, it assumed that the images property is only a single object.
During some testing, the Twitter API V2 always returned an array of objects instead of a single object.
The official documentation also shows that images is an array of objects.
 "entities": {
    "urls": [
        {
            "images": [
                {
                    "url": "https://pbs.twimg.com/news_img/1261301555787108354/9yR4UVsa?format=png&name=orig",
                    "width": 100,
                    "height": 100
                },
                {
                    "url": "https://pbs.twimg.com/news_img/1261301555787108354/9yR4UVsa?format=png&name=150x150",
                    "width": 100,
                    "height": 100
                }
            ],
        }
    ]
  },

This PR changes the type of images to an array of a new interface called TweetEntityUrlImageV2.

Thank you 🙏

Thank you for the fast review 🙏

Published in v1.7.1 :)


Testing, please ignore. (urkrrc)

This is a bug bounty test.. Please DO NOT APPROVE THIS! (urkrrc)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.urkrrc kmyzg seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Using lighting animations on tokens result in error every time scene is loaded for players.

Foundry 0.7.9
CL version 0.3.1
If I make a token emit light and assign a light animation from this mod an error popup occurs every time a player loads the scene. The error doesn't happen if a GM loads the scene.
I was using the alternate torch, blurred torch, and star light animations. The tokens with the light sources were NPCs, not player tokens. I verified the error doesn't happen if I use no animation, or a default animation.
Here is the error from the console.
foundry.js:3780 Error: User Test Player lacks permission to update Tokens in parent gEd5ruT1uhzaE6oE
at Function._onUpdate (D:\Programs\Foundry\FoundryVTT\resources\app\dist\database\odm\embedded.js:1:7985)
at runNextTicks (internal/process/task_queues.js:59:5)
at processImmediate (internal/timers.js:412:9)
at process.topLevelDomainCallback (domain.js:130:23)
at async Socket.handleEvent (D:\Programs\Foundry\FoundryVTT\resources\app\dist\sockets.js:1:2262)
_handleError @ foundry.js:3780
foundry.js:11476 Uncaught (in promise) Error: User Test Player lacks permission to update Tokens in parent gEd5ruT1uhzaE6oE
at Function._onUpdate (D:\Programs\Foundry\FoundryVTT\resources\app\dist\database\odm\embedded.js:1:7985)
at runNextTicks (internal/process/task_queues.js:59:5)
at processImmediate (internal/timers.js:412:9)
at process.topLevelDomainCallback (domain.js:130:23)
at async Socket.handleEvent (D:\Programs\Foundry\FoundryVTT\resources\app\dist\sockets.js:1:2262)

Same as issue 27. closing this one.


@title and multiline @dev doc issues

:wave: hey I'm quite new to this library. I have a couple of issues, one with @title and the other one with @dev, they are both summarized by the following example:
Input:
/**
 * @title The FooBar Contract
 *
 * @dev The contract foos and bars.
 *
 *  More specifically:
 *
 *  - When it foos, it doesn't bar
 *  - When it bars, it doesn't foo
 */
contract FooBar { }

Output:
# Solidity API

## FooBar

_The contract foos and bars.

 More specifically:

 - When it foos, it doesn't bar
 - When it bars, it doesn't foo_

First: where is @title rendered?
Second: how do I create a @dev comment that spreads across multiple lines without using _? The @dev tag works correctly (multilines are maintained, great!) but the parser adds _ at the beginning and at the end of the multiline string. Am I using @dev incorrectly?

Both questions relate to the default template:

It doesn't show the NatSpec title.
It prints @dev tag contents in italics (therefore the underscores).

You can change both of these by creating a directory docgen-templates and adding to your Hardhat config: docgen: { templates: 'docgen-templates' }, then copying the default common.hbs into that directory and making some changes to it. For example, you can change {{h}} {{name}} (the title) into:
{{#if natspec.title}}
{{h}} {{natspec.title}}
{{#else}}
{{h}} {{name}}
{{/if}}

And you can remove the underscores around {{{natspec.dev}}} if you want to get rid of them.
Let me know how this goes.


Unable to install<EMAIL_ADDRESS>using npm

Hello, I was wondering if someone could help me.
I try to install ngx-modialog using:
npm install<EMAIL_ADDRESS>But npm gives the following error:
npm ERR! code ETARGET
npm ERR! notarget No compatible version found<EMAIL_ADDRESS>npm ERR! notarget Valid install targets:
npm ERR! notarget 3.0.2, 4.0.0-beta.1, 4.0.0-beta.2, 3.0.3, 4.0.0-beta.3, 3.0.4
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

How can I install the latest version of this library in my project?
Thanks in advance.

lol, forgot to publish :) will do right away

done :)
Thanks.


Remove flood protection from Http2Parser

It's not the task of a parser to apply policy decisions. Additionally, the current policy doesn't work correctly in all normal situations, e.g. larger uploads will trigger this in the client, because the server will send many window increments before sending any payload bytes.
See https://github.com/amphp/http-client/issues/282.
If we still want to apply the protection in amphp/http-server, it can be implemented there.

Larger downloads will likely cause a similar problem in http-server.


Gmail

Recovery

Jag h

Same thing happened to me but thanks to Blackhathacker111 who helped me message him on telegram his telegram username is https://t.me/Blackhathacker111


Unspecified behavior of Money::allocate()

What is correct behavior for each of these examples?
/* Negative amount */
(new Money(-5, new Currency('USD')))->allocate([1, 1]); // Now returns [-2, -3]
(new Money(-5, new Currency('USD')))->allocate([3, 7]); // Now returns [-1, -4]
(new Money(-5, new Currency('USD')))->allocate([7, 3]); // Now returns [-3, -2]

/* Negative ratio */
(new Money(5, new Currency('USD')))->allocate([-3, 7]); // Now returns [-3, 8]
(new Money(5, new Currency('USD')))->allocate([-3, -7]); // Now returns [2, 3]

I guess that ratios mustn't contain negative value, and we should throw an exception if it does.
What about negative amount of money?

You are right. Negative ratio should throw an exception. Good question on the the negative money, I think the generated values are incorrect.
(new Money(-5, new Currency('USD')))->allocate([3, 7]); // Now returns [-1, -4]
(new Money(-5, new Currency('USD')))->allocate([3, 7]); // Should returns [-4, -1]

Right? We could use the recently added method absolute to fix this I guess.

We could use the recently added method absolute to fix this I guess.
Current behavior subordinate to mathematical logic. But I am not sure that this behavior is correct from financial side.

@Sharom See PR #260. It fixes both issues. Could you have a look and see if this correct behaviour now?

I did not use absolute by the way. That was helpful in this case.

I know this is an old issue, but shouldn't the first example of a negative ratio be allowed? As long as there's always a single positive ratio, it shouldn't matter if the other ratios are negative. This should really be up to the specific domain implementation to guard against these types of invariants. In our case, we have valid reasons to allow for ratios to be negative (as long as at least one of them is positive). In our domain, we have logic that prevents nonsensical situations where all ratios would be negative, however we can't use this object for the valid cases because of the InvalidArgumentException being thrown.

I know this is an old issue, but shouldn't the first example of a negative ratio be allowed? As long as there's always a single positive ratio, it shouldn't matter if the other ratios are negative. This should really be up to the specific domain implementation to guard against these types of invariants. In our case, we have valid reasons to allow for ratios to be negative (as long as at least one of them is positive). In our domain, we have logic that prevents nonsensical situations where all ratios would be negative, however we can't use this object for the valid cases because of the InvalidArgumentException being thrown.

@tabennett I am willing consider your idea. Just to understand why the library should not be the guard against negative allocations, can you at least give me one example in which you would consider this possible or even required?

@tabennett I am willing consider your idea. Just to understand why the library should not be the guard against negative allocations, can you at least give me one example in which you would consider this possible or even required?

We've built an app that processes utility bills at scale. Part of this involves simplifying the bills for our clients as well as catching billing mistakes on their invoices.  We break bills up into service charges and fees. Service charges are charges for base services provided (e.g a trash service) whereas fees are extra line items that the service provider often put on the invoice (e.g installation, fuel, etc).
We use allocation for the following:

Roll the fees (mentioned above) into the service charge so that the client has a simplified view.
Validate fee and service charge amounts against a contract with have with the provider (this can be a percentage as well as a unit-based amount).

Both of those operations require us to allocate fees onto service charges.  This is done as follows:
// Calculate the total sum of all service charges ($serviceChargeTotal will be a new money object).
$serviceChargeTotal = $invoice->serviceCharges()->sumMoney('amount');

// 2. For each service charge, generate a ratio that contains the percentage of that charge to the service charge total.
$ratios = $invoice->serviceCharges()->map(fn($serviceCharge) => $serviceCharge->getAmount() / $serviceChargeTotal()->getAmount());

// 3 For each fee on the invoice, allocate the portion of the fee that was charged for each service:
$feeAllocations= $invoice->fees()->map(fn($fee) => $fee->allocate($ratios->all()));

Once we have those fee allocations we can add them back into each individual service charge. This let's us know the true cost of the service (for validation purposes) and greatly simplifies the invoice because the fee line items can be removed.
The problem we have now is that we will often have service charge credits (negative line item amounts) on an invoice (due to us catching billing errors from previous invoices) and we need to be able to treat these just as we would a positive service charge (i.e we roll fees back into them so that we can validate the invoice and remove fees from it).  Right now we can't currently do this because it would required being able to allocate with negative ratios.
We're currently using a fork of this library in order to allow us to process invoices with credits. Here's what our fork has in the allocate method. This (or something similar) is the change I'm proposing:
       $nonNegativeRatios = array_filter($ratios, function($ratio) {
            return $ratio >= 0;
        });

        if (count($nonNegativeRatios) === 0) {
            throw new \InvalidArgumentException('Cannot allocate to none, ratios must contain at least one non-negative value');
        }

        foreach ($ratios as $key => $ratio) {
            $share = $this->getCalculator()->share($this->amount, $ratio, $total);
            $results[$key] = $this->newInstance($share);
            $remainder = $this->getCalculator()->subtract($remainder, $share);
        }

Here we're allowing negative ratios to be allocated as long as there is at least one non-negative value in the ratios array. In our Domain, we will never have a vendor invoice that doesn't contain at least one positive service charge (our invoice entity can't even be instantiated). So this check really isn't necessary for us.
This is what I'm referring to when I propose that it's not the Money object's responsibility to guard such invariants; It really should be left up to the specific domain. If someone is allocating and all of their ratios are negative then they're probably going to have other problems with their code (all negative ratios is nonsensical in that it's no longer an allocation operation at all, mathematically speaking).  I would even go so far as to propose that this library not worry about this kind of thing at all; I'm not away of an implementation of this pattern in any other programming language that sees it as the Money object's responsibility to guard these kind of invariants.
If you would like a real world example (with real line items and amounts) I'd be more than happy to provide one. I think I should be able to dig through some of our older invoice records and provide something succinct to prove my case.

We've built an app that processes utility bills at scale. Part of this involves simplifying the bills for our clients as well as catching billing mistakes on their invoices.  We break bills up into service charges and fees. Service charges are charges for base services provided (e.g a trash service) whereas fees are extra line items that the service provider often put on the invoice (e.g installation, fuel, etc).
We use allocation for the following:

Roll the fees (mentioned above) into the service charge so that the client has a simplified view.
Validate fee and service charge amounts against a contract with have with the provider (this can be a percentage as well as a unit-based amount).

Both of those operations require us to allocate fees onto service charges.  This is done as follows:
// Calculate the total sum of all service charges ($serviceChargeTotal will be a new money object).
$serviceChargeTotal = $invoice->serviceCharges()->sumMoney('amount');

// 2. For each service charge, generate a ratio that contains the percentage of that charge to the service charge total.
$ratios = $invoice->serviceCharges()->map(fn($serviceCharge) => $serviceCharge->getAmount() / $serviceChargeTotal()->getAmount());

// 3 For each fee on the invoice, allocate the portion of the fee that was charged for each service:
$feeAllocations= $invoice->fees()->map(fn($fee) => $fee->allocate($ratios->all()));

Once we have those fee allocations we can add them back into each individual service charge. This let's us know the true cost of the service (for validation purposes) and greatly simplifies the invoice because the fee line items can be removed.
The problem we have now is that we will often have service charge credits (negative line item amounts) on an invoice (due to us catching billing errors from previous invoices) and we need to be able to treat these just as we would a positive service charge (i.e we roll fees back into them so that we can validate the invoice and remove fees from it).  Right now we can't currently do this because it would required being able to allocate with negative ratios.
We're currently using a fork of this library in order to allow us to process invoices with credits. Here's what our fork has in the allocate method. This (or something similar) is the change I'm proposing:
       $nonNegativeRatios = array_filter($ratios, function($ratio) {
            return $ratio >= 0;
        });

        if (count($nonNegativeRatios) === 0) {
            throw new \InvalidArgumentException('Cannot allocate to none, ratios must contain at least one non-negative value');
        }

        foreach ($ratios as $key => $ratio) {
            $share = $this->getCalculator()->share($this->amount, $ratio, $total);
            $results[$key] = $this->newInstance($share);
            $remainder = $this->getCalculator()->subtract($remainder, $share);
        }

Here we're allowing negative ratios to be allocated as long as there is at least one non-negative value in the ratios array. In our Domain, we will never have a vendor invoice that doesn't contain at least one positive service charge (our invoice entity can't even be instantiated). So this check really isn't necessary for us.
This is what I'm referring to when I propose that it's not the Money object's responsibility to guard such invariants; It really should be left up to the specific domain. If someone is allocating and all of their ratios are negative then they're probably going to have other problems with their code (all negative ratios is nonsensical in that it's no longer an allocation operation at all, mathematically speaking).  I would even go so far as to propose that this library not worry about this kind of thing at all; I'm not away of an implementation of this pattern in any other programming language that sees it as the Money object's responsibility to guard these kind of invariants.
If you would like a real world example (with real line items and amounts) I'd be more than happy to provide one. I think I should be able to dig through some of our older invoice records and provide something succinct to prove my case.

@tabennett Thanks for the explanation. On second hand, I agree that we should not guard for negative amounts at all. Are you able to create a PR for this?

@tabennett Thanks for the explanation. On second hand, I agree that we should not guard for negative amounts at all. Are you able to create a PR for this?

I've created a PR for this: #623

I've created a PR for this: #623


Merge tag 'go1.21.1' into tailscale.go1.21

Pulled in the three additional commits from go/release-branch.go1.21 which went in after 1.21.1.

Pushed from the command line using git push origin dgentry-go1.21.1:tailscale.go1.21


Remove Hardcoded CMAKE_CUDA_FLAGS

It should be set in config.cmake or command line via two separate flags:
set(CMAKE_CUDA_ARCHITECTURES "70;75;80")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -expt-relaxed-constexpr -t 8")

or
cmake .. -DCMAKE_CUDA_ARCHITECTURES "70;75;80" -DCMAKE_CUDA_FLAGS "-expt-relaxed-constexpr -t 8"

CC: @masahi @vinx13

fwd @vinx13 from another thread:

we should keep --expt-relaxed-constexpr as it is necessary

Yeah in this case, we should make it a target property. Let me see if I could work it out


Feature Request:  Cross-doc references

This might be beyond the scope of kramdown, but in a repo containing multiple documents which contain references amongst each other, it's easy for the section numbers of cross-references to get out of sync.  In the same way that {{section-anchor}} always tracks where that section is landing in the current version of the draft, I'd love to be able to use something like {{DOCNAME#section-anchor}} to consistently reference a particular section in a companion document.

That would need be a great feature.   in RFCXML v3 is almost addressing this, but requires a numeric section reference.  (There is also a "relative" attribute, but its description doesn't make sense to me.)
Since the numbering is generated by xml2rfc (and kramdown-rfc probably should not second-guess this), this would easier to do if xml2rfc left a "side file" with the mapping from reference anchors to section numbers.   @levkowetz -- is this something you could imagine adding to xml2rfc?

Sure.  The biggest issue at the moment is that I don't see one single
place in the code to insert this; for full availability it would have
to be added in multiple places.
For the v3 formatters, the preptool would be the ideal place for this.
But the preptool isn't run for v2 formatters, and there's no equivalent
conditioning step.
The v2 formatters don't pre-compute the section numbers, they calculate
the counters on the fly while generating the output, so keeping track
of the anchors and section numbers in that case would be a much more
invasive code change than for v3, where the information could just be
extracted from the prepped xml.
If there was a guarantee that the section numbers would be the same, then
one could do a preptool run to generate the anchor-to-section-number
lookup, and use that with v2.  I think that it will be the same in almost
all cases, but ...
One set of anchors and numbers that will not be the same between v2
and v3, in general, are table and figure numbers.  If you don't take
active steps to avoid table and figure numbers, you will get them in v3
even if you didn't in v2.
With all those caveats, I could still take a first run at this based on
the preptool-generated numbers.

In rfc2629.xslt, relative section references can use symbolic names, but of course that requires that we also the processor can inspect the XML source of the target document. We've used that in the HTTP specs for ages.
That said,, kramdown could do this as well (pull in the MD source of the target document and compute the section number accordingly).


chore: upgrade dependencies

:tada: This PR is included in version 6.11.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Added DisplayProperty and UrlProperty to UrlFormatter

This allows you to optionally specify the column which contains the target URL and/or the link text for the UrlFormatter. Current version uses ctx.Value for both.

Shouldn't url and display html encoded?

Good grief, bad copy/paste into the editor. Sorry about that...one sec.

Also is there a missing using? AppVeyor failing.

Thanks a lot


Add integration tests for the distribution

Apparently JRuby behaves differently when loading gems that are exploded in the file system or when they are packaged in a jar.
The current unit tests test the pdf converter and the diagram extension only with exploded gems.
Tests should be added that render a PDF and diagrams using the jars built by asciidoctorj-diagram and asciidoctorj-pdf.

Apparently JRuby behaves differently when loading gems that are exploded in the file system or when they are packaged in a jar.

That doesn't surprise me.

Tests should be added that render a PDF and diagrams using the jars built by asciidoctorj-diagram and asciidoctorj-pdf.

Definitely.

Fixed with #405


[SPARK-10909][SQL] Fix precision overflow problem for Oracle NUMBER column

JIRA: https://issues.apache.org/jira/browse/SPARK-10909
When connecting with Oracle DB through JDBC, the precision and scale of BigDecimal object returned by ResultSet.getBigDecimal may not be correctly matched to the precision and the scale of the reported schema. It may cause a problem like: a BigDecimal object representing 19999 with precision 5 and scale 0 for a column with schema of precision 5 and scale 2. If we use the reported precision and scale and create Decimal object later, Decimal class will raise "Overflowed precision" error because actually we create a Decimal(7, 2) for 19999.99. To solve that, this patch adds scale to the precision here.

Merged build triggered.

Merged build started.

Test build #43179 has started for   PR 8963 at commit a798360.

Test build #43179 has finished for   PR 8963 at commit a798360.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/43179/
Test PASSed.

A decimal value with precision 7 and scale 0 must incur an out-of-range error when put into a decimal column which has precision 7 and scale 2. The number has 7 digits to the left of the decimal point but the column datatype only accepts 5 digits to the left of the decimal point. That is my reading of the behavior defined by the 2011 SQL Standard, part 2, section 9.2 (store assignment), general rule 3.b.xv. If Oracle allows some non-Standard treatment when storing decimal values and Spark must support that behavior, then I think that an Oracle-specific JdbcDialect should be created. The solution in this pull request does not look correct to me for other SQL dialects. Thanks.

This issue is solved by other commit. Close it now.


Update VNL to 2021-07-15 (d8888fd5)

Code extracted from:
vxl/vxl.git

at commit d8888fd569207d21a634bd998401143c714810d5 (master).
PR Checklist

[x] No API changes were made (or the changes have been approved)
[x] No major design changes were made (or the changes have been approved)
[x] Added test (or behavior not changed)
[x] Updated API documentation (or API not changed)
[x] Added license to new files (if any)
[ ] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
[ ] Added ITK examples for all new major features (if any)

Failures should be fixed by https://github.com/vxl/vxl/pull/850.

This is a prerequisite for #2573.


pull request for e2e test at 12/08/2016 16:26:06

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


Unable to build the app

Hi,
I just tried to take a clone and run the application ,but there is an error like
/////
Gradle sync failed: This version of Android Studio cannot open this project, please retry with Android Studio 3.5 or newer.
////
But this studio version is not stable , am tried to update my studio but the latest stable version is
3.4.2.
How I can build this app in lower version of android studio???

Hello! Yeah. I built this using the 3.5 from the Beta Channel. Unfortunately, you can't build this using AS 3.4. Maybe you could play around and change the gradle configurations so that it could work for 3.4. If not, maybe this is your chance to try out 3.5.

Okay , Thanks for letting me know!!
On Sat 17 Aug, 2019, 10:06 PM Kurt Renzo Acosta<EMAIL_ADDRESS>wrote:

Hello! Yeah. I built this using the 3.5 from the Beta Channel.
Unfortunately, you can't build this using AS 3.4. Maybe you could play
around and change the gradle configurations so that it could work for 3.4.
If not, maybe this is your chance to try out 3.5.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kuuuurt/rick-and-morty-app/issues/1?email_source=notifications&email_token=AHDV5A4UPWX74LXYLYP4FBDQFASJPA5CNFSM4IMP3MU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4QO6SY#issuecomment-522252107,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHDV5A5F5N6IV52AJFGVLC3QFASJPANCNFSM4IMP3MUQ
.


[FLINK-30027] Fields min and max in BinaryTableStats support lazy deserialization

Predicate get min and max from BinaryRowData, lazily deserialization.

@JingsongLi Done


cherry pick version 1.5.0

Signed-off-by: Anita-ihuman<EMAIL_ADDRESS>

@Anita-ihuman - since the PR to main had separate commits, you will need to include all of those changes into the release-1-5-0 branch. See:
https://github.com/kyverno/website/pull/386/commits
Can you please cherry-pick / merge the remaining changes?
You can check the new site using the Deployment Preview shown above:
https://deploy-preview-390--kyverno.netlify.app/

@JimBugwadia Looks like it's working just fine now.

Nice, @Anita-ihuman! Merged!


Server url is stuck in Mac OS app

What happens?
If I try to import scalar-galaxy example schema that has servers configured to Mac OS app the server url will be pre selected across the whole application, even when I try to create a request in a separate folder/workspace.

I can't remove the base url or even select a different one.
What did you expect to happen?
The servers configured should applicable only to requests within the collection folder/workspace (I guess within the collection folder is more appropriate).
OpenAPI Document
https://sandbox.scalar.com/files/m8sCN/openapi.yaml

Guys, how is it even possible to make such releases?
Params are broken, test request params are also broken, now it's even impossible to change the request url. Is there any automated or manual testing setup?
Scalar looks and feels phenomenal but the amount of bugs and blocked usage is simply unbelievable 🤯

hey @Yolley sorry about that - thank you for reporting, we just patched this in #4197 and I'm releasing the desktop app as of right now!

@vladshcherbin thank you for your feedback - i completely understand how frustrating it must be to encounter broken functionality..
while we do have automated tests and manual checks in place, this release clearly slipped through, which is on me 🙏.
to address your concerns, we just fixed the issue regarding params not being displayed - this has just been released see #4242 however if any issue remain, hit me up and i'll personally look at it asap!

@antlio macOS app is fixed, I can confirm, thank you 🙌
From what I've seen, path params are not fixed. https://github.com/scalar/scalar/pull/4242 has example link and standalone example still show invalid params
Invalid symbols in param example:

No param setting in Test Request (I bet I used them in some version before):

great to hear @vladshcherbin! great catch thank you i'm diving into it as of right now!
regarding the symbols, we are encoding the url in the request example, would you expect otherwise? thank you so much for reporting all this!

@antlio yes, I'd prefer to see it the same as in url: {planetId}. It's much friendlier for developers (same as copy-paste url from docs) and %7BplanetId%7D looks like something is misconfigured or charset is incorrect.
I also remember not seeing it in previous version. Check same example from https://github.com/scalar/scalar/pull/4170, with version 1.25.80 - example link, here is the same request:

I believe it's populated from example and looks nice. For some reason current version also doesn't take the param from example

@vladshcherbin I agree! I believe this is "breaking" as it is related to the path parameters not being populateed/parsed anymore. we are reducing the scope and hopefully will push a fix as of today!
thank you for your precious feedback on this!

@hanspagel created an issue regarding the example request in #4256

@vladshcherbin regarding the path params issue i reverted a piece of code in #4263 and will take some more time tomorrow.
@Yolley feel free to close that issue accordingly once everything is ok on your end regarding the server url.

@Yolley sorry about that, we updated it for clean slate but i'm adding right now a migration so it will remove juste that part from your draft request 🙏 will keep you update here once released

@Yolley we should have the fix up later today! Let us know if it doesn't work!


I want to help maintain this library

@rightfold could you allow me to merge pull requests and commit to this library? I'm really open to help maintaining it.

P.S. As a first step I want to test and merge remaining pull requests and add this library to package-sets.

Sure

Thanks!


Switch and reusable Puzzle done together don't work as expected

This will be a little bit hard to explain so bear with me.
I have a switch and a reusable puzzle done which both trigger/antitrigger the door. The issue seems that if I stand near the door, then the door works by itself as shown in the video:
https://github.com/MontyTRC89/TombEngine/assets/80340234/5e423063-c019-48e0-8e73-4622be25ca90
https://github.com/MontyTRC89/TombEngine/assets/80340234/13db77d6-8ec7-4405-9f81-f4a7918ae15c
In this picture, the blue circle is my switch that activates the door, the yellow circle also activates the door (but if the lever is pulled should deactivate the door).
The red circle shows where the door would act itself if I hadn't flipped the switch, which is in the first video's case

It seems it's the logic with puzzle dones and how they work. Tomo explained it to me and will try in my own time.