Revamps Project Structure

This makes some of the changes suggested in #9 by @thealphadollar
I've made the following changes:

Added manage.py  script.
Created a DB model in the user.py file based on the users table in the schema suggested by @grapheo12. The user model is created and a URL to the database needs to be added to run tests.
Created a Dockerfile (Very WIP).

TBD:

Setting up restplus API. I'm still reading about it and I thought it'd be better if that is done once we're done with setting up other tools.
Creating a decorator to check if a user is logged in. We should first set up restplus

@thealphadollar Could you please review the docker file. I just started out with docker and it's difficult working with docker and pipenv. There aren't many resources available tbh.
Could we move to using pip and venv instead till the time we can find some more resources on pipenv along with docker?


AttributeError: 'HTTPError' object has no attribute 'Code'

Im still getting this error while launching: WopiValidatorExecutor. Log says:
09/16/2016 02:07:46 PM : INFO : WOPI Discovery Service Url: https://onenote.officeapps-df.live.com/hosting/discovery
09/16/2016 02:07:46 PM : INFO : Starting new HTTPS connection (1): onenote.officeapps-df.live.com
09/16/2016 02:07:47 PM : DEBUG : "GET /hosting/discovery HTTP/1.1" 200 4223
09/16/2016 02:07:47 PM : INFO : WopiValidator TestEndpoint Url: https://onenote.officeapps-df.live.com/hosting/GetWopiTestInfo.ashx
09/16/2016 02:07:47 PM : INFO : Starting new HTTPS connection (1): onenote.officeapps-df.live.com
09/16/2016 02:07:47 PM : DEBUG : "GET /hosting/GetWopiTestInfo.ashx?testcategory=All&WOPISrc=http%3A%2F%2Flocalhost%3A9000%2Fwopi%2Ffiles%2F12&access_token=eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50SWQiOjEsImZpbGVEb2N1bWVudElkIjoxNiwidG9rZW5UeXBlIjoiV09QSSIsImV4cCI6MTQ3NDAyOTc0MH0.5T82-SWD6aU8rfGCuva6waE11XSi13kvkLmvENr2L3U&access_token_ttl=0 HTTP/1.1" 404 1245

Hi,
Based on our logs, the WOPISrc parameter seesm to be pointing to "localhost". You should use a valid internet domain that exists as part on Microsoft's WOPI allow list.
HTH!
Fabio

Hi Fabio,
I've changed localhost to my domain and still getting same error so I think that's not the root problem. I tried using direct url to test application: https://onenote.officeapps-df.live.com/hosting/GetWopiTestInfo.ashx?testcategory=All&WOPISrc=http://wopi-dev.volanto.pl:10055/wopi/files/12 and still getting 404 as answer.

Hi,
I couldn't find the domain you are using for your WOPI endpoint (volanto.pl) on our internal allow list. Are you already a member of the Office 365 Cloud Storage Partner Program, as described on the link below?
http://wopi.readthedocs.io/en/latest/#using-the-wopi-protocol-to-integrate-with-office-online
Thanks!
Fabio

Since @fabiovazquez answered this question already, and the root problem is that the domain is not on the allow list, I am closing this issue.


[3.3] [android] Fixed wrong button mask for right click

Fixes #51737 for 3.3

Replaced by #51745

Looks correct to me

Thanks!


Fixed the namespace and team name clashes

Currently we have a problem when a user is removed and added back
to Portus. The team and namespace associated with that user are not
removed. So, when an admin tries to create a user or an user tries
to create an account, an error mentioning that there's already a
namespace with that username is shown.
With this patch we avoid that by adding an incremental number to the
end of the name. For example, if username is "brian" and there's
already a namespace/team with that name, "brian0" namespace and team
will be created instead. If "brian" gets removed again, next time it
will be "brian1" for both namespace and team.
Remembering that we should remove this once we implement the
namespace/team removal.
Fixes #1269

@mssola I'm not sure if the approach I went with is the best. Lemme know what you think.

Just realized that a feature test is missing. I'll do that now.

Done! 😃


Increment version for core releases

Increment version for core releases

@KarishmaGhiya Will the bot take care of merging the PR or is one of us expected to merge this?

@ramya-rao-a no we have to manually merge it :)


Implement TCP_QUICKACK

Issue # (if available): #979
Description of changes:
The Nagle algorithm can add artifical delay during the TLS handshake by delaying ACKs.  By setting TCP_QUICKACK as we advance through the handshake state machine means we will not incur the delay penalty and will decrease overall handshake latency
Testing between two instances, I was able to capture a tcpdump between s2nc and s2nd.  Without TCP_QUICKACK the handshake took 84ms.  With TCP_QUICKACK the handshake took 5ms.
Closes #979
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

:exclamation: No coverage uploaded for pull request head (quickack@8e2ba03). Click here to learn what that means.
The diff coverage is n/a.

updated the saw spec for the low level handshake io.


Try LoginProvisionedDevice on service startup

Verified that this works:

stop service
rm session.json
start service
session.json is back, everything operational

r? @maxtaco

👍


RSDK-7309: Update Status for Board in Flutter SDK

I'm a bit confused with how the widget stuff works, could anyone more familiar with the mobile setup offer suggestions? I want the analogs and digitals to still update regularly if they exist, but the status func is no longer available to poll for that info, it should operate the way other components do, maybe similar to sensor? not super sure


drivers: uart_ns1650: add missing const to config_info

The uart_ns16550 driver casts the pointer to the
device-specific type, which is a violatation of
MISRA 11.8 as it evokes undefined behavior. This
commit fixes the generic pointer stored in struct device
as a pointer-to-const.
Tested with qemu_x86 and qemu_x86_64 tests/drivers/uart_basic_api
Fixes #25260
Signed-off-by: Jennifer Williams<EMAIL_ADDRESS>

@pabigot Thanks for your comment! It helped me. Please take another look, I believe I implemented (something like) what you suggested.

If you fix that (i.e. switch all the uses back to DEV_DATA) then you'll need to set DEV_DATA(dev)->port from DEV_CFG(dev)->devconf.port in the init function.

@pabigot  Thank you, that helps very much. Your suggestion changes many lines in the code, but it makes sense. I will give that a try and push the changes.

Is this being tested on upsquared hardware? I don't have that board, so can't confirm this works.

Ok, this should be better. However, despite passing on qemu_x86 and qemu_x86_64, this is failing for up_squared physical HW. I tested and this is the result:
error: no suitable video mode found.
and nothing else. I'll keep working on it.

In the fullness of time, for the specific case of driver information like MMIO addresses we might need some additional infrastructure to optimize where this information is maintained, rather than having to choose whether to unconditionally put the info in dev data (RAM) or config struct (ROM).
In addition to these hot-plug situations where in some configurations MMIO is only known at runtime, there is virtual memory mappings to consider a la Linux ioremap().
Some thoughts here: https://github.com/zephyrproject-rtos/zephyr/issues/25389

Ok, here is an update addressing the issue @dcpleung pointed out. This is passsing uart_basic_api  tests on qemu_x86, qemu_x86_64, and up_squared.
Also, this passes tests/arch/x86/info/ on up_squared physical HW @pabigot:
*** Booting Zephyr OS build zephyr-v2.2.0-2851-ge50347989c14  ***

info: the Zephyr x86 platform information tool

MULTIBOOT: boot info structure available.
        Flags = 0x00000265
        Basic memory map: lower = 252K, upper = 261120K.
        Extended memory map was at 0x0001008c (672 bytes).
        Framebuffer data not present.

MEMORY MAP: source is Multiboot extended map, max 64 entries
<PHONE_NUMBER>000000 -><PHONE_NUMBER>03efff RAM (252K)
<PHONE_NUMBER>03f000 -><PHONE_NUMBER>03ffff UNKNOWN (4K)
<PHONE_NUMBER>040000 -><PHONE_NUMBER>09dfff RAM (376K)
<PHONE_NUMBER>09e000 -><PHONE_NUMBER>0fffff UNKNOWN (392K)
<PHONE_NUMBER>100000 -> 000000000fffffff RAM (261120K)
<PHONE_NUMBER>000000 -><PHONE_NUMBER>150fff UNKNOWN (34116K)
<PHONE_NUMBER>151000 -><PHONE_NUMBER>b0cfff RAM (1664752K)
<PHONE_NUMBER>b0d000 -><PHONE_NUMBER>c2afff UNKNOWN (33912K)
<PHONE_NUMBER>c2b000 -><PHONE_NUMBER>c43fff ACPI (100K)
<PHONE_NUMBER>c44000 -><PHONE_NUMBER>ca3fff NVS (384K)
<PHONE_NUMBER>ca4000 -> 000000007a040fff UNKNOWN (3700K)
        000000007a041000 -> 000000007a08cfff UNKNOWN (304K)
        000000007a08d000 -> 000000007a3fafff RAM (3512K)
        000000007a3fb000 -> 000000007a3fbfff NVS (4K)
        000000007a3fc000 -> 000000007a425fff UNKNOWN (168K)
        000000007a426000 -> 000000007a964fff RAM (5372K)
        000000007a965000 -> 000000007a966fff UNKNOWN (8K)
        000000007a967000 -> 000000007affffff RAM (6756K)
        000000007b000000 -> 000000007fffffff UNKNOWN (81920K)
        00000000d0000000 -> 00000000d0ffffff UNKNOWN (16384K)
        00000000e0000000 -> 00000000efffffff UNKNOWN (262144K)
        00000000fe042000 -> 00000000fe044fff UNKNOWN (12K)
        00000000fe900000 -> 00000000fe902fff UNKNOWN (12K)
        00000000fec00000 -> 00000000fec00fff UNKNOWN (4K)
        00000000fed01000 -> 00000000fed01fff UNKNOWN (4K)
        00000000fee00000 -> 00000000fee00fff UNKNOWN (4K)
        00000000ff000000 -> 00000000ffffffff UNKNOWN (16384K)
<PHONE_NUMBER>000000 -> 000000017fffffff RAM (2097152K)

        Kernel exclusions:
        0x00100000 -> 0x00103c8b (rom)
        0x00103ca0 -> 0x00105cdc (ram)

ACPI: 4 CPUs found
        CPU #0: APIC ID 0x00
        CPU #1: APIC ID 0x02
        CPU #2: APIC ID 0x04
        CPU #3: APIC ID 0x06

TIMER: new local APIC, configured frequency = 19200000Hz
        Using CMOS RTC as reference clock:
        start = 244646539, end = 263847731, 19201192 cycles
        start = 283049027, end = 302249951, 19200924 cycles
        start = 321452411, end = 340652010, 19199599 cycles
        start = 359854380, end = 379054663, 19200283 cycles
        start = 398255703, end = 417457266, 19201563 cycles
        start = 436658409, end = 455860191, 19201782 cycles
        start = 475060556, end = 494262629, 19202073 cycles
        start = 513462743, end = 532664169, 19201426 cycles
        start = 551865534, end = 571067025, 19201491 cycles
        start = 590268810, end = 609469267, 19200457 cycles
        average = 19201079Hz

info: complete

Hmm. I have a merge conflict detected by shippable. I'll rebase again and restart Shippable.

CI checks are passing, but there is a conflicting file drivers/serial/uart_ns16550.c. I'll rebase and push again.

Ok, here is an update addressing the merge conflict. This is passing uart_basic_api tests on qemu_x86, qemu_x86_64, and up_squared.
Also, this passes tests/arch/x86/info/ on up_squared physical HW.
@dcpleung I recognize this updated patch keeps the whole pcie_probe() part in its existing spot in _configure(). It also has the #ifndef PCIE around the DEV_DATA(dev)->devconf.port assignment in _init(). I had issues with Up2 the other way, but I will keep looking into it - it should not stop release, but could be an enhancement yeah?

fixed gitlint issue (1 single whitepsace...oops)

Actually, overwrite the files with the changes before the rebase. Those are good changes. The only issue left is to assign the port address before calling configure() for non-PCIe cases.

Actually, overwrite the files with the changes before the rebase. Those are good changes. The only issue left is to assign the port address before calling configure() for non-PCIe cases.

Thanks for letting me know! Cool. I will work on that - something is different after making those changes the same way as before, because it does not work on up2 right away. More soon...

ok, here is an update! This does not work on up_squared yet (suggesting it is related to my moving the pcie_probe() chunk from _configure() to here in _init()).  qemu_x86 and qemu_x86_64 work for tests/drivers/uart/uart_basic_api. More soon...

In light of recent activity on #25260 - the issue is resolved by af43e14  and #25462 -  is this PR considered a bug fix or an enhancement?

I'll rebase and push so we can see the up-to-date difference.

ok, here is an update! This does not work on up_squared yet (suggesting it is related to my moving the pcie_probe() chunk from _configure() to here in _init()). qemu_x86 and qemu_x86_64 work for tests/drivers/uart/uart_basic_api. More soon...

still working on with this after rebase.

In light of recent activity on #25260 - the issue is resolved by af43e14 and #25462 - is this PR considered a bug fix or an enhancement?

afaik, this is still a bug, and the PR title does not reflect the changes in this PR, not sure why the original bug was closed, this is confusing. @pabigot ?

In light of recent activity on #25260 - the issue is resolved by af43e14 and #25462 - is this PR considered a bug fix or an enhancement?

afaik, this is still a bug, and the PR title does not reflect the changes in this PR, not sure why the original bug was closed, this is confusing. @pabigot ?

@nashif  #25260 was opened because this driver was assigning to a field that was stored in a  const structure, which would never have worked.  I believe that has been fixed by moving the field to a RAM structure (af43e14bd0dbcdb0595b1e6620f85fd3513a9eaa) and correcting the helper macros to preserve the original const qualifier when casting a void pointer to the immutable configuration data (#25462).
The fix for the original problem in this PR was combined with other refactoring that is still present.

Note; I meant to mention that I need to update the title and commit message based on the feedback if this is still addressing the bug or is an enhancement.

Thanks for keeping this in consideration. I updated the PR and commit message to help reflect the clarifications. There were a few approaches underway for this issue without knowing, it happens. The faster fixes have been merged, but I believe this PR offers an improved/unified approach since we have been able to work on this together for some time now to review and test (WIP). The fixes were originally part of this PR that has developed into richer contribution that help better address the issue.

This does not work on up_squared yet. qemu_x86 and qemu_x86_64 work for tests/drivers/uart/uart_basic_api. More soon...ideas?

The issue has been resolved by #25462 and changes to source code in the meanwhile have rendered this PR enhancements out of date. Let's close it and fresh look at enhancements can be suggested.


fix the new problems

I have fixed the new problems you mentioned and also changed the submit_data() to avoid calling create_df() twice. Please check.

OK I will merge it into main.
Today, I have a meeting with Stefano, Hui, David and Marcello. We check
together and find some problems, some are related to the unit and data,
some about others. I will sort these problems out and send to you all, also
I will solve some of them(relate to data and unit). The others may need
further modification, I think it can be take over by the new team.
After all my modification, I will merge the code together.
Regards
On Wed, Mar 15, 2023 at 21:24 Federico Tartarini @.***>
wrote:

Merged #150
https://github.com/CenterForTheBuiltEnvironment/clima/pull/150 into
main.
—
Reply to this email directly, view it on GitHub
https://github.com/CenterForTheBuiltEnvironment/clima/pull/150#event-8762727715,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYHJ7R3CINXXKU2BADXI5CTW4KIYDANCNFSM6AAAAAAV3QO6Y4
.
You are receiving this because you authored the thread.Message ID:
@.***
.com>

I have already merged your code, if you find some additional issues, please list them in the issue that is currently open so anyone who is working on that can collaborate with you.


JBPM-5233: Data source management

- Adds the ability of using the data sources defined in KIE wb by the dashbuilder.

Hello @dgutierr  would you mid review this PR. It basically adds a component to let the dashbuilder know the datasources geneated in the WB.
Thanks.

+1


Flash fallback positioning incorrect when file input is located within modal

Sadly I must support IE9 for this project I am working on, I have managed to get the flash fallback working, but have noticed that the positioning is off due to the file input being contained within a modal. The flash fallback gets prepended to the  element, is there a way to adjust this so it prepends to the modal?
I could do this manually, but wanted to first check there is not a clever built in way of fixing it.

Not sure what you mean by prepend to the modal.
Could you create a jsfiddle.


”Brâncovenești” is listed in the drop-down menu

Description:
"Brâncovenești" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Brâncovenești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Brâncovenești, MUREȘ".


How can I use reSize in ReactJS?

Hi,
Does anyone know how to set resize event in ReactJS?
Thanks!

If you give your component an id in the config.
...
 content:[{
       type:'react-component',
       component: 'test-component',
       props: { label: 'A' },
       id: "myId"
     },{
...

Then you can use
myLayout.root.getItemsById( 'myId')[0].container.on( 'resize', function(){
    console.log("resized")
});

Thanks for the reply!!!
import React from 'react';
import { connect } from 'react-redux';
import GoldenLayout from 'golden-layout';
import {
  fetchActiveVideo,
  onHighlightColorSelection,
  onHighlightPlay,
} from '../actions/ActiveVideoActions';
import {
  onVideoPause,
  onVideoPlay,
} from '../actions/VideoPlayerActions';
import {
  onHighlightTextSelection,
} from '../actions/TranscriptActions';
import VideoPlayer from '../components/VideoPlayer';
import Transcript from '../components/Transcript';
import FilmstripWrapper from '../components/FilmstripWrapper';

let myLayout;

class ActiveVideo extends React.Component {

  constructor(props) {
    super(props);
    this.test = this.test.bind(this);
  }

  componentWillMount() {
    myLayout = new GoldenLayout({
      settings: {
        constrainDragToContainer: false,
        reorderEnabled: true,
        selectionEnabled: false,
        showPopoutIcon: false,
        showMaximiseIcon: false,
        showCloseIcon: false,
      },
      content: [{
        type: 'row',
        content: [{
          type: 'react-component',
          component: 'Transcript',
          props: {
            activeVideo: this.props.activeVideo,
            onHighlightTextSelection: this.props.onHighlightTextSelection,
          },
          isClosable: false,
          title: 'Transcript',
        }, {
          type: 'column',
          content: [{
            type: 'react-component',
            component: 'VideoPlayer',
            props: {
              activeVideo: this.props.activeVideo,
              onVideoPause: this.props.onVideoPause,
              onVideoPlay: this.props.onVideoPlay,
            },
            id: 'FilmStrip',
            isClosable: false,
            title: 'Video Player',
          }, {
            type: 'react-component',
            component: 'FilmstripWrapper',
            isClosable: false,
            title: 'Filmstrip',
          }],
        }],
      }],
    });
    this.props.fetchActiveVideo(this.props.params.id);
    myLayout.registerComponent('Transcript', Transcript);
    myLayout.registerComponent('VideoPlayer', VideoPlayer);
    myLayout.registerComponent('FilmstripWrapper', FilmstripWrapper);
  }

  componentDidMount() {
    myLayout.root.getItemsById('FilmStrip')[0].container.on('resize', () => {
      console.log('rezie');
    });
  }

  test() {
    myLayout.init();
  }

  render() {
    return (

        {this.test()}

    );
  }
}

However, I get error like:
Uncaught TypeError: Cannot read property 'getItemsById' of null

What I want to achieve is, when the container resizes (in this case FilmStrip), I can pass the height and width to the child components. Is this the right way to achieve this function?
Thanks!

The layout is not yet initialised in componentDidMount so there is no root.
You can call the myLayout.init(); before the listener in componentDidMount and it should then have a root

Thank you!!! I also need to add a time delay to check whether root element is rendered or not, not sure whether it is the best practice or not.
One more question, is there any way I can access to container's height and width inside the onResize callback function?
() => {
    console.log('rezie');
});

I tried to use
myLayout.root.getItemsById('test')[0].container.height
myLayout.root.getItemsById('test')[0].container.width

but it gives me ReferenceError: myLayout is not defined error
Thanks!

I figured this out. I just post my code in case other people also want to achieve the same function:
myLayout.registerComponent( 'test-component', TestComponent );
myLayout.init();

var delayMillis = 1000; //1 second

setTimeout(function() {
  const test = myLayout.root.getItemsById('test')[0].container;
  console.log(myLayout.root.getItemsById('test')[0].container.height);
  console.log(myLayout.root.getItemsById('test')[0].container.width);
  myLayout.root.getItemsById('test')[0].container.on('resize', () => {
    console.log(test.width);
    console.log(test.height);
  });
}, delayMillis);

Is this the best practice?

You should also be able to access "this" inside the event listener.

sorry to bother you. but i can't find a proper way to send the value into components.
Here is the simplest example of what i want to achieve.
import React from 'react';
import GoldenLayout from 'golden-layout';

const myLayout = new GoldenLayout({
  content: [{
    type: 'row',
    content:[{
      type:'react-component',
      component: 'test-component',
      props: { label: 'A' }
    },{
      type: 'column',
      content:[{
        type:'react-component',
        component: 'test-component',
        props: { label: 'B' }
      },{
        type:'react-component',
        component: 'test-component',
        props: { label: 'C' },
        id: 'test',
      }]
    }]
  }]
});

const TestComponent = React.createClass({
  componentWillMount: function() {
    this.props.glEventHub.on( 'test', this.setUser );
  },
  componentWillUnmount: function() {
    this.props.glEventHub.off( 'test', this.setUser );
  },
  setUser: function( userData ) {
    this.setState( userData );
  },
  render: function() {
    return (
{this.props.label}
)
  }
});

myLayout.registerComponent( 'test-component', TestComponent );

//Once all components are registered, call
myLayout.init();

var delayMillis = 1000; //1 second

setTimeout(function() {
  const test = myLayout.root.getItemsById('test')[0].container;
  myLayout.root.getItemsById('test')[0].container.on('resize', () => {
    myLayout.emit('test', 1);
  });
}, delayMillis);

What I want to achieve is, I will register a set of onResize listeners after myLayout is created. When resize event occur, it will get the new height and width (I need to use those 2 values to render the child components to filled the container).
I feel like there are 2 possible solutions.

Change the props filed of the configuration file on fly?

{
type:'react-component',
component: 'test-component',
props: { label: 'C' },
id: 'test',
}

Make myLayout emit the event with new dimension information and let child node catch that.

But I cannot achieve either of those functions.
Would you mind to give me some suggestions how I can achieve this?
Thanks!

I find the way to implement this. I will just close this for now. Thanks!

@JunyuanZheng How did you solve your problem? I also do not change the properties

@azotklas I can't remember, i am not using this library anymore.


Bztools issue 64

https://github.com/mozilla/relman-auto-nag/issues/64

Coverage increased (+1.6%) to 46.605% when pulling 43edfeea37b2106a98a64b1bb4d22d5f3a8ad9a9 on anoopvalluthadam:bztools_issue_64 into 1a45f2434178343742334e02b43163d11c766972 on mozilla:master.

great, thanks!


Fix getCurrency method to return the correct currency when there is a failed scan

Details

Show the correct currency symbol when editing the transaction amount when this transaction has a failed scan
Fixed Issues

$ https://github.com/Expensify/App/issues/33258
PROPOSAL: https://github.com/Expensify/App/issues/33258#issuecomment-1861932910
Tests

Navigate to https://dev.new.expensify.com:8082/
Log in
Head to any chat
Create a request money
Choose Scan with a faulty picture (e.g. a book) and click on the "Request" button
Wait till the scan fails
Click on the Amount details required
The currency symbol in the input would the default currency from the transaction

[x] Verify that no errors appear in the JS console

Offline tests

Navigate to https://dev.new.expensify.com:8082/
Log in
Head to any chat
Turn off your network connection
Create a request money
Choose Scan with a faulty picture (e.g. a book) and click on the "Request" button
Turn on your network connection
Wait till the scan fails
Click on the Amount details required
The currency symbol in the input would the default currency from the transaction

[x] Verify that no errors appear in the JS console

QA Steps

Navigate to https://staging.new.expensify.com/
Log in
Head to any chat
Create a request money
Choose Scan with a faulty picture (e.g. a book) and click on the "Request" button
Wait till the scan fails
Click on the Amount details required
The currency symbol in the input would the default currency from the transaction

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Screenshot with the failed scan

Android: Native

https://github.com/Expensify/App/assets/698363/80a7e35c-bffa-49f2-b366-4ed65f58f9c6

Android: mWeb Chrome

https://github.com/Expensify/App/assets/698363/d399b682-4f98-47d7-b036-6b0e152c8b45

iOS: Native

https://github.com/Expensify/App/assets/698363/1147d6f1-6172-4ec2-b956-a0d4d4caf9af

iOS: mWeb Safari

https://github.com/Expensify/App/assets/698363/652f2ae7-6313-42dc-8c3f-cf1917e0ed6e

MacOS: Chrome / Safari
Chrome
https://github.com/Expensify/App/assets/698363/eefc6591-ce1b-4ec3-8741-89ac8621b9f3
Safari
https://github.com/Expensify/App/assets/698363/846e7dac-35c6-4945-9930-3f207eba4fa4

MacOS: Desktop

https://github.com/Expensify/App/assets/698363/46079a2d-ded2-48ef-9d29-9d44c4644e33

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Hi @aldo-expensify if you have any questions or suggestions, please let me know.

hmm a test seems to be failing:
Summary of all failing tests
FAIL tests/unit/TransactionUtilsTest.ts
  ● TransactionUtils › getCurrency › when the transaction has a receipt with a failed scan › returns the created currency

    expect(received).toEqual(expected) // deep equality

    Expected: "BRL"
    Received: "USD"

      [82](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:83) |                 const result = TransactionUtils.getCurrency(transaction);
      [83](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:84) |
    > [84](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:85) |                 expect(result).toEqual(expectedResult);
         |                                ^
      [85](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:86) |             });
      [86](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:87) |         });
      [87](https://github.com/Expensify/App/actions/runs/7481248190/job/20362450408?pr=33853#step:6:88) |

      at Object.toEqual (tests/unit/TransactionUtilsTest.ts:84:32)

@wlegolas You can hold a bit on fixing the tests if you want, I wanted to explore a bit more the idea of fixing this in the backend now that I see that the modifiedCurrency is the problem

@wlegolas You can hold a bit on fixing the tests if you want, I wanted to explore a bit more the idea of fixing this in the backend now that I see that the modifiedCurrency is the problem. If I fix this in the backend, then we won't need to introduce these exceptions here. Having a modifiedCurrency that we decide to ignore under some conditions tell me that maybe we shouldn't have added that modifiedCurrency in the first place.

Hi @aldo-expensify do you have updates about it?

Hi @aldo-expensify do you have updates about it?

Sorry not yet, I have been continuously kicking this for later, I'll try to check today or tomorrow.

I started doing some tests with Expensiworks and Smartscan yesterday, but I haven't been able to test properly this case yet.

For some reason when I test the FAILEDSCAN flow in dev, the transaction doesn't get a modifiedCurrency, so I can't reproduce the bug there. In staging it is getting modifiedCurrency 🤔


larsimmisch/avr is deprecated

Just getting started with this and following the instructions on the readme to setup the avr tools.
A bunch of home-brew warnings led me to find out that the larsimmisch/avr tap is deprecated in favour of osx-cross/homebrew-avr

Thanks for raising the issue !
Maybe you'd want to take the credit for fixing this via a PR ? :D

Hey, I'm having the same issue in 2020. osx-cross/homebrew-avr does not include an actual Xcode template, like X-AVR. I know I somehow got X-AVR working on my other machine about a year ago, before I sold it – but I can't remember what I did.
Plus, why is the other repository favoured… when it's not even a template like this repository????

Thanks for raising the issue !
Maybe you'd want to take the credit for fixing this via a PR ? :D

@jawher so probably I can do that :D
But tell me one thing, where is that path(I mean, path to the executables from larsimmisch/avr) saved?

Thanks for raising the issue !
Maybe you'd want to take the credit for fixing this via a PR ? :D

@jawher so probably I can do that :D
But tell me one thing, where is that path(I mean, path to the executables from larsimmisch/avr) saved?


feat: check if there's a winner

have a function that checks on every state update
it will check gridState technically
possible outcomes are: player 1 wins, player 2 wins, no one has won yet, or game over and it's a tie.

no one has won yet -> let's call that "continue_game"


rewrite erroneously changes package names for jsr305

I have a java class that uses com.google.code.findbugs:jsr305:3.0.2
import javax.annotation.concurrent.Immutable;

@Immutable
...

The rewrite-micronaut recipe erroneously changes the import to jakarta.annotation.concurrent.Immutable

Hey @wetted -- Thanks for reporting this. What version of the rewrite-maven-plugin (or rewrite-gradle-plugin) are you using + what version of the rewrite-micronaut dependency are you using?
If the versions are behind, could you try bumping the version of the plugins and rewrite-micronaut dependency to the latest release versions and re-run it?

@aegershman
I was using 5.14.0 of the gradle plugin and 1.3.0 of the Micronaut rewrite recipe. I upgraded to the latest recipe, v1.4.0 and that seems to resolve the issue for me.
Sorry for the false alarm. I just used the example config given by https://docs.openrewrite.org/tutorials/migrate-to-micronaut-3-from-micronaut-2#example-configuration. You might want update that example documentation to reflect the latest recipe version.

No need for apologies, thank you for reporting this-- we should have displayed the updated version out there. I'm going to update that documentation now. I'll go ahead and close this out, though 👍  Feel free to open issues, we appreciate it


Add a NonceCache interface to check nonces and prevent replay attacks

fixes LIG-4117

Merge activity

Jan 23, 8:25 PM: @shreyav started a stack merge that includes this pull request via Graphite.


nit: update rel1.25 changelog after PR27296

Commit Message:
update changelog after PR27296
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:

/retest


Remove the term "mainland"

The term "mainland China" implies the existence of non-mainland Chinese territories.
This boils down to implying that Hong Kong and/or Taiwan are part of China.
In my opinion it's best to not use a term with these implications.
Just "China" already implies the exclusion of Hong Kong and Taiwan, as they are not part of China.

"Mainland China" (中国大陆) is the term Nintendo/Tencent use for the region (see the region selector, terms of use, and repair policy), and is also how 神奇宝贝百科 refers to the region. It's ambiguous to refer to it as simply the "Chinese" release when the versions that were released in Hong Kong, Macau, and Taiwan also feature a Chinese localization and translation, especially when these write-ups primarily compare the Chinese version released by Tencent domestically with the Chinese version released internationally.


rust: add support for armv6l-linux and armv7l-linux

Motivation for this change
Extremely similar to #72480, except with a different mapping function name and location, bootstrap tarball hashes for armv6l, and another platform string fixup in .cargo/config.
Note that the rust does not build on armv6l right now because bootstrap rustc segfaults while building libc since the upgrade (of the bootstrap compiler) to 1.38.0.
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 nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers

1.39.0 does not build on armv6l or armv7l due to https://github.com/rust-lang/rust/issues/62896/. I was able to successfully build 1.38.0 for armv6l.


Remove FPSTR in response to ESP32 Arduino 1.0.3 (ESP-IDF 3.2) Release

See
https://github.com/espressif/arduino-esp32/releases/tag/1.0.3
https://github.com/espressif/arduino-esp32/commit/56ce580b0e7a25085a1fc967dcb76053920872df#diff-27c0a05748835628a0db5fd1dce485a9

Quick and better solution already provided


Bump okio version to 3.6.0

Purpose

Bump Okio version to 3.6.0

Related Issue

https://github.com/wso2/product-is/issues/17755

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/6846802082

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/6846802082
Status: failure


ALText html features and True font

I like the ALText component that supports html, but I have a problem how to implement html break lines with  or it doesn't work.
then the next thing how to make the fontstyle follow the font used at design time, I followed the reference on youtube to make modifications to the FMX.FontGlyphs.Android.pas file. I tried making it using the TText component successfully, but with ALText it didn't work. The following is the sample repository link that I created

Just one question, with the normal system font (so without patching the FMX.FontGlyphs.Android.pas) does it's work as expected ? as far as I see the break line work in your sample, but it's look like you want 2 break lines to have space between paragraph, so try to replace your #13#10 by #13#10#13#10 (so add 2 breaklines instead of one)

without using a patch file the case is still the same. for break lines I've tried it by adding #13#10#13#10 but it will only be text #13#10#13#10 which is also displayed. what you see in the picture above is because ALText in WordWrap mode enables and follows the screen dimensions.

this is look rotate screen

@aam4gian you are on ios or android ? is it the case in all platform? Can you try to replace the #13#10 by  ?

I only tried it on an Android device. just using  it also doesn't have any effect, but it still has the same problem.

can you try on windows ?

I've tried it on windows, it still doesn't work
altext.zip

Hello, everything has been fixed in the latest committed version.


Add nil checks on the controller module for underlying app

Description

closes: #2040

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[x] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Codecov Report

Merging #2102 (248f449) into main (05c4bfb) will increase coverage by 0.00%.
The diff coverage is 93.75%.

@@           Coverage Diff           @@
##             main    #2102   +/-   ##
=======================================
  Coverage   79.94%   79.95%
=======================================
  Files         170      170
  Lines       11801    11811   +10
=======================================
+ Hits         9434     9443    +9
- Misses       1950     1951    +1
  Partials      417      417

Impacted Files
Coverage Δ

...7-interchain-accounts/controller/ibc_middleware.go
85.29% <93.75%> (+0.81%)
:arrow_up:

Could you add a changelog entry indicating nil apps are allowed in ics27 controller middleware?


Latest release is from July 2017 ??

I wanted to add vegas to a jupyter notebook - but the release is ancient.    Will a newer release be provided ?  If not what are the alternatives for accessing an up-to-date release ?

@aishfenton Any update on this? I can also help with the deployment / release if time is the issue.

Also need the release for scala 2.12,
there is an incompatibility issue when using the 2.11 package with scalac 2.12.8

Any updates on this? The Git history shows the latest release was almost 2 years ago ? Is this library being actively supported?

Is there a release for 2.13?

Looks abandonned, sadly.


Word Bloat Suggestion

The results are too wordy with a lot of redundant words like 'matches' and type of PVP.
I have a suggestion to make it less wordy and more easy to read.
Crystaline Conflict
	x Wins
	x Loss

Frontline
	x 1st Place
	x 2nd Place
	x 3rd Place

	x Daily 1st
	x Daily 2nd
	x Daily 3rd

Rival Wings
	x Wins
	x Loss

Hey, thanks for the suggestion! Good feedback. I'll look at seeing what I can do to condense. I do want to make sure it looks reasonably clear that this isn't the list of things to do, but a list of things one can do, which was why I took the previous approach.

It took downtime before Dawntrail to come back to this, but I've taken your feedback into account with some language and formatting changes. Thanks for your input!


Improve IconPacks Browser with new features

What changed?
This is a proposal for a different IconPacksBrowser. For now not all Features are implemented as it is more meant as a proposal at this moment. Currently this changed:

Use HamburgerMenu instead of TabControl
Use a PreviewPane to display, adjust and (later) export the selected Icon
More space for Icons if needed
DataTemplate is now more "generic". This should lead to less effort if there are more IconPacks added

Screenshots

Closed Issues
Closes #230
Closes #57
Closes #12
Closes #51

@timunie appveyor shows this error
C:\projects\mahapps-metro-iconpacks\src\MahApps.Metro.IconPacks.Browser\MainWindow.xaml(338,11): error MC3000: 'The 'Canvas' start tag on line 315 position 18 does not match the end tag of 'DataTemplate'. Line 338, position 11.' XML is not valid.

It did work and compile, but now the XAML of the MainWindow is totally rubbish. I have no idea what happend here. But if you are interested in this, I'll double-check. If you want to stick with the current design we can also close this PR.
@punker76 please give me a short :+1: or :-1: . :pray:

Here some thoughts (suggestions):

"Filter by" should be always visible, maybe on the right top on the title header of the showing icon page
Save as Svg could be difficult, because some paths are inverted (and not the original one)

Hi @punker76
Thank you for the suggestions. The issue was caused by the last rebase, I'll fix this when I have some time for it. Moving the searchtextbox to the right was also something I was thinking about.

Save as Svg could be difficult, because some paths are inverted (and not the original one)

:thinking: Let's see if there is a way or not. Do you have an example which icon is inverted? I would like to use this for testing
Info: I would like to use the ColorPicker https://github.com/MahApps/MahApps.Metro/pull/3930 to let the user select the colors. So I would also like to wait for this before you merge this PR.
Nevertheless I can make smaller PR for useful features. Especially the DataTemplateSelector seems to be very handy. Should I make a separate PR for this?
Happy coding
Tim

Do you have an example which icon is inverted?
iirc the fontawesome icons are inverted

@punker76 do you mean the following image by

Save as Svg could be difficult, because some paths are inverted (and not the original one)

If yes, I think I know how to export the data in the right direction. We "just" have to translate the LayoutTransform-Matrix to svg.

@punker76 do you mean the following image by

Save as Svg could be difficult, because some paths are inverted (and not the original one)

If yes, I think I know how to export the data in the right direction. We "just" have to translate the LayoutTransform-Matrix to svg.

Here are some exported examples:
Example-Export.zip

Hi @punker76,
should we offer support for custom ExportTemplates and CopyToClipboardTemplates? That way the user could modify the template and for example copy the icon with Width, Height or Foreground set.
Happy coding and a nice weekend
Tim

Hi @punker76 ,
I think I am good to go. Functions which are now implemented are:

other design
search via [Ctrl]+[F]
configure preview size and color
Export icon to svg, xaml and image
Display more icon information
Support for theming
Support for custom Export and CopyToClipboard-Templates.

I which everyone happy coding, happy x-mas 🎄 and a happy new year 🎆
Tim

finally

@timunie your changes have been merged, thanks for your contribution 👍


Future of Djrill (an open letter to Djrill users)

tl;dr

If you are switching ESPs and liked Djrill, take a look at django-anymail.

Djrill is seeking a new maintainer. If none emerges in a few weeks, Djrill will transition to "mature" status. It will receive security updates, but no other maintenance.

For a little over three years, it's been my pleasure to act as Djrill's primary maintainer. However, I won't be continuing in that role. My company is switching to another ESP, and I'll no longer have access to the Mandrill APIs for Djrill development and testing.
If you're a Djrill user switching to another ESP...
Please consider joining us over at django-anymail. Anymail is a Djrill fork that supports Mailgun, Postmark, SendGrid, and (perhaps) other feature-rich transactional ESPs.
Anymail's goal is helping you use those rich ESP features in Pythonic, Djangotic code (like Djrill did), while trying to minimize the pain of switching ESPs. It's meant to be an easy migration from Djrill (at least for your Django code). Testers and contributors welcome!
If you're staying with Mandrill...
... and would be interested in taking over maintenance of Djrill, please get in touch. (My email's in my GitHub profile.)
If no new maintainer emerges in the next few weeks, I'll transition Djrill to "Development Status :: 6 - Mature" in PyPI. It should continue working, unless/until Mandrill retires the API it uses. If any security updates are needed (there's only been one in Djrill's history), I'll do my best to release them. But I can't realistically support new features or even handle maintenance without access to Mandrill's API.
(Incidentally, since some may ask: I did reach out to Mandrill and offer to continue maintaining Djrill, if they'd be able to provide a test API key. Their response was that "testing or developing integrated services" like Djrill doesn't fit with their pivoting business model.)
Either way, thanks!
I've appreciated the participation and support of Djrill's users, and the fixes and truly constructive additions from its contributors over the past three years. Thank you for being part of Djrill.
And a special thanks to Kenneth Love and Chris Jones from brack3t, the original authors of Djrill, who have been nothing but supportive of my role as a maintainer.
Lastly, I'd like to tip my hat to the folks behind Mandrill. While we probably all wish MailChimp had allowed for a more graceful transition period, I can understand their business decision. And I think we've all benefited from Mandrill's influence on the transactional ESP market. Mandrill's introduction (back in May, 2012) brought us highly feature rich, rock solid, developer friendly transactional email, much more affordably than most full-featured transactional ESPs at the time. I have tremendous respect for the Mandrill team's "startup within a large company" experiment, and the nearly four years of value my own startup got from it.
Cheers,
Mike

Thanks for you work! I just switched to django-anymail and Mailgun.

It looks like django-anymail supports mandrill too. Is there any reason to use Djrill for new code? (I only need mandrill support)

@gavinwahl django-anymail would probably be preferred for new code, though hasn't caught up yet to some of Djrill's features (delivery webhooks, inbound email handling, Mandrill templates). And since anymail is focused on common transactional email features, it may never implement all of the detailed Mandrill options that Djrill offers.
However, both anymail and Djrill suffer from the same problem going forward: there's no way for us to test the packages against Mandrill's APIs (without paying $480/year). There's always a risk of developing to API docs without being able to access the actual API for testing and debugging.
If you're confident your project will be staying with Mandrill, another option would be Mandrill's own python API bindings. Although they don't have Django-specific integration like Djrill, presumably MailChimp will be maintaining them and offering support to their customers.

There being no takers for the position of "Djrill maintainer", I'm releasing the (likely) final version of Djrill and marking the project "inactive". (If you're finding this discussion years from now and interested in resurrecting Djrill, feel free to get in touch.)
Otherwise, see you all at Anymail.


[pt-br] Translated page: pod-security-policy #13939

Translation of the Pod Security Policies page into Brazilian Portuguese.
Related Issue:
#13939

Hello @edsondearaujo! Thanks for your contribution!

/lgtm
/cc @stormqueen1990

/lgtm

/cc @edsoncelio
PTAL

/LGTM

/approve


core: makeStaticStyles to support @at-rules

This code:
export default makeStyles({
  ':root': {
    backgroundColor: 'red',
    '@media screen': {
      color: 'blue',
    }
  }
});

Produces this:
.f3xbvq9 {
  background-color: red;
}

@media screen {
  .f16lhzc5 {
    color: blue;
  }
}

While this code:
export default makeStaticStyles({
  ':root': {
    backgroundColor: 'red',
    '@media screen': {
      color: 'blue',
    }
  }
});

Produces this (missing media query):
:root {
  background-color: red;
}

Other functions such as @supports also don't work.
It is not mentioned in documentation that media query is not supported, but even if it isn't, I think it should, as it is rather important.

Indeed, good catch 👍 Would be nice to support it.

@layershifter any plans to implement that? :)

@layershifter any plans to implement that? :)

@FelixWiecz we don't have plans on it currently :(


Homey Extension

Description
Added homey extension
Screencast
https://user-images.githubusercontent.com/3958086/195829062-c259fc4c-d435-4d14-ae90-1edf9e29f044.mp4
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

I added the icons and the loading


Add subtitle under title to header

Hi, I added a subtitle (under title) to my jekyll minima blog. Wondering if it can be added to minima theme. Please let me know what you think. I will create a pull request.
Thank you!

Do you have an example of what it looks like?

Here is the screenshot. I added a subtitle field in _config.yml.
Thank you!

Could you open a PR for this? I'm not entirely sure that I'll add the feature yet but I would like to see your implementation.


PR TEMPLATE Ready

🛠 Fixes Issue : #50

👨💻 Changes proposed:

Adding few more lines in checklist.
Added a section for specific changes done by the contributor.
2022 -> 2023
Fixes Issue with #

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.
[x] I am a participant of Hacktoberfest 2023.

📄 Note to reviewers

📷 Screenshots

@KiranAminPanjwani please review this pull request and requested to merge it under hacktoberfest 2023

@KiranAminPanjwani As i have created this pr 3 days ago, still there is no action on it.
I am requested to review this pr and merge it under hacktoberfest 2023


[Fix proposed] TabView bottom border line is too short

Describe the bug
TabView bottom border line is too short in new styles
Screenshots

Note, that in styles v1 shadow had Grid.ColumnSpan="4", covering LeftContentColumn, TabColumn, AddButtonColumn, RightContentColumn, but in Win11 like styles separator line covers only TabColumn and AddButtonColumn - seems to be simply overlooked

@eugenegff I believe in this case it's caused by having custom content it TabView Footer.
If this is the case, it was done on purpose so users can customize that region without having to be locked in with the provided border. If you need to extend the border in this case, please add the border to your custom content :)

@eugenegff I believe in this case it's caused by having custom content it TabView Footer.
If this is the case, it was done on purpose so users can customize that region without having to be locked in with the provided border. If you need to extend the border in this case, please use TabViewBorderBrush for the bottom border of the footer :)

That TabView is extended into TitleBar as in https://docs.microsoft.com/en-us/windows/apps/design/controls/tab-view sample, there are
                    <muxc:TabView.TabStripHeader>
                        <Grid x:Name="ShellTitlebarInset" Background="Transparent" />
                    </muxc:TabView.TabStripHeader>
                    <muxc:TabView.TabStripFooter>
                        <Grid x:Name="CustomDragRegion" Background="Transparent" />
                    </muxc:TabView.TabStripFooter>

@eugenegff I believe in this case it's caused by having custom content it TabView Footer.
If this is the case, it was done on purpose so users can customize that region without having to be locked in with the provided border. If you need to extend the border in this case, please use TabViewBorderBrush for the bottom border of the footer :)

That TabView is extended into TitleBar as in https://docs.microsoft.com/en-us/windows/apps/design/controls/tab-view sample, there are
                    <muxc:TabView.TabStripHeader>
                        <Grid x:Name="ShellTitlebarInset" Background="Transparent" />
                    </muxc:TabView.TabStripHeader>
                    <muxc:TabView.TabStripFooter>
                        <Grid x:Name="CustomDragRegion" Background="Transparent" />
                    </muxc:TabView.TabStripFooter>

If you insist that such non-intuitive and not backward compatible behavior is by design - then sample should probably be fixed.
Note, that XamlControlsGallery has many samples of TabView without TabStripFooter - all with this visual glitch. It actually forces us to always create TabStripFooter to fix it - and it is not good. OTOH, (rare?) applications that does not want this stroke at TabStripFooter can always hide it under opaque TabStripFooter or override TabViewBorderBrush

Here is screenshot of released app that uses WinUI 2.6 that shows that this visual glitch is regression - WinUI 2.6 has shadow at this place instead of the stroke line, and shadow extends on whole window width

I see now. Yes, you're right - it's not very intuitive and it definitely should span the entire width. :)


[Bug]: Number of Footer is two in ui/ux page.

Describe the bug
In UI/UX page there is two footer and this is not good for user experience.
To Reproduce
Steps :

Go to resource page
Scroll to bottom
Click UI/UX page
Scroll to bottom

Expected Behavior
It should be only one footer.
Screenshot/ Video

Desktop (please complete the following information)
Device - HP
OS - Windows 10
Browser - Chrome
Additional context
No response

Assign to me i solve it.


[test_subprocess]: test_assert with arg "device_assert", "assert", "no_debug", "double_assert" fails to run correctly

This work item is blocked. The IGC compiler has a problem described in https://github.com/intel/intel-xpu-backend-for-triton/issues/256#issuecomment-1907085632

Blocked by https://github.com/intel/intel-xpu-backend-for-triton/issues/358 now. Need IGC version newer or equal than 1.0.15136.*

Verified can be fixed by https://github.com/intel/intel-xpu-backend-for-triton/issues/358.


GH-41179: [Docs] Documentation for Dissociated IPC Protocol

Rationale for this change
Adding documentation for the Experimental Dissociated IPC Protocol for splitting arrow IPC metadata and body data into separate streams for use with newer transports such as UCX and Libfabric.
The relevant mailing list discussion and vote: https://lists.apache.org/thread/k26n1h90b1wy1w5k53whh0t8o4nd0yx7

What changes are included in this PR?
Only documentation changes and images for the Arrow docs site.
I tagged people I thought might be relevant for reviewing, but feel free to tag and add anyone else that might seem relevant to reviewing this. Thanks!

GitHub Issue: #41179

@github-actions crossbow submit preview-docs

http://crossbow.voltrondata.com/pr_docs/41180/format/DissociatedIPC.html
We may need this:
diff --git a/docs/source/format/index.rst b/docs/source/format/index.rst
index 856830d863..44ea3e8e7e 100644
--- a/docs/source/format/index.rst
+++ b/docs/source/format/index.rst
@@ -30,6 +30,7 @@ Specifications
    CDataInterface
    CStreamInterface
    CDeviceDataInterface
+   DissociatedIPC
    Flight
    FlightSql
    ADBC

@github-actions crossbow submit preview-docs

@kou @assignUser Do i need to be added to a different list for crossbow to recognize me? :smile:

You have to set your Apache membership to public for it to recognize you

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@kou do you have any further comments here?

I don't have no more comments for this document!
(I'm still reviewing https://github.com/apache/arrow-experiments/pull/28 ...)

@kou cool, once that gets merged i'll update the link here and, pending you clicking "Approve" on this, I'll merge this after :smile:

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@kou any further comments or am I good here? If you're happy with what I've got here i'll merge it


02 09 Sampling

[x] Introduction
[x] SimPoint/LoopPoint
[x] SimPoint analysis
[x] SimPoint checkpointing
[x] Simpoint restoring
[x] ElFie
[x] ElFie example
[x] SMARTS
[x] SMARTS example
[x] Summary

What hasn't been done

Third party test on materials and go through slides
On slide 2 and  50, it is waiting for a visualization

@powerjg I removed the config files, removed the SimPoint3.2 source files, removed the checkpoints, and added -img to the image directory.


Can't seem to use the removeComponent in the api

I can't seem to be able to use the removeComponent helper available. I can use all the helpers of BlazeComponent object.
When I use removeComponent I get:
Uncaught TypeError: this.removeComponent is not a function(…)

This version has not yet been released.

Released as 0.14.0.


Wiki for examples for using api in python

This repo is amazing no matter how many stars you give they are less
Even a single example is enough in this replu as well
#feature request
Ability to select models from higgingface
like wizard uncensored ggml 7b or 13 b
one varible to setup in compose or web ui then we can chage models like oogaboga it will auto download and we can run it.
Thanks for this amazing project.

@bolavefasfas this project uses llama-cpp-python for the backend, you can see the documentation there.

Thanks @bolavefasfas. The API ports are now exposed (https://github.com/getumbrel/llama-gpt/commit/29199836c455d051a78a6fd574729f8631633ac4) at http://localhost:3001. You can open http://localhost:3001/docs to view the documentation.


Ignoring the output format specified in the jstransformer

I am trying to generate an atom feed using metalsmith-layouts and nunjucks.
When running Metalsmith with debuging on, I get the following error:
metalsmith-layouts validating atom.xml +0ms
metalsmith-layouts validation failed, no jstransformer found for layout for atom.xml +0ms

I assume that metalsmith-layouts tries to find a jstransformer that supports XML files, but unfortunately, jstransformer-nunjucks only has "html" set as its output format.
Do you think that this issue could be addressed by metalsmith-layouts allowing to override or ignore the output format specified in jstransformers. Or should I report this issue to jstransformer-nunjucks?
As a workaround, I assume I can generate my atom feed as atom.html and rename it to atom.xml later.

The error message was caused by a mistake in the template file name. Now I get the following messages:
metalsmith-layouts validating atom.xml +0ms
...
metalsmith-layouts rendering atom.xml with layout atom.njk +0ms
...
metalsmith-layouts done rendering atom.xml +4ms

However, the atom.xml file in my build folder is still empty.

When I rename the source file atom.xml to atom.html, I can a non-empty atom.html file.

It's hard for me to say what's going on exactly without taking a look at your source. All the tests are passing so it seems like everything is working as expected. For doing what you're trying to do here, I'd say metalsmith-layouts is not a good match. Layouts is meant to wrap files in your source folder with a layout. If you're trying to transform content that's in your source folder you'll want metalsmith-in-place.
With that, you could just create something like atom.xml.njk. If you have the nunjucks transformer installed, in-place would then process the nunjucks syntax and remove the .njk extension, meaning you'd end up with atom.xml.
I'll close this issue since this is more a question about usage, and there doesn't seem to be a bug. For further questions try the gitter chat: https://gitter.im/metalsmith/community. If you do encounter a bug, please open a PR with a failing test. Thanks!

If you're trying to transform content that's in your source folder you'll want metalsmith-in-place.

It's not exactly what I was trying to do.
I had a file atom.xml in my source folder that looked like this:
---
layout: atom.njk
---

and a file atom.njk in my templates folder.

With that, you could just create something like atom.xml.njk

Yes. This solution works for me.
However, it does not explain why metalsmith-layouts did not work.

I'll close this issue since this is more a question about usage, and there doesn't seem to be a bug.

For your information, I was updating a site that used the old metalsmith-templates plugin.
Migrating to metalsmith-layouts, with the same sources and templates, worked fine except for the atom.xml file.
So, from my point of view, I still consider that there is a bug.
I will try to reproduce the issue with a minimal example and I'll send you a PR.

It's not exactly what I was trying to do.
I had a file atom.xml in my source folder that looked like this:
---
layout: atom.njk
---

and a file atom.njk in my templates folder.

I understand. Metalsmith-in-place is still better suited to that usecase. If there's no content in atom.xml then it's more straightforward to just place the contents of atom.njk in atom.xml and use in-place. Layouts is just sugar for templating engines that don't support inheritance like handlebars, you don't need it for nunjucks.

Yes. This solution works for me.
However, it does not explain why metalsmith-layouts did not work.

True, that's hard to assess for me without a look at your source.

For your information, I was updating a site that used the old metalsmith-templates plugin.
Migrating to metalsmith-layouts, with the same sources and templates, worked fine except for the atom.xml file.
So, from my point of view, I still consider that there is a bug.
I will try to reproduce the issue with a minimal example and I'll send you a PR.

Metalsmith-templates is very different from the current versions of layouts and in-place, so be aware differences are expected. Templates did not look at extensions, but used an engine configured in the options. It was also based on consolidate instead of jstransformers.
If you've encountered a bug, please make sure that the usecase is supported by the goals outlined in the readme and open a PR with a failing test that demonstrates the bug you've found.


Fix missing default export declaration

Using react-on-screen in a TypeScript-based project
import TrackVisibility from 'react-on-screen';

results in error
(2,8): Module '"/path/to/project/node_modules/react-on-screen/index"' has no default export.

Coverage remained the same at 100.0% when pulling d72384f78790f6985b6ec3c621546e68249e2a38 on jahson:master into 63e0a0101210d5eb636a3fd53d7db54282547806 on fkhadra:master.


How to get detailed model for standard semi 5MW floating wind turbine

Dear all,
I want to work on the structural analysis for FOWT platform(combined with FEM software and hydrodynamic software). While I am confused that there are no detailed model for FOWT, so that I can not analyze the structural problem. I wander if NREL have provided the detailed model about standard semi 5MW FOWT(including the internal structure of platform)?
Best regards,

Dear @YangLeiTH,
When both SubDyn and HydroDyn are enabled, OpenFAST can consider the floating substructure as a flexible structure, including hydroelastic effects for calculating internal member-level loads, where the structure is represented as series of structural elements like beam, cable, or rigid link interconnected by joints like cantilevered, pin, universal or ball.  So, the member-level loads that can be calculated including forces and moments at each cross section of the structure.  Detailed structural analysis in terms of hydrodynamic pressure distributions and stress and strain of structural details beyond those listed above are not directly considered in OpenFAST.
That said, NREL is in discussion with other developers regarding adding interfaces to OpenFAST so that the detailed structural calculations could be calculated in the future.
Best regards,

Dear @jjonkman
As we known, some commercial software like Homer can have already solved the detailed structural calculation. However, as for stress and strain of structural details, it need to master the detailed drawing of structure, instead of series of structural elements. I wander how you find the detailed drawing of structure if you want to calculate the stress and strain of structural details. Or the detailed drawing of standard semi 5MW floating wind turbine can be public?
Best regards,

Dear @YangLeiTH,
I'm not aware of public information containing detailed structural drawings of the DeepCwind semisubmersible supporting the NREL 5-MW baseline wind turbine or for similar reference floating substructure models.  You'll may need to develop these yourself based on your own assumptions about the structural details.
Best regards,

Rear @jjonkman
Thank you very much!
Best regards,


The canvas result should generate the correct canvas dimensions

Generating a result via canvas creates a data/image which correctly contains the viewport selected, however, the actual image dimensions do not match.  Could the created canvas have the same dimensions as the viewport?  This would eliminate the need for re-sizing.

I can see the need for specifying the result size when the result is of canvas type.  However, I think the default behavior should be to return the viewport at the native size of the image.
At first I was thinking we could pass a type, width, height into the result method.  But I'm not sure the width and height make sense, since we probably want to maintain the aspect ratio of the cropped image.  Maybe the result method could take in an object like so:
{
type: 'html|canvas', // default canvas
size: 'original|viewport' //default original
}

Would this solve your problem @nicosiamike ?


Vim 9, mouse=a and virtualedit=all does not work properly

Steps to reproduce

:set mouse=a
:set ve=all
Add some lines to the buffer

Click anywhere (any col) of an empty row, and see the cursor is place at the end of line.
See: https://s3-eu-west-1.amazonaws.com/jack12816/public/videos/vid-2022-08-08-213516.webm
Expected behaviour
In Vim 8 (8.2.4827) this places the cursor at the clicked col, after the end of line.
Version of Vim
9.0 Included patches: 1-135
Environment
OS: Arch
Terminal: Alacritty + GVim
Value of $TERM: xterm-256color
Shell: Bash
Logs and stack traces
No response

In Vim 8 (8.2.4827) this places the cursor at the clicked col, after the end of line.

Here is the list of patches containing "mouse" in their commit messages (after 8.2.4827):

8.2.4902  mouse wheel scrolling is inconsistent
8.2.4916  mouse in Insert mode test fails
8.2.4922  mouse test fails on MS-Windows
8.2.4936  MS-Windows: mouse coordinates for scroll event are wrong
8.2.4964  MS-Windows GUI: mouse event test is flaky
8.2.4965  GUI: testing mouse move event depends on screen cell size
8.2.4966  MS-Windows GUI: mouse event test gets extra event
8.2.4967  MS-Windows GUI: mouse event test sometimes fails
9.0.0048  cursor in wrong column with mouse click after concealed text
9.0.0136  after CTRL-Left-mouse click a mouse scroll also has CTRL

Can you bisect the issue to one of them?  9.0.0048 seems the most likely culprit.

9.0.0048 seems the most likely culprit.

You're right. 9.0.0047 works fine but not 9.0.0048.


Incompatibility when proxying CORS/Ajax solution

To reproduce with the fantastic http://todobackend.com/ comparison portal's test harness:
git clone git@github.com:moredip/todo-backend-py.git
cd todo-backend-py/
pip install web.py
hoverctl start
hoverctl mode capture
python todo-backend.py

In a browser, setup the proxy server to point to hoverfly. BUT change the excludes section. It probably says "don't proxy localhost". We don't want that, we want to hoverfly to explicitly record that. Instead we want to exclude the test harness from being captured - so change the 'don't-proxy' to be todobackend.com instead of localhost.
Then in the same browser window, open http://todobackend.com/specs/index.html?http://localhost:8080 to run the test harness.
Should take 2 seconds and be all 'green' suggesting that the test harness thinks the backend conforms to spec.
It isn't though - the thing takes a couple of minutes because of timeouts, and is a bunch of failing tests.
If you take out the browsers proxy changes (to facilitate hoverfly) then everything passes as expected.
Note: there are many tens of implementations on http://todobackend.com/ but the web.py one I chose doesn't need a database setup (it's doing it all in memory) and is therefore easy to use. Be aware though that the author set up web.py incorrectly, and you might need to find the python process in ps aux to kill it if control-c isn't responding.

Hey @paul-hammant,
Follow the steps provided, I was unable to get todo-backend.py to pass against todobackend.com's test suite without introducing Hoverfly.
Could you possibly provide more information regarding todo-backend.py as I would been keen to see the suite passing against todo-backend.py before I start investigating this issue.

My bad - copy/paste error. Bug report above updated. Specifically
http://todobackend.com/specs/index.html?https://localhost:8080 changed to
http://todobackend.com/specs/index.html?http://localhost:8080

Excellent, thanks @paul-hammant!
I am experiencing the same issues now. I will investigate and report back.

Having looked into this issue, it turns out that during a refactor of the core architecture, POST and PUT requests being proxied forward do not contain their original request bodies.
This bug only effects v0.10.0 of Hoverfly.
I will implement tests and fix as soon as possible. I will update this ticket when a new release has been published.

Yay!

So I have fixed the issue with request bodies which is now on fix-post-put-bodies.
Rerunning the todobackend test suite passed first time with Hoverfly capturing.
After switching Hoverfly to simulate mode and rerunning the test suite again resulted in a failure. Several of the test failures are about missing properties, incorrect lengths and several of the PATCH requests failed.
I will further investigate the PATCH request failures. Regarding the other failures, I believe these are due to stateful requests, which Hoverfly does not currently support.

Sure there are stateful requests. I might take the recorded set into a 3GL of choice and morph it further until the test harness passes.
Hoverfly can be reprogrammed with expectations between tests right?

Currently, expectations are not within Hoverfly. Although, we are planning to introduce a validation API that will allow you to inspect Hoverfly after a test to determine whether certain requests have been made.

So don't you have all the expectations you need already? pseduocode:
test123() {
   when("/foo/bar/1").thenReply("text/json", "{ 'val':true }");
   performSomeInteractionOne();
   when("/foo/bar/1").thenReply(404);
   try {
       performSomeInteractionTwo();
       fail("should have barfed");
   } catch(404) {
      // expected
   }
}

Hey Benji - is there a chance you could record a video of you talking thru the stubbing of Pete's todomvc-backend?  It'd be

here is the web.py version of todomvc working with the UI
here is the web-py version of todomvc working with the test-harness
here is the browser's reconfiguration to allow Hoverfly to capture
here is the captured traffic saved to a directory
here is a (naive) attempt to use that captured session to allow the test-harness to pass again, but
with no web.py todomvc-backend involved.
a short suggestion as to what the next steps to would be for a team that wanted to complete it.

It seems silly to use a test-harness to verify a mock, but there's some method to the madness - http://paulhammant.com/2015/12/17/more-on-technology-compatibility-kits-in-app-development/

Correct me if I'm wrong, but the problem I see here is that we're recording stateful interactions:
So we do GET http://localhost:8080/todo -> []
Then later on we do GET http://localhost:8080/todo -> [{"title":"walk the dog","id":2,"completed":false,"order":null,"url":"http://localhost:8080/todo/2"}]
The problem is both requests are identical, so when we record one overrides the other. As of yet we can't think of an intelligent way to record this type of behaviour, but would be open to suggestions.
However, you can change the data (expectations) within Hoverfly whenever you want via an API call. This can also be orchestrated via the CLI or a language binding such as the one we have in Java. So if you were writing a test, you could change the data as you go along, just like your example.

The capture mode, recording everything in a journal manner, wouldn't be useful for simulation mode reuse. But a programmable Hoverfly wouldn't care or know about the whole journal. One test or interaction at a time the testing logic (Java, C#, Python etc) would inform Hoverfly of the next set of expectations. The exported simulation, would have to show all the interactions, for it to be helpful, not a map/dict version with key uniqueness.
So, I'm asking for the 'simulation export' (subject to optional CLI args) to give the whole timeline.  And that there's also a 'programmable' mode, that takes only what it needs to respond next (which could easily be map/dict centric, as it's going to get reprogrammed constantly through the test suite.

It seems there may be some different use-cases and possibly some implicit performance NFRs here so we need to pick them apart and clarify.

@ph-ms If you want to change the expectations during each test run you can do this using the Java language binding. Something like this:
@ClassRule
public static HoverflyRule hoverflyRule = HoverflyRule.inSimulateMode(empty())

@Test
public void shouldCompletePurchaseWhenFraudCheckPasses() {
  // Given
  hoverflyRule.simulate(dsl(
    service("www.payments.com")
        .post("/api/bookings")
        .body(json(new Payment("foo")))
        .willReturn(success(json(new PaymentConfirmation(1)))),
    service("www.fraud.com")
        .get("/api/fraud/")
        .query("?foo=bar")
        .willReturn(success())
  ));

  // When
  someMethodUnderTest()

  // Then
  someAssertion()
}

Or with other languages, you can just use the API directly and do:
PUT <hoverfly-host>:<hoverfly-admin-port>/api/v2/simulation <simulation-json>
To set the data the at any time (i.e between tests)
I think this is synonymous to a 'programmable mode'.
If you want to be able to record  a journal, that could be something we introduce. At first I thought:
hoverctl mode capture --journal
But now I am thinking, maybe always write to a journal. It's easily transformed into a simulation (last matcher wins)?
One problem I foresee is that when you do have a journal, and there's lots of requests, it would be hard to look through all captured requests and responses, and cherry pick which ones you need for each test. How would you want to do this?

Hey @paul-hammant,
(v0.10.1)[https://github.com/SpectoLabs/hoverfly/releases/tag/v0.10.1] of Hoverfly has just been released which includes the bug fix I mentioned earlier in this ticket regarding the request bodies on POST/PUT requests not properly being proxied through to your Python application in test.

Great work, thanks!

Closing this. I'm also going to lock it as it is a composite issue and confusing. Please open new issues and cross-reference if we've missed something.


Enable OS agnostic tests

With this PR, I introduce another variable in the OS-specific tests to easily allow recreating these tests for other OSs. Currently, the OS var is only available as Ubuntu and can be retrieved via the fixture operating_system_ubuntu. In the future, the value of the OS var should be tied to the used marker.
In addition, I use this PR to adapt method names and order to increase readability. This also included removing the unused method get_all_roadmap_names_to_generate and slimming the method generate_and_save_all_roadmaps_in.

Thanks for your effort to improve the CI/CD pipeline better. 👍🏼


Handle update and clarify merge - samples and dataclasses

Rationale
Merge has been misrepresented as Update in the product UI for ease of understanding, which causes confusion when users are expecting an update action. This PR includes the api/server side work to support Update from file for dataclasses and samples.
Note that this PR only add limited supports for samples and dataclass updates. Dataset and lists update support will be completed in a follow up pr. Advanced features such as file watcher, storage data import, indexer will also be in a follow up story.
Related Pull Requests

https://github.com/LabKey/labkey-ui-components/pull/1065
https://github.com/LabKey/platform/pull/3949
https://github.com/LabKey/labbook/pull/355
https://github.com/LabKey/sampleManagement/pull/1493
https://github.com/LabKey/biologics/pull/1817

Changes

modified ExistingDataRecordIterator to be able to check if all provided are existing data for UPDATE action, as well as checking for Cross folder items for UPDATE and MERGE
added SampleUpdateAliquotedFromDataIterator to fetch AliquotedFromLSID for samples during UPDATE so that AliquotedFrom don't need to be provided by users
added ImportWithUpdateDerivationDataIterator to handle input/outputs during UPDATE
don't empty out columns that are absent during UPDATE
don't check for required fields for UPDATE
use Update trigger type for UPDATE

I may be wrong, but the only place I see that we can make use of ImportOption.UPDATE is via AbstractQueryImportAction (and subclasses).  Is there a plan for API support?  We can do that as part of another story, but it would be odd to support in the UI but not in the API.

It would be great to have a junit test for InsertOption.UPDATE generically, and the SM special cases.

It would be great to have a junit test for InsertOption.UPDATE generically, and the SM special cases.

Junit tests added for samples, dataclass and list:
https://github.com/LabKey/platform/pull/3949/commits/8ca7b14fa949073260b0c4d34a310d6fc5fea5b0
For LKSM use cases, I did add junit test that uses detailed logging. The other piece that I'm not able to simulate is the "Projects" feature (the check for cross folder data), since it's based on site configuration. I'll defer that to integration test.

I may be wrong, but the only place I see that we can make use of ImportOption.UPDATE is via AbstractQueryImportAction (and subclasses). Is there a plan for API support? We can do that as part of another story, but it would be odd to support in the UI but not in the API.

By API, do you mean the updateRows api? Or some import api? If the former, there is a follow up story to use data iterators to do bulk updates.


allow custom lab prefix

This PR allows setting a custom prefix for the lab, instead of clab.
The prefix is configured in the topology file using field prefix.
For e.g:
name: lab1
prefix: custom-prefix
topology:
  nodes:
    node1:

node1 longName will be custom-prefix-lab1-node1
the lab directory will be custom-prefix-lab1

If not set ( not present ) the default clab is used.
If present and set to "", the default does not apply. In this case, the node longName will be lab1-node1 and the lab directory will be lab1
The prefix value impacts the nodes longName, the hosts entries, the lab directory name,.. but it does not impact the docker labels, those still have prefix clab-

thanks, really nice one!


Fix DPP install copying entire source tree root include/ in its install directory when added as a subdirectory

Currently, using DPP as a subdirectory through CMake's add_subdirectory command has DPP's install script resolve from the base of the entire source tree, resulting in grabbing the parent project's include/ folder, as well as other subdirectories' include/ folder, potentially causing errors.
This pull request changes references in the install script to the DPP directory from ${CMAKE_SOURCE_DIR}, aka the top level of the entire source tree, to ${CMAKE_CURRENT_SOURCE_DIR}/.., simply the parent directory of the script, resolving this issue.

Hi, thanks for contributing! Could you also replace other instances of CMAKE_SOURCE_DIR? I doubt there's any need for it to reference it from the top-level, though it will depend on the context still.
Thanks again

Will try to over the weekend. Installation still works for me on Windows both using Ninja and MSVC.

Here it is. I am however very unfamiliar with the process for ARM, nor do I have the ability to test it ; please double check that the changes on cmake/ARM*ToolChain.cmake didn't break anything, thank you!

Thanks!


Exception in <file.stt.status> line 8: with sr.AudioFile(filename) as source: ^ AttributeError: 'NoneType' object has no attribute 'close'

/config/pyscript/stt.py
import speech_recognition as sr

@service
def status(filename="audio.wav"):
  # initialize the recognizer
  r = sr.Recognizer()
  # open the file
  with sr.AudioFile(filename) as source:
    # listen for the data (load audio to memory)
    audio_data = r.record(source)
    # recognize (convert from speech to text)
    text = r.recognize_google(audio_data)
    log.info(text)

/config/pyscript/requirements.txt
SpeechRecognition
pydub

"audio.wav" is in /config/pyscript.
When I run the service, however, I get
Exception in <file.stt.status> line 8: with sr.AudioFile(filename) as source: ^ AttributeError: 'NoneType' object has no attribute 'close'

my guess is that the filename you are providing can't be found. I think python is running in the config directory so your file would need to be there, not in the pyscript folder


Provide more detailed on-chain error messages for failed API calls

Closes #1502.
Adds 3 possible error messages depending on the AxiosError (note the API error message is not being relayed to avoid publishing sensitive information as explained in this comment):

"with status code X"
"with no response"
"in building the request"

Tested with the airnode-client-dev image on Goerli with the same setup as described in #1502 and the error message now includes the 404 status code for the price request of a nonexistent coin:
API call failed with status code 404

Hi @dcroote, I am currently testing the issue and wanted to ask about when to expect the error in building the request and how that can be repreoduced. I'm using Beeceptor to mock responses and this works with returning a status code. Could you please advise?
I'm also thinking it could be practical to return all or at least several more error status codes (say, there's the openweather example and when you have a bad api key, it sends back an error status code so knowing that could be quite informative for the user).

Hi @martinkolenic - of the three error messages added ("with status code X", "with no response", and "in building the request"), the first two are the most relevant to test, with the third considered an unlikely fallback. I haven't used Beeceptor, but if you could return different status codes from the API, those should appear in the error message written on chain, like for this Goerli transaction. For the second error message, I imagine that could be tested if Beeceptor has a way to have a long delay / timeout in responding to a request.

Hi Derek, thanks for the information. Beeceptor does allow delayed responses and setting it to about 600 actually did the trick. Here's a formal test report:
Test 1: Check for status code messages
Environment: local eth node, local Airnode, beeceptor API response mocking
Steps: Modify the coingecko example to send requests to a mock Beeceptor endpoint, set up the endpoint to return the 404 code for any request; make request with the local Airnode; change to another code and repeat the request
Expected result: Receive more informative error messages for status codes 404, 301, 403 and 409
Actual result: Matches expected results
Test 2: Check for timeout message presence
Environment: local eth node, local Airnode, beeceptor API response mocking
Steps: Modify the coingecko example to send requests to a mock Beeceptor endpoint, set up the endpoint to return a 200 code with a 600 second response; make request with the local Airnode; wait if the request times out
Expected result: Receive a timeout message
Actual result: Matches expected results


Change units from px to rem / em / ...

How to change units if it possibles in gulp config?
Or I can make it manually with separating mixin out of general scss file and change units there, BUT mixiты operate with some kind array indexes and I need value by this indexes to recalculate....
The place where I want change units:
@mixin sprite-width($sprite) {
	width: nth($sprite, 5);
  }

  @mixin sprite-height($sprite) {
	height: nth($sprite, 6);
  }

Unfortunately, we don't support changing units via configuration. Your intuition is right, overriding or defining custom mixins is the easiest option. There's also options like defining a custom template/extending an existing one
To expand on the overriding mixins point, this can be done by:
// Import our spritesmith variables and mixins
@import 'sprites.scss';

// Perform our overrides
@mixin sprite-width($sprite) {
  width: nth($sprite, 5)rem;
}

@mixin sprite-height($sprite) {
  height: nth($sprite, 6)rem;
}

If we need to utilize additional variables (I see something about array indexes in your initial description), then I'd recommend using the scss-maps format and defining our own mixins entirely:
// In `gulpfile.js`, set up custom format
// https://github.com/twolfson/spritesheet-templates#templates
gulpSpritesmith({
  cssFormat: 'scss_maps'
})

@mixin sprite($sprite, $data) {
  @include sprite-image($sprite);
  @include sprite-position($sprite);
  if ($data == 1) {
    width: map-get($sprite, 'width')px;
    height: map-get($sprite, 'height')px;
  } else {
    width: map-get($sprite, 'width')rem;
    height: map-get($sprite, 'height')rem;
  }
}


The mod doesnt work

There are no new commands when i use it

Should be fixed with latest version.

Should be fixed with latest version.