Proposal #13 - Simplify value sets and tables in schema configuration

This PR contains the proposal to simplify the use of value sets and tables in schema configuration.  This proposal is fairly long due to all the background information to understand all the current variations of using value sets and tables.
To review, it is better to read the proposal in view mode by clicking this link: https://github.com/CDCgov/prime-reportstream/blob/01c2604b3c5346b1c96cb90c725a562ca1ebec18/prime-router/docs/proposals/0013-simplify-tables-and-value-sets.md

@carlosfelix2 - in the section "use tables for valuesets," does your proposal accommodate being able to use else  statements?  Such as if the result doesn't match any of these values, display a default value?

@carlosfelix2 - in the section "use tables for valuesets," does your proposal accommodate being able to use else statements? Such as if the result doesn't match any of these values, display a default value?

That scenario will be handled by the default value already present in the schema.

@jimduff-usds - just making sure this was captured in your comment re: NPI Lookup Example (use case from Sender Automation/Tools teams).  A default NPI will be unique to a facility for a given sender.  Example - GUC sender will have a default NPI for each of its 3 facilities if the NPI is blank.  We will know which facility based on the facilty_name field

@carlosfelix2 @clediggins-usds @whytheplatypus @jimduff-usds I'm all for this proposal. The only thing that concerns me is cases where we could end up needing to send non-standard data (or alt values) to a receiver. In the simplified model in the proposal, there are multiple different ways UNK could be converted to Unknown, but there's not discussion in the proposal for how that maps for a specific receiver, so it doesn't seem possible to be consistent about which alt value I will send to a receiver without having some additional information in the table to tie an alt value to sender and/or a receiver.
For example, we have a non-profit in WA state that wants to receive deidentified data from K-12 schools in WA so they can do trends and analysis on best practices in getting schools re-opened, and WA's PHD has given us approval to work with them. We are going to be sending them a CSV and we many need to map valuesets to things they can understand (i.e. not LOINC or SNOMED codes). Right now I couldn't guarantee them if I select a value for UNK that they'll get the same value every time.
So how do we achieve consistent mapping in all directions? It feels to me like part of every call to a mapper we need to pass who the intended recipient is. We may also want to pass in who the sender is and use that as well, though I could see an argument being made to make matching on many different values on ingest makes sense. It would give our system more flexibility.
Also, we should consider what the CRUD cycle will look like. Do we tombstone older values that we aren't using anymore? Is there an audit trail for changes so we can chase down potential bugs. For example, imagine someone tries to put in all the possible versions of "no" they can think of, and it causes problems for senders and receivers. Will we be able to see who added those values?
I'm fine moving forward with the case to get the sender tools team moving on their work because it is high priority, but I would like to see if we can give some thought to what I've asked above.

@carlosfelix2 I like this proposal!
FYI @whytheplatypus @clediggins-usds @mauricereeves
This comment is on the related topic of how to implement this in a database, and focusses on the use cases we discussed to support the Sender Tools team, with the suggestion that we create a database-based lookup to support their immediate needs, then subsequently use it to support Valuesets, and maybe Tables.
Here goes:
Database representation of Valuesets, Tables, etc
Any valueset, table, default lookup, or weird ways in which senders/receivers represent values, can all be represented with a generic table:
create table lookup (
 table_name string,                 -- eg, hl70126, or zip-code-data
 internal_value string,             -- like the old $code
 external_value string,             -- like the old $display, $alt, etc
 external_value_style string,       -- eg, column_name in a table
);

(And the actual table will have other important fields, like a primary key, timestamp, version number, is_deleted, etc, etc, which I'm ignoring for simplicity)
New mapper
Then this new mapper takes an external_value in an incoming CSV column, and converts it to internal_value:
convertToInternal(table_name, external_value_style, column_with_the_input_data)
Examples
ValueSet lookup example:
You might have data like this:
(
 "hl70136",
 "Y",
 "Si",
 "hl70136 en espanol",
),
(
 "hl70136",
 "N",
 "No",
 "hl70136 en espanol",
),

Now suppose a sender sends us Si/No in this field:
- patient_died_en_espanol
  type: TEXT

Then we can calculate this internal field based on it:
- name: patient_died
  mapper: convertToInternal("hl70136", "hl70136 en espagnol", "patient_died_en_espanol")

Future: require mappers always run
And if we require that mappers always run (in the future Gage Theory proposal)
Then we don't need 'patient_died_en_espanol" and this simplifies to:
- name: patient_died
  mapper: convertToInternal("hl70136", "hl70136 en espagnol", "patient_died")

Or even (if Gage allows us a tiny bit of hidden magic):
- name: patient_died
  mapper: convertToInternal("hl70136", "hl70136 en espagnol")

NPI Lookup Example (use case from Sender Automation/Tools teams)
I'm proposing we do this use case first, to support those teams. Here's an example of how we'd use this table to support their default NPI use case
("sender_id to NPI Lookup",
 "1245319599",
 "Reddy Family Clinic"
 "Sender ID",
)

Use the value found in sender_id to lookup the NPI to use for that clinic
- name: ordering_provider_id
  mapper: convertToInternal("sender_id to NPI Lookup", "Sender ID" , "sender_id")

Table lookups
Tables are fundamentally different, as they might not have any unique column we can use as the internal_value, and they are used in different ways, as Carlos has noted.
Let's concentrate on the Sender Tools use cases first.

Great ideas.  I do want to keep the schema simple, so I prefer not to have another mapper when we can use the Table lookup definition to achieve the same.  I want to get rid of mappers completely for tables.
Here is my train of thought for steps to help the senders automation team:

Proposal on how to move the tables to the database.  The reason this is first is that it should not take long, plus it takes time to review and approve.  Also, having the table in the database is not a blocker.  Once we implement this, updating the tables will be much quicker if we want to, but a process needs to be in place.  I do want to make the database structure generic, so we do not have to change any DB schema when a new table is added.
Implement step 1 of my proposal - remove the TABLE type at least.  This is so we can do step 2.  This should be quick to implement.
Implement step 2 of my proposal - define table indices as part of the field lookup definition.  Further clean up to not have to use the same table column names for different tables.  This should be quick to implement.
Implement a new parameter to define if the raw field data (coming from the provided data) will be overwritten or not by a mapper or table lookup.  This will serve to keep an NPI value if it was provided.
Implement tables in database.  This will require tools and a process to manage the tables.  Note we will need to detect changes in the DB for tables.  This will allow for quick changes to the tables.

This should solve the case of NPI.

@jimduff-usds - just making sure this was captured in your comment re: NPI Lookup Example (use case from Sender Automation/Tools teams). A default NPI will be unique to a facility for a given sender. Example - GUC sender will have a default NPI for each of its 3 facilities if the NPI is blank. We will know which facility based on the facilty_name field

@MikeC-A6 Thank-you - I had forgotten about this complexity!   I've added a proposed solution to this (I added a new section "More Complex NPI Lookup" above).   Not ideal, but would be relatively fast to implement.

@carlosfelix2 @clediggins-usds @whytheplatypus @jimduff-usds I'm all for this proposal. The only thing that concerns me is cases where we could end up needing to send non-standard data (or alt values) to a receiver. In the simplified model in the proposal, there are multiple different ways UNK could be converted to Unknown, but there's not discussion in the proposal for how that maps for a specific receiver, so it doesn't seem possible to be consistent about which alt value I will send to a receiver without having some additional information in the table to tie an alt value to sender and/or a receiver.
For example, we have a non-profit in WA state that wants to receive deidentified data from K-12 schools in WA so they can do trends and analysis on best practices in getting schools re-opened, and WA's PHD has given us approval to work with them. We are going to be sending them a CSV and we many need to map valuesets to things they can understand (i.e. not LOINC or SNOMED codes). Right now I couldn't guarantee them if I select a value for UNK that they'll get the same value every time.
So how do we achieve consistent mapping in all directions? It feels to me like part of every call to a mapper we need to pass who the intended recipient is. We may also want to pass in who the sender is and use that as well, though I could see an argument being made to make matching on many different values on ingest makes sense. It would give our system more flexibility.
Also, we should consider what the CRUD cycle will look like. Do we tombstone older values that we aren't using anymore? Is there an audit trail for changes so we can chase down potential bugs. For example, imagine someone tries to put in all the possible versions of "no" they can think of, and it causes problems for senders and receivers. Will we be able to see who added those values?
I'm fine moving forward with the case to get the sender tools team moving on their work because it is high priority, but I would like to see if we can give some thought to what I've asked above.

Good thoughts.  I don't think there is any rush on getting of alt values here, so that could be something that stays until we decide a better way.  I like using the sender name, but I wonder if that makes things more complicated.  Need to think about this.  I say hold on replacing alt values for now.

What to do with Mappers
@carlosfelix2 , I think @whytheplatypus is planning to propose, rather than get-rid-of-mappers, is that we make-everything-a-mapper - that is, all data transforms use mappers, including table lookups.   He does plan to propose a better syntax and some other enhancements to mappers too.
His philosophy is "no magic", that is, make it as easy as possible to see what's going on, and I agree with that.
It also lets us move much more quickly with the above plan to support Sender Tools - we can just use the existing mapper() structure, knowing that we plan to migrate it to our new Gage Theory plan in the future.
Receiver-specific values
@mauricereeves, regarding your question about how to handle sending data to a specific receiver - the structure I proposed above would handle that this way:
Using the database table for outgoing translations to receiver-specific weirdness:
("hl70136",   -- The Y,N,UNK valueset
"UNK",
"Mysterious and Enigmatic",
"Deidentified for WA"
)
In the outgoing receiver schema definition, use the value found in sender_id to lookup the NPI to use for that clinic

name: patient_died
mapper: convertToExternal("hl70136", "Deidentified for WA" , "patient_died")

Note that I'm assuming mappers always run, to make this work.  (Currently mappers only run if a field is empty)

This simplification will be combined on a future proposal that covers more of the RS features.


Integrate the Rich Text Editor into Mailman.

Mailman needs to be able to pop open the RTE as needed. When users are done in the RTE, they can submit their rich text back to the main application.

It can now open the RTE from an option in the body Card.
Still need to figure out a way to replace the default body card with either a representation of the email, or something to let the user know they should send a test email.

Missed the second milestone.

Instead of having an integrated RTE, users will be able to send from a Google Doc. See #104 .


Multiple inverters

How is it possible to handle an installation with more than one inverter ?
The P_PV should be the sum of all inverters ?

@ronald5555 sorry for the late reply.
It's my understanding all the Site values are already an aggregate of all inverters at the location, so P_PV should be the combined output of multiple inverters already.


Popup not responding as expected to open/close

Describe the bug
When I open/close a popup, it does not change even though the value on the widget changes as expected.
To Reproduce
Replace the minimal example with this code:
use orbtk::prelude::*;

fn main() {
    Application::new()
        .window(|ctx| {
            Window::new()
                .title("OrbTk - minimal example")
                .position((100.0, 100.0))
                .size(200.0, 200.0)
                .child(MainView::new().build(ctx))
                .build(ctx)
        })
        .run();
}

enum Message {
    TogglePopup,
}

static ID_POPUP: &str = "id_popup";

widget!(MainView<MainViewState> {});

impl Template for MainView {
    fn template(self, id: Entity, ctx: &mut BuildContext) -> Self {
        let menu_node = Popup::new()
            .id(ID_POPUP)
            .margin(Thickness {
                left: 0.,
                top: 50.,
                right: 0.,
                bottom: 0.,
            })
            .width(200.)
            .target(id)
            .open(true)
            .child(
                TextBlock::new()
                    .text("Popup")
                    .build(ctx),
            ).build(ctx);

        self.child(
            Button::new()
                .style("button")
                .on_click(move |ctx, _| {
                    ctx.send_message(Message::TogglePopup, id);
                    true
                })
                .text("Toggle")
                .build(ctx),
        ).child(menu_node)
    }
}

#[derive(Debug, Default, AsAny)]
struct MainViewState {
    popup: Entity,
}

impl State for MainViewState {
    fn init(&mut self, _: &mut Registry, ctx: &mut Context) {
        self.popup = ctx.child(ID_POPUP).entity();
    }

    fn messages(
        &mut self,
        mut messages: MessageReader,
        _registry: &mut Registry,
        ctx: &mut Context,
    ) {
        for message in messages.read::<Message>() {
            match message {
                Message::TogglePopup => {
                    let mut popup_widget = ctx.get_widget(self.popup);

                    let current_open = *popup_widget.get::<bool>("open");
                    println!("Current open: {}", current_open);

                    popup_widget.set::<bool>("open", !current_open);
                }
            };
        }
    }
}

cargo run --example minimal
Run the program and press the toggle button. Look in the console to see that the value changes, and look in the UI to see that the popup does not close.
Expected behavior
The popup should hide/show itself when you press the button.
Desktop:

OS: Windows 10
Version 2004

Additional context
This seems to work fine when not using the message system. So if you instead do this in the update loop like you would do it before the message system it works. Let me know if you would like example code for this.
I'm probably just doing something wrong or using something in the wrong way, but it seems weird.

Thank you for the report.
I think I know what the problem is. update is called before messages and the popup logic is handled in the update. There is a ongoing extended Popup https://github.com/redox-os/orbtk/pull/304. I will check that it will work also with messages.

That makes sense, that's probably the issue.
I saw that the tab widget or whatever it's called can react to messages sent directly to it.

Is this the functionality that will solve this?
Is this functionality of being able to react to received messages intended to be added to all widgets?

Thanks! :)

Is this the functionality that will solve this?

Yes it should sole the problem and make a cleaner API.

Is this functionality of being able to react to received messages intended to be added to all widgets?

That’s my plan. But I have to check if it is possible on all widgets. I think the message concept is a better pattern as the old one.

I haven't used it much yet, but it seems like it's going to reduce the amount of code in my application and simplify it. Looks very promising, so I hope it works out!
It's good to know this is the plan, then I know how to move forward with my application. :)


SSAO Regression, also related to a SSIL Bug

Godot version
v4.0.dev.custom_build [b76b45b42]
System information
Windows 10, Vulkan, Nvidia Quadro K2000 461.92
Issue description
some time between v4.0.dev.custom_build [0537e3d61] and v4.0.dev.custom_build [b76b45b42] SSAO Broke (25th to 29th July).
Expected in 0537e3d61:

Broken in b76b45b42:

Steps to reproduce

Create a Simple Scene With a Pair of Objects
Turn on SSAO (Very Low Has the most visible issue, but others do too)

Minimal reproduction project
SSAO Reg.zip

Ive noticed this too, it happens sporadically I find that about half the time restarting the editor makes it go away.
I think I have a fix in my SSIL PR https://github.com/godotengine/godot/pull/51206

I have a feeling it is caused by https://github.com/godotengine/godot/commit/cf3f404d312146cf46ae27fd8d220852eac27eb9 which was merged on July 26. If that's the case then the "fix" I did in #51206 is totally unrelated :P

This is Still Present in v4.0.dev.custom_build [172223e9b] and Similar effect takes Place not only in SSAO but in SSIL too, and is especially clear when using Half Resolution on Lower Quality.

Please test with #72838

it had no effects on this issue, though that is because in RC1 it seems to have been resolved already (aside from the half res issue and the depth inaccurate occlusions due to depth, both of which were issues for a long time and seem separate to this)

Closing then.


Create a webpage showcasing the template

🚀 Feature Request
Additional context

Documentation needs to be updated as well

Hi, Joses9988, I try to see your file is that the date you put it on May 1st is my birthday. if you do not mind, I'd like to open it and to see what you are start with. Just for fun. and thank you post here.

hi @jian-product I can not fully understand what you intend to do


Deployment Errors with SharePoint 2016

Error occured in deployment step 'Activate Features': Cannot complete this action ...
Please try again.
I tried this twice, obviously adapting the steps suitably to Visual Studio 2017 and SharePoint 2016.
Using DEBUG mode, I had an error on line 1647 of the ScriptResource:
if (Sys.__registeredTypes[name]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, name));
I have no idea how to continue and this is the first Walkthrough I am attempting on a new SharePoint 2017 installation on Windows Server 2012 R2. My trial license expires in 135 days. Any help appreciated as I need to get onto more complicated examples.

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

ID: 7178d59e-622a-fcd3-0d76-229a8b42dfc0
Version Independent ID: 691c82da-8ed3-6dc0-b37e-b5e4c219f2c2
Content: Walkthrough: Create a Site Column, Content Type, and List for SharePoint - Visual Studio
Content Source: docs/sharepoint/walkthrough-create-a-site-column-content-type-and-list-for-sharepoint.md
Product: visual-studio-dev15
GitHub Login: @TerryGLee
Microsoft Alias: tglee

@aendie Thanks for your feedback. We are aware that the documentation is outdated; it's in our backlog queue at the moment. However, for immediate assistance, please consider using the StackOverflow site (and note that the link I've included goes directly to a collection of questions and answers that are tagged with "SharePoint 2016").

The document has been updated


Removing reference to dep and replacing with go modules.

Description
Fixes Github issue #2377 to reflect our switch from dep to go modules.
Type of change
Internal change.
Linked tickets and other PRs
Fixes #2377

The jenkins failures is https://github.com/gravitational/ops/issues/159.  These will be addressed by moving CI to drone, which doesn't have the same quirk.

The jenkins failures is https://github.com/gravitational/ops/issues/159.  These will be addressed by moving CI to drone, which doesn't have the same quirk.

@knisbet: Could you override the CI req and merge this pretty please?  I could probably hack it to work on the jenkins side, but it isn't a effective use of time.

@knisbet: Could you override the CI req and merge this pretty please?  I could probably hack it to work on the jenkins side, but it isn't a effective use of time.


About UICollectionView dequeueReusableCellWithReuseIdentifier

When MyCollectionViewCell has two different cell reuseIdentifier, IGListKit unable to auto register  two different cell reuseIdentifier cell class.
- (__kindof UICollectionViewCell *)dequeueReusableCellOfClass:(Class)cellClass
                                 withReuseIdentifier:(NSString *)reuseIdentifier
                                forSectionController:(IGListSectionController *)sectionController
                                             atIndex:(NSInteger)index {
   ......

     // One cell class only cloud be registered once
    if (![self.registeredCellClasses containsObject:cellClass]) {
        [self.registeredCellClasses addObject:cellClass];
        [collectionView registerClass:cellClass forCellWithReuseIdentifier:identifier];
    }

    return [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
}

How to solve this problem? (sorry for my bad english.)

@devcxm if you use the latest version of IGListKit, you’ll notice that there is a new dequeue method with a reuseIdentifier parameter that will allow you to do just that!
Does that answer your question?
Sent with GitHawk

I know that method, but the implementation of that method is the issues codes.
// One cell class only cloud be registered once
    if (![self.registeredCellClasses containsObject:cellClass]) {
        [self.registeredCellClasses addObject:cellClass];
        [collectionView registerClass:cellClass forCellWithReuseIdentifier:identifier];
    }

I think I know the problem here.
in that method, you set identifier with combination of reuseIdentifier and cellClass
    NSString *identifier = IGListReusableViewIdentifier(cellClass, nil, nil, reuseIdentifier);

but, registeredCellClasses store cellClass as unique key, not considering reuseIdentifier.
    if (![self.registeredCellClasses containsObject:cellClass]) {

For example, I want to register a class (let say ClassX) with two different reuse identifiers (id1 and id2). Class ClassX is registered successfully with first identifier (id1ClassX). But for second identifier (id2ClassX), it will be crash since registeredCellClasses already contains ClassX and try to reuse with second identifier, but none exist for that identifier.

I know the cause of the problem, and I fork to https://gitee.com/cxmapp/IGListKit and fix the problem.

Closing this since the issue has been fixed.


Name changes causing update failures

If a player changes their name and somebody else claims their old name, highscore entries with this name will not be removed
Example:
Alice is named "foo" with 500 points on Aatrox, enough to be on the highscore list
Bob is named "bar" with 100 points on Aatrox, not enough to be on the highscore list
Alice changes her name to "baz"
Bob changes his name to "foo"
"foo" is still listed on the highscore list for Aatrox, even though Bob does not have enough mastery points to be on the list

Turns out this issue still isn't fixed. The current approach only warns if a player has lost points, not if a different player (with the same name but a different ID) has taken their spot. This issue will likely just end up getting fixed when I add automatic score updating soon™


Set up Cypress

User Story
As a developer
I want to set up Cypress for automated testing in our project
So that I can ensure the reliability and functionality of our product
Definition of Done

Cypress is installed with any necessary config
Simple test case exists

Notes:
Refer to this documentation on how to install Cypress: https://docs.cypress.io/guides/getting-started/installing-cypress

Initial set up went pretty smoothly.  Running in headless we passed all cypress tests, but in non headless we pass the test and also get a error labeled as minified.  We went to reactjs.org for a more detailed output about the error.  https://twatnoipm.slack.com/files/U06SMK9U9DM/F0737LRK9CP/screenshot_2024-05-15_at_4.38.05___pm.png?origin_team=T8MG2HMPD&origin_channel=C8LUAUA3Ahttps://twatnoipm.slack.com/files/U06SMK9U9DM/F073N4AC2KD/screenshot_2024-05-15_at_4.20.51___pm.png?origin_team=T8MG2HMPD&origin_channel=C8LUAUA3Ahttps://twatnoipm.slack.com/files/U06SMK9U9DM/F073FJQGK5L/screenshot_2024-05-15_at_4.39.07___pm.png?origin_team=T8MG2HMPD&origin_channel=C8LUAUA3A


[cli] rancher export options

Rancher Version: 1.1.2
Docker Version: 1.12
OS and where are the hosts located? (cloud, bare metal, etc): Amazon Linux,  AWS
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB) Single node rancher + external DB
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:
rancher export ${STACK}
Results:
A tar file with two files : docker-compose.yml & rancher-compose.yml
Expected:
An extra option to display one or the other :
rancher export --docker ${STACK} # docker-compose.yml in stdout
rancher export --rancher ${STACK} # rancher-compose.yml in stdout
It's convenient to be able to extract the docker-compose.yml, and even better to stdout to pipe it to other process to adjust fields like image, etc.

cherry on the cake if I can pass a format option as well to get a json file
rancher export  --format json --rancher ${STACK} # rancher-compose.json in stdout
That simplifies update of values using jq, etc.

for docker-compose: rancher export ${STACK} | tar xvO --exclude rancher-compose.yml | yaml2json | jq .
for rancher-compose: rancher export ${STACK} | tar xvO --exclude docker-compose.yml | yaml2json | jq .
get yaml2json: https://github.com/bronze1man/yaml2json

yep that's pretty much what I ended up doing (minus the --exclude rancher-compose.yml)
which is pretty nice, thanks

TBH, I think I'd prefer to leave the command as is because you can just easily pipe to tar to get what you want as @bdentino showed.


bug

int nextSegment = (int)col.at(next.yjump, next.xjump);
int nextTotalPixels = pixelsInArea[nextSegment-1];
here, when the value nextSegment is 24, the size of pixelsInArea is 14, so erros occured, vector subscript out of range.

We encountered the same error


IPv6

echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p

add
/etc/openvpn/server.conf
#IPv6 config
server-ipv6 fd6c:62d9:eb8c::/112
proto udp6
tun-ipv6
push tun-ipv6
push "route-ipv6 2000::/3"
push "redirect-gateway ipv6"

systemctl restart<EMAIL_ADDRESS>ADD IP6TABLES
rm /etc/sysconfig/ip6tables
edit
nano /etc/sysconfig/ip6tables
ADD
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:XL-Firewall-1-INPUT - [0:0]
-A INPUT -j XL-Firewall-1-INPUT
-A FORWARD -j XL-Firewall-1-INPUT
-A XL-Firewall-1-INPUT -i lo -j ACCEPT
-A XL-Firewall-1-INPUT -p icmpv6 -j ACCEPT
-A XL-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A XL-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
-A XL-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A XL-Firewall-1-INPUT -i tun+ -j ACCEPT
-A XL-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s fd6c:62d9:eb8c::/112 -j MASQUERADE
COMMIT

systemctl restart ip6tables

Thanks a lot :)
We'll probably get murdered by implementing NATed IPv6 but that's better than nothing I guess

See #238


Globally installed tools are not added to the allow-plugins option in composer.json

Describe the bug
Since version 2.2, any Composer plugin that needs to run must be listed in the allow-plugins config of the composer.json. I added the symfony/flex plugin to such list in the composer.json of my project, but it doesn't work because the tool is installed globally. To solve the problem, the composer global config --no-plugins allow-plugins.symfony/flex true command should be ran as part of the setup step.
Version

[ ] I have checked releases, and the bug exists in the latest patch version of v1 or v2.
[x] v2
[ ] v1

Runners

[x] GitHub Hosted
[ ] Self Hosted

Operating systems
ubuntu-latest
PHP versions
8.1
To Reproduce
jobs:
  name: php
  on: [push]
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: shivammathur/setup-php@v2
         with:
           php-version: 8.1
           tools: flex

Expected behavior
The symfony/flex plugin is installed and allowed to run thanks to it being added to allow-plugins in composer.json. There should be no warning about the plugin being blocked.
Screenshots/Logs
symfony/flex (installed globally) contains a Composer plugin which is blocked by your allow-plugins config. You may add it to the list if you consider it safe. See
https://getcomposer.org/allow-plugins
You can run "composer global config --no-plugins allow-plugins.symfony/flex [true|false]" to enable it (true) or keep it disabled and suppress this warning (false)

Additional context
None
Are you willing to submit a PR?
I'm not familiar with how this action works under the hood, but I can try

Fixed in https://github.com/shivammathur/setup-php/commit/a863ab6d3dbef5503066eed8194745717e35cdd3

Just asking, is there any ETA for the release?

Done 2.20.0

Btw maybe flex as tool should be deprecated? I'm not sure what the use case is, but if it's about perf it does not bring any value anymore with composer 2 at least

Flex is not only about performance improvements, it's about a lot of other features like forcing the installation of the same version for all symfony/*  packages and managing the so-called Symfony recipes 😄

@Seldaek I will keep flex for the above reason.
Also, While plugin authentication is great for security in local environments, in CI the default in my opinion would be to allow the plugins.
Can we have an environment variable like COMPOSER_ALLOW_ALL_PLUGINS for this in non-tty environments?

Also, While plugin authentication is great for security in local environments, in CI the default in my opinion would be to allow the plugins.
Can we have an environment variable like COMPOSER_ALLOW_ALL_PLUGINS for this in non-tty environments?

You can set "composer global config allow-plugins true" to allow all global plug-ins that'd simplify/speed up your fix. That only applies to the globally installed ones tho.
"composer config -g allow-plugins true" should allow all plug-ins to run always, but IMO this isn't a decision you should make for users. There are security implications in CI as well, you may have sensitive tokens in env etc.

Hi @shivammathur, I still have the problem that the allow-plugins option is not properly configured when installing the composer-unused tool in version 0.7.x. A verbose output can be seen here:
https://github.com/eliashaeussler/cache-warmup/runs/7429040918?check_suite_focus=true#step:3:159
It says:

Error: icanhazstring/composer-unused contains a Composer plugin which is blocked by your allow-plugins config. You may add it to the list if you consider it safe.

@eliashaeussler
Fixed in https://github.com/shivammathur/setup-php/commit/66f24470dcf2decb70ec50b2c0e25cbdb06997ab, it is in develop right now. I will create a patch release later this week.

@eliashaeussler Fixed in 66f2447, it is in develop right now. I will create a patch release later this week.

@shivammathur Thanks for the quick fix! Works like a charm :tada:

@eliashaeussler Fixed in 66f2447, it is in develop right now. I will create a patch release later this week.

Hi @shivammathur, can you already say when there will be a new release?

@eliashaeussler Sorry for the delay, released 2.21.1 with the fix.

@shivammathur Thanks!


Wallet doesn't resize properly in new window

Description
Small layout bug: when opening wallet in its own window it doesn’t resize horizontally correctly

Closed in #347


nv2 sign & validate shouldn't require cn = registry name

We're recently decoupled the CN from the registry name as part of the signing and validation.
However, docker nv2 notary sign attempts to match CN with the registry name:
openssl req \
  -x509 \
  -sha256 \
  -nodes \
  -newkey rsa:2048 \
  -days 365 \
  -subj "/CN=registry.wabbit-networks.io/O=wabbit-networks inc/C=US/ST=Washington/L=Seattle" \
  -addext "subjectAltName=DNS:registry.wabbit-networks.io" \
  -keyout ./wabbit-networks.key \
  -out ./wabbit-networks.crt

Followd by:
docker notary sign \
  --key ./wabbit-networks.key \
  --cert ./wabbit-networks.crt \
  localhost:5000/net-monitor:v1

Fails with:
Generating Docker mainfest: localhost:5000/net-monitor:v1
Signing sha256:0da7b8db631b5faeff09f6217de7ac47bdcd53e0e7a15cec559a8140ac164f5c
2021/04/23 17:44:13 x509: certificate is valid for registry.wabbit-networks.io, not localhost

Expected
Signing to not validate against the CN

docker notary sign and nv2 sign add refereneces in the signature claims automatically. Since the signing certificate does not match the domain name, it fails the signing and verification.
Since the reference indicates the declared origin of the artifact, I won't change the notary library for the verification logic. Instead, I will modify the UX for docker-nv2 and nv2.

With #57, the behavior changes to
$ docker notary sign -k wabbit-networks.key -c wabbit-networks.crt localhost:5000/bash:latest
Generating Docker mainfest: localhost:5000/bash:latest
Signing sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
Signature saved to /home/shizh/.docker/nv2/sha256/d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2/sha256/48aa46ef35d1c545f55c2e76dc78047eaaff6fd7ece951b2f0609bf1a84502ae.jwt
$ docker push localhost:5000/bash:latest
The push refers to repository [localhost:5000/bash]
5318c66bd933: Preparing
93f1f7108e53: Preparing
32f366d666a5: Preparing
5318c66bd933: Pushed
32f366d666a5: Pushed
93f1f7108e53: Pushed
latest: digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2 size: 946
Pushing signature
signature manifest digest: sha256:b08630b80de5c53d5c5a7a7a6c91a5b608cf0dba0e22757213a573bd73a7e8f8 size: 470
$ docker pull localhost:5000/bash:latest
latest digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2 size: 946
Looking up for signatures
Found 1 signatures
Found valid signature: sha256:48aa46ef35d1c545f55c2e76dc78047eaaff6fd7ece951b2f0609bf1a84502ae
localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2: Pulling from bash
Digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
Status: Image is up to date for localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2

The references can be explicitly added:
$ docker notary sign -k wabbit-networks.key -c wabbit-networks.crt -r "registry.wabbit-networks.io/bash:latest" localhos
t:5000/bash:latest
Generating Docker mainfest: localhost:5000/bash:latest
Signing sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
Signature saved to /home/shizh/.docker/nv2/sha256/d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2/sha256/506cc3445ca4585d993de8e99d4b166fbd57690d0fee65875d739c6ef8aefb3e.jwt
$ docker push localhost:5000/bash:latest
The push refers to repository [localhost:5000/bash]
5318c66bd933: Preparing
93f1f7108e53: Preparing
32f366d666a5: Preparing
5318c66bd933: Pushed
32f366d666a5: Pushed
93f1f7108e53: Pushed
latest: digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2 size: 946
Pushing signature
signature manifest digest: sha256:88cbb5b010a31e0673ee6fc6fda6dcdf40bf3feb6e8662e50c84c6d942e0fbf2 size: 470
$ docker pull localhost:5000/bash:latest
latest digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2 size: 946
Looking up for signatures
Found 1 signatures
Found valid signature: sha256:506cc3445ca4585d993de8e99d4b166fbd57690d0fee65875d739c6ef8aefb3e
The image is originated from:
- registry.wabbit-networks.io/bash:latest
localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2: Pulling from bash
Digest: sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
Status: Image is up to date for localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2
localhost:5000/bash@sha256:d6fbca4fa8195c4b6a23f8599b022d3d4287b52622b6ebae3291f0f074edd1c2


{#Chart} Quick charts

More ngx charts

[x] Treemap

[x] chart pie grid

[x] number cards

[x] Area Chart

[ ] linear Gauge

plz add labels .. at creation @Jrmy-b


Create simple mechanism for user to update a project based on a new derived dataset

There is currently some tedious effort required of a project coordinator when they want to submit a derived dataset, particularly if the dimensions of the derived dataset do not already match an existing project dimension.

The project config needs to specify what dimension records are required of the dataset.
If the dataset's dimensions do not match the project's dimensions, new supplemental dimensions must be generated. Base-to-supplemental dimension mappings must also be generated.

The comment from @elainethale in https://github.com/dsgrid/dsgrid/issues/217#issuecomment-1406784320 provides a clear desired outcome: it should be easy to do this. However, the details need to be fleshed out prior to implementation.
The main issue is this: How many user steps are required to update the project? Is there one to update the project config with dimension requirements, a second to register new dimensions, a third to register supplemental dimensions, and then a fourth to register-and-submit the dataset? Item (iv) of the comment above seems to imply that single command is required for this. In some ways that would be ideal. It could be implemented as an atomic operation as far as the registry is concerned. Either everything gets updated or nothing does. However, extending the existing register-and-submit command with all of this functionality seems to be jamming too many unrelated things into one command. Do we make a new register-derived-dataset command?
Here is a possible workflow that makes sense to me:

The user goes through the normal update process to add dimension requirements to the project config. You all have said that we require this paperwork so that people are very intentional about their requirements and expectations. OK, make them do that here. It's only a few lines.
The user runs the dsgrid query project create-derived-dataset command. It fails because the dataset has dimensions that don't match the project.
dsgrid generates supplemental dimensions and base-to-supplemental dimension mappings in a set of files.
The user edits the files with valid names and descriptions.
The user runs one command to register all dimensions and mappings and attach them to the project. This is a dsgrid registry project command.
The user reruns the dsgrid query project create-derived-dataset command. It will now pass.
The user runs theregister-and-submit command.

This issue requires that #219 be implemented.
Assigning to Elaine to clarify the workflow requirements. It can be reassigned for implementation.

The list above makes sense to me, except that #1 doesn't seem like a real step? (That step is actually done in steps #4-5?)
How about this:

User develops the query they want to become a derived dataset
User runs dsgrid query project create-derived-dataset command. It fails because the dataset has dimensions that don't match the project, but it also generates supplemental dimensions, and base-to-supplemental dimension mappingsin a set of files.
User edits the files, adding valid names and descriptions
User runs one command to register all dimensions and mappings and attach them to the project. This is a dsgrid registry project command that, among many other things, makes the necessary edits to the project.json config file.
User reruns the dsgrid query project create-derived-dataset command. It will now pass and will generate a dataset config file that can be registered and submitted to the project (and is generally expected to pass).
User checks/edits the derived dataset's name, description, etc.
User runs the register-and-submit command

I kept your steps 6 and 7 from above, but I'm wondering if they can be combined. When a user calls "create derived dataset" have they already provided a name and description, or is that easier to do in a draft dataset config file created by that call? Even if that editing step could be done ahead of time, is it good to give users one last chance to double-check everything?

If my above summary is reasonable, the user has to do three things:

Make the query
Make sure new dimensions are described correctly
Make sure the derived dataset is described correctly

And there are three dsgrid workflows that have to be developed/modified:

create-derived-dataset
add supplemental dimensions and dimension mappings
register-and-submit

The list of things the user has to do seems right to me. We want all of those steps completed with some care.

Step 1 in my list is required: the project config has to specify dimension requirements for each dataset. For example, resstock is not expected to have transportation subsectors (https://github.com/dsgrid/dsgrid-project-StandardScenarios/blob/main/dsgrid_project/project.json5#L82). The question is: do we attempt to generate a version of this or make the user be explicit?
I should have included a step in between 6 and 7. The create-derived-dataset-config command produces a dataset.json5 with lots of empty fields. Refer to https://github.com/dsgrid/dsgrid/blob/dt/derived-dataset/dsgrid/query/derived_dataset.py#L164. The user needs to fill those in before submitting it.

If your step 1 is required, I think create-derived-dataset should also stub out those changes in a revised project.json for the user.

This is complete @daniel-thom?

It is not complete.

Can we close this issue and open a new one that just describes the parts that are still incomplete?


feat(Analysis/SpecificLimits/Basic): add lemmas about limits of quotients

Used in #15373.

I added a commit with a little bit of cleanup, this looks good now. (I see that many other results in this file are also about just multiplication, but stated for fields, so that is fine for this as well).
bors d+

bors r+


Duplicate tests

There are two tests for img elements without width and height attributes.
Starting at line 66...
img:not([width]):not([height]) {
    outline: var(--lint);
    content: "Prevent page load jank and CLS by finding <img>'s missing height and width attributes";
}

And starting at line 262...
img:not([width]),
img:not([height]) {
    outline: var(--lint);
    content: "<img> without height and width that will cause cumulative layout shift. See: https://web.dev/optimize-cls/#images-without-dimensions";
}

I suggest removing the test that starts at line 66, as it will not select img elements that have a width attribute but do not have a height attribute.

Thank you for your feedback I've addressed this issue in this commit: https://github.com/lorenzodelijser/lint-html-with-css/commit/8820b6125fabff9d28b69f48e0708f03d3e1dcc1


Grouping By Time Interval / Stacked Chart

I am trying to create a stacked chart, with each bar representing 1 day. My original sqlite query is:
SELECT
    strftime("%Y-%m-%d", artifacts.created_at) AS "Date",
    alerts.title AS Type,
    count(*) AS Total
FROM artifacts
INNER JOIN alerts ON alerts.id = artifacts.alert_id
GROUP BY
    Date, Type
ORDER BY
    Date DESC

In Grafana, I have created a TimeSeries query as follows:
SELECT
    REPLACE (artifacts.created_at, ' ', 'T') || 'Z' AS Date,
    alerts.title AS Type,
    count(*) AS ""
FROM artifacts
INNER JOIN alerts ON alerts.id = artifacts.alert_id
GROUP BY
   Date, Type
order by Date ASC

This creates the following chart:

Seems that Grafana is drawing each element horizontally, rather than grouping by date and placing each date's value in a single bar. I suspect this is partially due to to each row not being clustered into a 24 hour period (I have set the Interval to 24h in the Query Editor).
I have seen other queries make use of $__timeGroup, setting this to 24h, but this has not worked and I seem to be at an impasse. Not sure if there is something obvious I am missing, but any help would be appreciated.

I see no problem on my end. Did you choose the right Grafana visualization settings?

Hmm, this is so odd. I can't even get a single Type to render correctly (per day). The Inspector:Data view also just shows a single date:value row, rather than one per day.
As a "normal" SQL query, the results I get are like:
Date, Type (Count)
2020-01-01, 4
2020-01-02, 5
2020-01-03, 6
...

But in the Grafana query, I get a single row returned, where the count is the sum of all rows, and where the Date is the earliest date in the table:
Date, Type (Count)
2020-01-01, 15

If I can get the bar chart working for a single Type, it should be easy to get the rest worked in.

The Inspector:Data view also just shows a single date:value row

In my experience, the data inspector does not work well with time series returned as multiple data frames.
But as you can see from the screenshot above it should work. Now it is just a question of what you are doing differently. E.g. I am using a time column (not a date-string) and I have enabled the stack option

E.g. I am using a time column (not a date-string) and I have enabled the stack option

I have tried using strftime to convert to unix epoch:
SELECT
    strftime("%s", artifacts.created_at) AS Date,
    alerts.title AS Type,
    count(*) AS ""
FROM artifacts
INNER JOIN alerts ON alerts.id = artifacts.alert_id
group by Date
order by Date ASC

When I set the graph type to table, I can see that the data is correctly being returned. However, the date column shows the date as datetime, like 2021-03-05 10:34:02, rather than grouping by day, like 2021-03-05. I am not sure how Grafana nows to group per day -- is this what you are doing with the "Aggregation Interval"? I cannot see that in my instance at all.

If you want to group by day, then you should convert the timestamp to a day and constant time (e.g. only take the "date" part of the time and append "T12:00Z" to it). Only then you can reasonably group by it

That worked perfectly, thank you!


doc error about admin tool WipeWritePermSubCommand

doc write:

but in fact the code is use the brokerName instead

fix on #1858 ,close this issue


MM-17788, MM-17656 - Updating images css

Summary
MM-17788, MM-17656 - Updating images css
Ticket Link
https://mattermost.atlassian.net/browse/MM-17788
https://mattermost.atlassian.net/browse/MM-17656
Screenshot:

Okay for QA to test this one after it's merged. Removing the QA Review label.


json: Unmarshall JSON numbers as json.Number type

This could theoretically allow us to support other number types, such as Decimal and being able to transport it via JSON:
{
    "value" : 1.23
}

instead quoted number
{
    "value" : "1.23"
}

@smyrman  Still not sure about this.

Seems like I missed query/ tests.

No the intend was to start a discussion on it first.

But I suppose the PR makes the discussion easy to have.

I think it gives nice leeway, but I want to hear @rs opinion. Is it worth switching to json.Number to allow more leeway in e.g. fixed decimal implementations for applications and/or Storere backends? The implementations could of-course still choose to rely on strings.

Wouldn't it be better to keep current integer/float validation untouched and deal with decimals using a specific validator that would enforce the value to be un/serialized as a string to keep the right representation?

@rs Agreed, it is sane to keep "custom" types always encoded as strings. Will make a PR to rs-layer-mongo soon.

First of all, I think this does not need to be done now. You can perfectly well implement a Decimal type that supports only string encoding, and that would probably be the most useful, and the best place to start, as you have already pointed out @Dragomir-Ivanov.
My intent with reopening #125  rest-layer side, was just so we could discuss if it was also worthwile to consider adding leeway in rest-layer to do more than that (in good time). Thanks for this code demonstration though.

deal with decimals using a specific validator that would enforce the value to be un/serialized as a string to keep the right representation?

@rs , how could you do that when the payload is  always decoded into a map[string]interfave{}? The only way to do parse a numeric JSON tag into a number specifically for one field would be to use structs as schemas, or massivly complicate the decoding process.
Therefore if we want a fixed Decimal type that supports JSON numeric encoding as well as string encoding, and maybe we don't btw, then this is probably the best aproach as it leaves all numbers in their most pure original string form until they reach the validator.

If decimals are stored as strings there is nothing special JSONwize to have them parsed. It is the role of the validator to have them checked and eventually transformed if necessary.

@rs, yes. That has always been clear.

Or depends what you mean as "stored as string" @rs. json.Number is a string in go, just as the whole JSON payload is a string, or byte slice in go.
The point is that if we want to parse  number literals in JSON (a string or byte slice withot surrounding double quotes), today that number is parsed directly into a float64 or int64 before it even reach the validator, is it not?
If we want to add leeway to add numeric FieldValidators with a higher or different precision than float64, we need to use json.Number when parcing into map[string]interface{} to avoid loosing precision.
Fixed decimal is only an example. Another example would be big ints/ floats.

And btw, maybe the answer is we don't need such leeway. Maybe such numeric types would be restricted to use string literals in JSON when combined with rest-layer, meaning a byte slice where the first and last char is a double quote.

I would keep it simple. I see no practical use-case where the current behavior would be an issue. Do you have some?

Not an issue as such, as this is just a discussion on style.
Support for big int/float could matter for scientific applications, and fixed decimal could be essential for financial application, but there is no case that demands these types to be encoded as a numeric literal in JSON.
Let's close it for now anyway :+1:


screentogif request

Package Requested
Manifest:
Fill out as much of the manifest as you can:
https://www.screentogif.com/downloads
PackageIdentifier:   # publisher.package format (example: "Microsoft.WindowsTerminal")
PackageVersion:      # version number format x.y.z.a (example: "1.6.10571.0")
PackageLocale:       # meta-data locale (example: "en-US")
Publisher:           # publisher name (example: "Microsoft Corporation")
PackageName:         # package name (example: "Windows Terminal")
License:             # package license (example: "MIT")
ShortDescription:    # package description (example: "The new Windows Terminal")
Installers:
 - Architecture:     # installer architecture (example: "x64")
   InstallerType:    # installer type (example: "msix")
   InstallerUrl:     # installer URL (should be https://)
   InstallerSha256:  # SHA256 hash calculated from installer
ManifestType: singleton
ManifestVersion: 1.0.0

This package is already added tho?
https://github.com/microsoft/winget-pkgs/tree/master/manifests/n/NickeManarin/ScreenToGif
but i'll update it to 2.31

Strange it didn't show up in my initial search. Thanks!

Where did you search? What did you search?
You can add more tags so its easier to find
https://github.com/microsoft/winget-pkgs/blob/master/manifests/n/NickeManarin/ScreenToGif/2.31.0/NickeManarin.ScreenToGif.locale.en-US.yaml


Added missing Contexts to Event.copyWith()

@googlebot  I signed it!

@jamie1192 if you can please add the entry to the changelog, we can get this merged.
More changes will land before 4.0.0 comes out though, likely the Scope class included and avoid breaking changes for a while after that.

no problem @bruno-garcia , all done.

Thanks you @jamie1192


dina-font: use fonttosfnt instead of fontforge to generate OTB files

Motivation for this change
Using  fontforge results in weird spacing issues in lemonbar-xft: no matter what I try, glyphs seem to have uneven widths.
fonttosfnt 1.2.2 (#126906) fixed the last issue I had with the fonttosfnt-generated version; it now renders perfectly at all sizes in lemonbar-xft, firefox, rofi, alacritty and xterm. It's also much lighter than fontforge, so I suggest we switch.
@rnhmjoj do you remember what exactly the Unicode problem you mentioned in 36ca91e25306df0f72332a24c8dd67f7a59552bd was, and if it's still a thing?
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

@rnhmjoj do you remember what exactly the Unicode problem you mentioned in 36ca91e was, and if it's still a thing?

It failed completely: if fonttosfnt now manages to produce an output it's already an improvement.

Result of nixpkgs-review pr 126955 at c85211de run on x86_64-linux 1

1 package built successfully:

dina-font

1 suggestion:

warning: patch-phase
patchPhase should not be overridden, use postPatch instead.
Near pkgs/data/fonts/dina/default.nix:19:3:
   |
19 |   patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
   |   ^

1 suggestion:
* warning: [patch-phase](https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/patch-phase.md)
  `patchPhase` should not be overridden, use `postPatch` instead.
  Near pkgs/data/fonts/dina/default.nix:19:3:
  ```
     |
  19 |   patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
     |   ^
  ```

Done

Thanks!


Can multiple containers run in one sandbox?

Description of problem
In our project, we want run multiple same containers, they owned by one tenant, in one sandbox.

Is this scope implemented or not in kata project ?
Can it support Docker or Kubernetes?

I don't find any documents to config such environment. I appreciate for your answer.

Hi @bekars, running multiple containers from one tenant inside the same sandbox is the natural way to handle things in Kubernetes. And because Kata Containers does support Kubernetes if used with CRI-O or CRI-containerd, you can simply run several containers in the same pod, they will end up running inside the same virtual machine in case of Kata.
About Docker only, there is no such concept as sandbox/pod, the container is the highest level of granularity and that's the reason why this case cannot apply to Docker.

Kata containers use annotation from runtime spec to specify many containers in single POD, as docker has no way to pass the annotation down to kata-runtime level, there's no way to compose a POD in Docker scenario.
But @jshachm from Kata and Huawei team is trying very hard to upstream a patch to docker for supporting passing the annotation: https://github.com/moby/moby/pull/37262 ,  I believe in near future, you will be able to create a POD with docker after backporting a very small docker patch.
Cheers :-)

@bekars - This is stale at this point, and I believe we've answered your query.  Let me know if you have further questions.


Adyen: We always send amount multiplied by 100 but we should not

In most cases, a minor unit of a currency is major * 100. I.e. 1USD = 100 cents, 1PLN = 100gr etc.
However, in some cases, that's not true. See the following table: https://docs.adyen.com/development-resources/currency-codes

[ ] research if Adyen provides a function for this kind of conversion. It exists for iOS SDK (AmountFormatter), not sure about JS.
[ ] use it instead of multiplying by 100

We should do similar check for other payment providers, because Adyen currency precision could differ from standard ISO 4217
also we need to take into account Saleor's precision - currently it's not possible in our API to check the Decimal scalar precision


Unauthorized 401 for ImageRepository resources for ECR

Getting the following logs on my image reflector controller pod (omitted account id and repository name).
scan failed: GET https://XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/v2/XXXXXXXX/tags/list?n=1000: unexpected status code 401 Unauthorized: Not Authorized\n","controller":"imagerepository","controllerGroup":"image.toolkit.fluxcd.io","controllerKind":"ImageRepository","ImageRepository":{"name":"XXXXXXX","namespace":"flux-system"},"namespace":"flux-system","name":"XXXXXXXXX","reconcileID":"cf8bc88c-2ec1-4a4a-bfa0-e8dbb0d48174","error":"ReadOperationFailed"}
scan failed: GET unexpected status code 401 Unauthorized: Not Authorized
When inspecting the ImageRepositories that are throwing unauthorized errors, I can see that the latests tags are being picked up 'successful scan: found 3 tags' with the correct tags being listed, so I am unsure why the image reflector controller is throwing errors.
I am currently running flux v0.41.2 in AWS EKS kubernetes version 1.24.
I am using IRSA for authentication with the ImageRepository resource provider set to aws.
Help would be greatly appreciated 🙏

Hi @somtochiama ,
Really strange, I had a brief period of getting scan was successful in the logs, as well as logging in to AWS ECR for xxx.dkr.ecr but it goes back to reconciler error not authorized / scan failed.
Functionally I think the images are being pulled correctly so I will try to upgrade to the latests flux and see if that helps.


Appending template is not working when user selects tag after writing

Tested with v0.6.0, to reproduce:

User clicks "Start a Discussion" on main page
writes some text
clicks "Post discussion"
popup shows to select tag -> user selects tag
template is appended in the editor and visible for a short time but it does not appear in the submitted post

To fix this, the discussion should not be posted immediately after selecting a tag, so the user can read the inserted template and has to click the "Post discussion" button again.

This is not fixed with v0.7.0 - same behavior that I described is still present


yii.activeForm.js validateAttribute

How manual validate form input?
<?

namespace app\components\widgets;

class ActiveForm extends \yii\widgets\ActiveForm {

	public $enableAjaxValidation = false;
	public $enableClientValidation = true;
}

$('#w0').yiiActiveForm('submitForm') // work, show errors
$('#w0').yiiActiveForm('resetForm') // work, hide errors
$('#w0').yiiActiveForm('validateAttribute', 'dynamicmodel-text') // nope...

$('#w0').yiiActiveForm('validate') // work only after $('#w0').yiiActiveForm('data').submitting = true

@SilverFire grandfather can. pensioner benefits... ;)

2.0.9

So https://github.com/samdark/yii2-cookbook/blob/master/book/forms-activeform-js.md#triggering-validation-for-individual-form-fields doesn't work for you?

yep, nothing happens

$('#w0') , It may not your form widget already。 Make sure of there is only one widget inside of the  page. Or you can define your own id for this form.

Failed to reproduce

i understand what error... field add class has-error but i don't use it, only errors summary, it's stay empty...

Yeah, error-summary is server-side validation result, JS has nothing to do with it

$('#w0').yiiActiveForm('submitForm') fill it...


botId description is incorrect

The document incorrectly lists:

botId
The name of the Azure Bot resource your created earlier.

The document should instead say:

botId
The name of the new Azure Bot resource to create.

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

ID: 096d934c-2856-e868-efeb-6622e2a5eafb
Version Independent ID: 8bf74926-6a35-5753-0a1a-6663ba5965b2
Content: Deploy your bot - Azure Bot Service - Bot Service
Content Source: articles/bot-builder-deploy-az-cli.md
Service: bot-service
GitHub Login: @JonathanFingold
Microsoft Alias: iawilt

Will fix this as part of work on #2179 .


12 12

Continued initial development.

Changes Unknown when pulling b58a0a5fcd1d111e91c7308234e71a7f091e506e on 12-12 into ** on master**.

Changes Unknown when pulling b58a0a5fcd1d111e91c7308234e71a7f091e506e on 12-12 into ** on master**.

Changes Unknown when pulling e0963b4dd6a8fa5c09571329d4a941e97242f6d0 on 12-12 into ** on master**.

Changes Unknown when pulling e0963b4dd6a8fa5c09571329d4a941e97242f6d0 on 12-12 into ** on master**.


Post your performance metrics here.

Could you add in a section in the readme about how much faster the server can be with and with out this patcher?

We are tired at the moment, thank you for your suggestion.

We are tired at the moment, thank you for your suggestion.

Did you get enough rest to post performance metrics yet?

Me and Vakea weren't able to work on the project at the time the issue was closed.
I will reopen it to not forget to do some performances metrics, myself.
Since one features of the patcher is the plugin rewrite, the result can varies if the server has a lot of plugins.
(Thank @JRoy for asking, but sadly even if we got better, we still didn't fully recovered yet)
Also everyone is welcome to post their own metric here, if it contain metrics both with and without the patcher.

I will temporary let everyone post their metrics here until I do proper metrics.
I don't think it would be as simple as testing one time with and one time without as there are a lots of things that can affect how much performances is gained this the patcher such what fork or Minecraft version is used, what plugins are installed, how many players are online, and probably more.
A big difference of this "optimization" tool compared to most server forks like Paper, is that it also optimize loaded plugins.
But I am really curious how much the patcher optimize the server, and how in which situation the patcher give the most and fewest performances gain.

Yeah nah, I think I will probably remove optimizations from the project and just keep the features, I recently made some breakthrough in optimization, and with how I have been treated with this project I don't want to make this breakthrough opensource.
The main point of this project was about "Plugin compatibility" (For fun), and new APIs for a server that has been abandoned.
(The main thing about this project was to make some parts of the server open source)
The optimizations was a plus that wasn't the main goal of the project.
1.7.x version will just be maintenance update, and for 1.8.x I will remove all optimization code.

Since I will removing all optimization features in a future update I'm closing this issue now.


Add goreportcard badge

Go Report Card assesses the project on code-quality metrics like vet, lint, fmt, misspell, and more!
Signed-off-by: Riyaz Faizullabhoy<EMAIL_ADDRESS>

LGTMeeeeeee!!!!!


⚠ Turnos 24x7 has degraded performance

In f36db57, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1176 ms

Resolved: Turnos 24x7 performance has improved in 14a6707.


Return early when queue is full.

implements #1298

Closing this now as you pushed your changes before merging this.


Improve "Remove extra paragraph spacing" feature

Currently, it just removes all <br>.
With this change you could:
-remove excessive br
-remove some zero-width spaces (I found a novel that put them in a p to simulate an extra empty paragraph).
-remove a br after the end of a p. It's just extra space.
-remove a br present right before the end of a p.

I tested the loading speed:
Or

I tested the loading speed on an epub with different chapter lenghts, from 16k to 92k character:
Original:
https://github.com/user-attachments/assets/0a6b7f88-32d2-47a2-901d-61b115c252ef
Commit modifications:
https://github.com/user-attachments/assets/ffe4fcf7-b74b-430c-aa4c-53ba367646b6
I dont see much difference


Add a "--skip" or "--exclude" option

I would like to use this library, but one of the packages in my packages directory can't be installed locally, which is making the script as a whole fail. It would be great if I could just use something like --skip directory_name to not touch that entire directory.

Hey, yeah, that is a sensible request. It's a bit problematic as there's already an option to pass multiple search directories, and a --skip dir wouldn't necessarily know which of these to filter in without requiring full paths (or you filter all the folders). A global --exclude pathfilter would be acceptable though.
Bit busy myself atm, but will merge a sensible PR with tests :smile:
If you separate your folders into ones that work and ones that don't, you'd avoid this problem entirely though.

Well, the search directories are expected to be relative to the current directory. What if the --skip directories were also relative to the current directory? Then there wouldn't be any ambiguity when filtering.

Yeah, you'd have to take out the leading directory part before doing the filtering down inside the handling for each repo dir, which is a bit awkward, but that could also work.


chore(skeletons): add paparazzi tests

Changes description 🧑💻

Adds paparazzi tests on skeleton component
Context 🤔

#93
Checklist ✅

[x] Make sure you are requesting to pull a topic/feature/bugfix branch. Please, don't request directly from your main!
[x] Check commits & PR names matches our requested structure. It must follow the https://www.conventionalcommits.org pattern.
[x] Check compose contract convention. It must follow conventions described here.
[x] Check your code additions will fail neither code linting checks.
[x] I have reviewed the submitted code.
[ ] I have tested on a phone device/emulator.
[ ] I have tested on a tablet device/emulator.
[ ] I have tested on a large screen device/emulator.
[ ] If it includes design changes, please ask for a review design-system-core-team-design GitHub team.

Screenshots 📸

Other info 👋

You can download the apk here :
sample-debug.apk :
https://app.bitrise.io/app/e9ae480151be4514/build/cab47834-aafa-4551-bdcc-e7197415c1d2/artifact/5476bd2f11ccc87f/p/1843ca285d13bd1acf6cfefaf3847193

You can download the apk here :
sample-debug.apk :
https://app.bitrise.io/app/e9ae480151be4514/build/559d8c9e-0e68-43b6-9e90-6664db77608e/artifact/2b7b5eeecde15983/p/327883cbe1f7eed708180e087d13b68a


Invalidate app cache on deploy

When I do a new deployment of my app, I have to invalidate client cache (stored in localStorage) because most probably backend schema has been changed and it causes problems.
So my idea is to write an environment variable during build and then check it at client-side and invalidate cache if the variable has been changed.
The only appropriate thing I could find is using GITLAB_COMMIT_SHA (documented here: https://zeit.co/docs/v2/advanced/now-for-gitlab/#included-environment-variables). But the problem is it doesn't work when I deploy the app manually from CLI.
Is there a way to write commit sha when deploying from CLI as well? Or maybe a more simple way - just write a random string with every new deployment to .env file?

Hey! Have you tried checking process.env inside the deployment? We do provide other ways for accomplishing this - NOW_URL is one of them.

@leo what do you mean by "inside deployment"? Just tried to do the following:
yarn build then yarn start and console.log(process.env). It's an empty object.

@leo what do you mean by 'inside the deployment'? Just deployed the app and console.log(process.env) - empty object.

How are you getting the GITLAB_COMMIT_SHA? You should be able to get the NOW_URL env var the same way.

Just deployed the app and console.log(process.env) - empty object.

Is this on the client-side or server-side?

Also, this is probably the kind of question that could be better answered at https://zeit.co/chat

Thanks for you comments. Ended up using this solution: https://github.com/nexdrew/next-build-id/issues/14


Dataset download links seem extremely slow

Hi, thanks for sharing this amazing work!
The dataset download link are extremely slow for me. I tried on multiple networks.
Is there an alternative link to download the dataset?
Thanks,
Pushkar

Hi Pushkar,
Thank you for your interest in our dataset. There is a network issue going on inside our university. Here are alternative links from dropbox.
mp3d_planercnn_json.zip
rgb.zip
observations.zip
planes_ply_mp3dcoord_refined.zip
cameras.zip
Hope these help!

Hi, thank you for the quick help! These links work fine :)
Do you have a Dropbox link for the pretrained model as well? Sorry for the trouble.
Thanks,
Pushkar

Here is the link https://www.dropbox.com/sh/7itozhd5kvql7n6/AABTanMoyJpcwBnkZIRiRSt3a?dl=0


Impossible to open resource with linear=no

Bug Report
This is a copy of the same issue in Kotlin-toolkit: https://github.com/readium/kotlin-toolkit/issues/124
Added to create pull requests that refers to a valid issue in the repo.

Closed by #331 and #332!


User and stitcher update

Updates stitcher logic to match on mcid
Include appleIdfv and openIdfa in device_idfa values.
Ignore events from<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 644

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.08%) to 99.918%

Totals

Change from base Build 641:
-0.08%

Covered Lines:
906

Relevant Lines:
906

💛  - Coveralls


Docs: Add feedback widget

Adds a widget to the docs that allows us to collect feedback:

This appears on every page:

@tayloramurphy I can't seem to get it to anchor to the bottom of the TOC. It looks like we can have more control over the CSS stuff once we upgrade to a paid account.
There's also no way to make it look exactly like the one on the homepage since they host all of the JS for it. I could probably do a dirty hack but I don't know if that might break in the future.

@afolson can we make the TOC in a smaller column then? I definitely don't want it to overlap the text at all.

Actually @afolson, what if we just scoot it down the page and have it about 1/4 up the page from the bottom? I don't like the TOC overlap and scooting it down seems easier than making than making the TOC smaller.

@tayloramurphy I'm having a hard time placing it manually without it clobbering something or shifting the page somehow. Can we just accept it as an iteration and I'll chat with their support team to see when they're adding more options? Ideally we'd be able to control the whole widget but it looks like they're still building some of that out.

I'll just find another solution. Thanks!


Bug: RecursiveSplitter removes all spaces

🐛 Describe the bug
If I manually set the chunk_size in RecursiveSplitter to 50, it would remove all blank spaces.
Running this input:
One of the most important things I didn't understand about the world when I was a child is the degree to which the returns for performance are superlinear.
Teachers and coaches implicitly told us the returns were linear. "You get out," I heard a thousand times, "what you put in." They meant well, but this is rarely true. If your product is only half as good as your competitor's, you don't get half as many customers. You get no customers, and you go out of business.
It's obviously true that the returns for performance are superlinear in business. Some think this is a flaw of capitalism, and that if we changed the rules it would stop being true. But superlinear returns for performance are a feature of the world, not an artifact of rules we've invented. We see the same pattern in fame, power, military victories, knowledge, and even benefit to humanity. In all of these, the rich get richer.
You can't understand the world without understanding the concept of superlinear returns.
One of the most important things I didn't understand about the world when I was a child is the degree to which the returns for performance are superlinear.
Teachers and coaches implicitly told us the returns were linear. "You get out," I heard a thousand times, "what you put in." They meant well, but this is rarely true. If your product is only half as good as your competitor's, you don't get half as many customers. You get no customers, and you go out of business.

Versions
0.0.30

Code PR is needed


Blockfrost backend for MonadBlockchain

Looks like we can implement all of 'MonadBlockchain' with blockfrost API calls

This was done in #243


Rails 5 support

Rails 5.0.0 is the current stable release and is not supported by this project's current gemspec:
  gem.add_dependency "railties", ">= 4.1", "< 5"
  gem.add_dependency "actionpack", ">= 4.1", "< 5"

👍 is this something that might be coming soon?

Is someone doing this upgrade?

I have no plans to work on this -- it will need to come from a contributor.

I think this is supposed to be closed.

New version post rails 5 PR being merged hasn't been released yet?

Rails 4.x becomes deprecated today. Bumping this and wondering if there is anything I can do to help.


Handle $? which should expand to the exit status

Handle $? which should expand to the exit status of the most recently executed foreground pipeline.

I think this task were finished in past

Finish expand exit status with 2 ways:
cmds->signal_exit;
or
cmds->exit_code.code;
`int	exit_adapter(t_cmds *cmds)
{
int	count;
int	exit_code;
cmds->signal_exit = 1;
cmds->exit_code.last_cmd = ft_strdup("exit");
if (cmds->input->cmd_args == NULL)
	return (0);
count = 0;
count = count_args(cmds->input->cmd_args);
exit_code = check_erros_exit(cmds->input->cmd_args, count);
exit_code = (exit_code % 256 + 256) % 256;
cmds->exit_code.code = exit_code;
return (exit_code);

}`


Support exclude the message when reset cursor by message ID

Is your feature request related to a problem? Please describe.
Currently, when reset the cursor to a position, the broker will set the mark delete position to the previous position of the reset position. For some usecase, we don't want to consume the reset position again, so it's better to provide a way to reset the cursor to a specific position and exclude this position. So that the consumers under the subscription can start consume messages from the next position of the reset position.

Please assign it to me


npm install express-pouchdb.  Conflicting README's

Hi, this project's README says:  npm install express-pouchdb
The express-pouchdb README points to this project's readme saying:

THIS REPO HAS MOVED  As of version 2.3.0, express-pouchdb is now part of the PouchDB Server monorepo codebase. Please see that repo for documentation, tests, and code.  This repo is left open so that folks can browse the old issues and PRs.

I'm having a documentation stack overflow.
What's the best way to make offer a custom secure pouchdb server from Nodejs?
Thanks!

see the express-pouchdb section in the README, does that help

I didn't get to the monorepo part.  I've always just assumed one repo <-> one npm module (even though I've used Meteor for years).  Thanks!


cilium: encryption, subnet IPSec mode configuration may segfault on init

If not all of our preconditions are met, e.g. IP allocation fails or IP lookup fails its possible for enableSubnetIPSec,
func (n *linuxNodeHandler) enableSubnetIPsec(v4CIDR, v6CIDR []*net.IPNet)

to segfault. For example in an EKS environment where I misconfigured node pools I got this,
level=debug msg="IPsec enable succeeded" local-ip=<IP_ADDRESS>/0 reason="CNI Out IPv4" remote-ip=<IP_ADDRESS>/16 spi=3 subsys=linux-datapath
level=error msg="IPsec enable failed" error="Link not found" local-ip=<IP_ADDRESS>/0 reason="getV4LinkLocalIP failed" remote-ip=<IP_ADDRESS>/16 spi=3 subsys=linux-datapath
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x2009397]

goroutine 1 [running]:
github.com/cilium/cilium/pkg/datapath/linux/ipsec.UpsertIPsecEndpoint(0x0, 0xc000f9a0c0, 0xc000c8bb90, 0x299e187, 0x8, 0xc000c8bb01, 0x275f903, 0x0, 0x0)
        /go/src/github.com/cilium/cilium/pkg/datapath/linux/ipsec/ipsec_linux.go:334 +0x37
github.com/cilium/cilium/pkg/datapath/linux.(*linuxNodeHandler).enableSubnetIPsec(0xc0009ae000, 0xc000baada0, 0x2, 0x2, 0x46308e8, 0x0, 0x0)
        /go/src/github.com/cilium/cilium/pkg/datapath/linux/node.go:534 +0x2d4
github.com/cilium/cilium/pkg/datapath/linux.(*linuxNodeHandler).nodeUpdate(0xc0009ae000, 0x0, 0xc000c5a540, 0x1, 0x2, 0xc000baada0)
        /go/src/github.com/cilium/cilium/pkg/datapath/linux/node.go:922 +0x21b
github.com/cilium/cilium/pkg/datapath/linux.(*linuxNodeHandler).NodeConfigurationChanged(0xc0009ae000, 0x2329, 0x22aa, 0x22dc, 0x22f7, 0x100, 0x46308e8, 0x0, 0x0, 0x1000000000001, ...)
        /go/src/github.com/cilium/cilium/pkg/datapath/linux/node.go:1398 +0x487

The system wasn't going to come up anyways so it would have failed and crash looped regardless, but still issuing a splat because we don't handle errors nicely is not user friendly. Offending code here,
                        linkAddr, err := getV4LinkLocalIp()
                        if err != nil {
                                upsertIPsecLog(err, "getV4LinkLocalIP failed", ipsecIPv4Wildcard, cidr, spi)
                        }
                        spi, err := ipsec.UpsertIPsecEndpoint(linkAddr, ipsecIPv4Wildcard, cidr, ipsec.IPSecDirIn, zeroMark)
                        upsertIPsecLog(err, "CNI In IPv4", linkAddr, ipsecIPv4Wildcard, spi)

Notice we just ignore the error and try to upsert anyways with linkAddr == null. Clearly not going to work. Above was caused by user error but like noted above we should be a bit friendlier with our errors.

@jrfastab Is this still relevant? I'm looking for some easy issues to get started learning about datapath.

@jrfastab Is this still relevant? I'm looking for some easy issues to get started learning about datapath.

@tommyp1ckles @rgo3 @julianwiedmann is it still relevant?


bump version 0.2.0

<!-- Make sure you have read http://napalm.readthedocs.io/en/latest/contributing/index.html --!>

Coverage remained the same at 77.739% when pulling 2000a9388d2017476c9e89caef6a4508c7bda351 on bump-version-0.2.0 into 3cab0dd9c46fa143f35003c9acc422032cd2f9b2 on develop.

+1


Feature request: Preload lazy loaded bundles

https://www.softwarearchitekt.at/post/2016/10/02/optimizing-performance-with-preloading-and-the-new-angular-router.aspx

@DzmitryShylovich the article suggests those features will be available on router 3.1.0, but the current latest router version appears to be 3.0.2 and those modules are not available on it. I suppose it's only available if we use the nightly builds of router.

Yeah https://github.com/manfredsteyer/preloading-angular-2/blob/master/package.json#L53

ah ok, will install it and see if it seems stable

afaik there should be no breaking changes

@DzmitryShylovich had remove this from starter until AOT bug is fixed: https://github.com/angular/angular/issues/12141


Add tests for etcd Peer

In addition to adding tests,

Fixed the issue where httpStopC was being closed in two places.
Modified GetLeader to return the leader.

Good job！


AjaxControlToolkit working on one server but not another.

Not sure what's going on here... publishing an app to one server and everything works fine, publishing it to another and the Ajax components (modalpopup extender/etc) don't work/fire on the other.  For example the popup is always visible, and textbox doesn't respond with the datepicker extender.  The ajaxcontroltoolkit.dll is in the /bin of both apps.  Application pool is the same, file permissions seem to be the same.
This doesn't seem to be app specific, as a different app published to both servers behaves the same (i.e. works on the one, and not the other).  The apps load and don't complain about anything, just the Ajax stuff is ignored on one.  Both are running version 18.1.1 targeting .NET4.  IIS8.5 on Windows Server 2012R2.
FWIW, the unhappy server is also running Joomla/PHP, just in case....
Event logger on the unhappy one gives me the below, which doesn't lead me to much:
Event code: 3012
Event message: An error occurred processing a web or script resource request. The requested resource 's|WebForms.js' does not exist or there was a problem loading it.
Event time: 5/22/2019 12:22:17 PM
Event time (UTC): 5/22/2019 5:22:17 PM
Event ID: 1547dec8b40d481eb8d923e7cd23d04d
Event sequence: 14
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/ECReferral-13-132030180589094021
Trust level: Full
Application Virtual Path: /ECReferral
Application Path: C:\inetpub\net\ECReferral\
Machine name: WEB
Process information:
Process ID: 7484
Process name: w3wp.exe
Account name: GHAEA\ghadmin
Exception information:
Exception type: HttpException
Exception message: Server cannot set content type after HTTP headers have been sent.
at System.Web.HttpResponse.set_ContentType(String value)
at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
Request information:
Request URL: https://www.xxxxxxxxxxxxx.org:443/ECReferral/WebResource.axd?d=BpsrWo4df7eJtElRJXKfi_rwxWYQyV0lsiE572lC-sGGDgFiIaBvyczFc3Kk7-5ZmnoKQk2c-MEC4Gli0Irw7T2pootoaC9BUm9m4mplYGU1&t=636765284300000000
Request path: /ECReferral/WebResource.axd
User host address: xxxxxxxxxxx
User: andy
Is authenticated: True
Authentication Type: Forms
Thread account name: xxxxxxxxxxx
Thread information:
Thread ID: 95
Thread account name: xxxxxxxxxxx
Is impersonating: False
Stack trace:    at System.Web.HttpResponse.set_ContentType(String value)
at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
TIA
andy

Solved.  The issue was the default website that this was a part of had URL Rewrite rules that were interfering.  I created a separate site for this app and everything (and everyone) is happy.


Fixed date format when create new memos

About

Changed to use client side date by this PR

https://github.com/crowi/crowi/pull/234

But, date format is incorrect

expected: 2017/06/06

Screenshot

@suzuki also, can you fix the broken layout?
Original:

Broken (from your change):

Thank you


Reset the log

Is there any way to reset the log for each request. Currently its appending to the file.
I'm using laravel 4.2. Following is my code
Log::useFiles(storage_path() .'logs/'. $logFile);

do you want to use a separate file for each request ? Or do you want to empty the file again for each request ?
The second case is incompatible with request concurrency, so I hope it is not that.


Is the correlation module here the same as IRR?

Is the correlation module here the same as IRR?
I have created environment for IRR and can run the code smoothly, so I want to know:
if I have install correlation module follow the IRR's instruction, can I use it for ARFlow too?

Yes, it is the same as the one in IRR, PWC-Net or others.

Thank you


mParent is also the neighbor during Router rettach

To avoid incorrect packet drop in MAC layer when GetNeighbor()
Fixed 9.2.9Router (NXP-OT DUT testbed)
Fixed 9.2.7Leader(OT-NXP DUT testbed)
Fixed 9.2.9Leader (OT-NXP DUT testbed)

Current coverage is 72.72% (diff: 100%)

Merging #1176 into master will increase coverage by 1.63%

@@             master      #1176   diff @@
==========================================
  Files           127        128     +1
  Lines         18802      18044   -758
  Methods        2634       2534   -100
  Messages          0          0
  Branches       2273       2192    -81
==========================================
- Hits          13367      13123   -244
+ Misses         4558       4099   -459
+ Partials        877        822    -55

Powered by Codecov. Last update a3e9e33...3ecede8


Discord loads as a web browser

As a result, you can't have a microphone and the BD itself doesn't work

You very likely have an outdated installer version. Get the latest release from here:

Windows (7+)
macOS (10.10+)
Linux

I started to have this same problem weeks ago, trying now to install discord fresh along with the linked installer.

I started to have this same problem weeks ago, trying now to install discord fresh along with the linked installer.
Edit: Got it working again with the linked installer. So confusing to have many similar GitHub projects so maybe it was just outdated. My plugins and themes also loaded automatically after re-install.

Yeah hopefully once the new site is more widely used people will be able to find the correct installer easier.

I started to have this same problem weeks ago, trying now to install discord fresh along with the linked installer.
Edit: Got it working again with the linked installer. So confusing to have many similar GitHub projects so maybe it was just outdated. My plugins and themes also loaded automatically after re-install.

Same issue! I was sure I'd grabbed from the right repo, but either way, thanks!


Mention file system watching becoming production ready

Fixes https://github.com/gradle/gradle-private/issues/3165

@bot-gradle check build distribution please.

Sorry I don't understand what you said, please type @bot-gradle help to get help.

@bot-gradle test BD please.

Sorry I don't understand what you said, please type @bot-gradle help to get help.

@bot-gradle test "Build Distributions" please.

Sorry I don't understand what you said, please type @bot-gradle help to get help.

@wolfs PTAL


AppendEntriesResponse should be an enum of the returned state.

Currently AppendEntriesResponse is:
pub struct AppendEntriesResponse {
    pub vote: Vote,
    pub success: bool,
    pub conflict: bool,
}

The leader has to check if a combination of these three fields is valid. E.g. success ==  true && conflict == true is an invalid combination.
It's better be a enum like:
pub enum AppendEntriesResponse {
    Ok,
    HigherVoteSeen(Vote),
    Conflict,
}

/assignme

Any updates on this issue? It seems already solved by https://github.com/datafuselabs/openraft/pull/219.
cc @drmingdrmer

Right. I forgot to close it. Thank you, my hero!


[#152] Relationships contain full IRIs, try to encode it to a CURIE

This commit changes TinkerGraphUtil from a static class to a normal class, and requires a CurieUtil instance to be passed in to instantiate TinkerGraphUtil. Mostly a lot of plumbing fixes in order to route the instantiated TinkerGraphUtil through function calls, etc.
Fixes #152.

It looks very good. I'm just wondering: instead of having a graph passed as argument in each method, should this class contain a graph internally and have a method to return the graph? For example we'll have:
TinkerGraphUtil tgu = new TinkerGraphUtil();
tgu.addNode(n);
tgu.addEdge(e);
tgu.getGraph(); //  returns the TinkerGraph

instead of:
TinkerGraph tg = new TinkerGraph();
TinkerGraphUtil tgu = new TinkerGraphUtil();
tgu.addNode(tg, n);
tgu.addEdge(tg, e);

What do you think?

Sorry this took so long. I had to deal with some emergencies and only just got back to this.
The new TinkerGraphUtil API stores and modifies TinkerGraph internally, and can return it with getGraph(). I also removed the requirement to pass in a TinkerGraphUtil or CurieUtil to CsvWriter and TsvWriter, since some methods in TinkerGraphUtil do not access the internal members and can remain static.
This pull request depends on #210, so please merge that one before this one. Thanks!

Ah okay, don't worry about it then, I'll have a look later on!
Thanks for the good work!
On Tue, Mar 14, 2017 at 11:18 AM, Ben Booth<EMAIL_ADDRESS>wrote:

@benwbooth commented on this pull request.
In SciGraph-core/src/main/java/io/scigraph/internal/TinkerGraphUtil.java
https://github.com/SciGraph/SciGraph/pull/211#discussion_r105988500:

}

public static TinkerGraph resultToGraph(Result result) {
TinkerGraph graph = new TinkerGraph();

public Graph resultToGraph(Result result) {

Hmm this doesn't compile for me. addElement is not a method of
TinkerGraph. I could add static variants of addElement, addNode,
copyProperties, etc. but copyProperties requires a curieUtil, which might
complicate things.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/SciGraph/SciGraph/pull/211#discussion_r105988500, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEHMGOAT61km1e__CvUGS9Y7vSbgWF3pks5rltoQgaJpZM4MBBAL
.


add build step

Code in this repository uses ES6 syntax and features. There should be an npm build step, compiling to ES5 compatible code.

Implemented on master (v0.3.0).


Reduce npm module size by removing devDependencies

I am currently trying to reduce our node_module folder with 53 MB hapi-sequelize is our biggest dependency.
53M    ./hapi-sequelize/node_modules
53M    ./hapi-sequelize

I saw that the published packages include all devDependencies. I would think that this is not required and love to see future npm packages published without the devDependencies.
Installing the node_module manually without the devDependencies reduces the size to 3 MB :)

Is this a possible fix for you?

Hey team, I'm using NPM 5.x and also facing an issue which is think is related. My guess is that it's due to your npm-shrinkwrap.json that contains way too many extraneous dependencies (was it because of an older version of Sequelize?), 180 to be exact. IMHO this should be deleted or replaced by a cleaner package-lock.json.
Initially after npm install, the npm module size is 49 Mb and is indeed the biggest of my project.
So I manually went cleaning the extraneous packages into my generated package-lock.json, and ended with these:
  "hapi-sequelize": {
      "version": "3.0.4",
      "resolved": "https://registry.npmjs.org/hapi-sequelize/-/hapi-sequelize-3.0.4.tgz",
      "integrity": "sha1-MRExUK9LWT6Pfgk7IvEaanaZBNY=",
      "dependencies": {
        "balanced-match": {
          "version": "0.3.0",
          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz",
          "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y="
        },
        "brace-expansion": {
          "version": "1.1.2",
          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz",
          "integrity": "sha1-8hRF0EiLZY4nce/YcO/1HfKfBO8="
        },
        "concat-map": {
          "version": "0.0.1",
          "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
        },
        "glob": {
          "version": "7.0.3",
          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz",
          "integrity": "sha1-CqI1kxpKlqwT1g/6wvuHe9btT1g="
        },
        "hoek": {
          "version": "3.0.4",
          "resolved": "https://registry.npmjs.org/hoek/-/hoek-3.0.4.tgz",
          "integrity": "sha1-Jorf9mu2aVxptHiaiLHghHw/MSM="
        },
        "inflight": {
          "version": "1.0.4",
          "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
          "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo="
        },
        "inherits": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
        },
        "isemail": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.1.0.tgz",
          "integrity": "sha1-f1Qz5GnYj0b7gfg/USDzbfA44v8="
        },
        "joi": {
          "version": "8.1.0",
          "resolved": "https://registry.npmjs.org/joi/-/joi-8.1.0.tgz",
          "integrity": "sha1-WhkJTM5oAJzhGDHzutOh4eCvotE=",
          "dependencies": {
            "hoek": {
              "version": "4.0.0",
              "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.0.0.tgz",
              "integrity": "sha1-NCm9h9lUj9RU5PbIVCiZropB30o="
            }
          }
        },
        "minimatch": {
          "version": "2.0.10",
          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
          "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc="
        },
        "moment": {
          "version": "2.11.2",
          "resolved": "https://registry.npmjs.org/moment/-/moment-2.11.2.tgz",
          "integrity": "sha1-h5aOX5WsA4wuQqyVnHWBnNP1KQE="
        },
        "once": {
          "version": "1.3.3",
          "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
          "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA="
        },
        "topo": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.0.tgz",
          "integrity": "sha1-MVya7bhoytW2FhWWPJ/Qm+kSwe0="
        },
        "wrappy": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
          "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
        }
      }
    },

After this no more extraneous package and the npm module size is 6 Mb.
I'd appreciate if someone could repackage this lib properly.