Create DataSource model

Summary
Add a structural migration that implements the new DataSource table,
intended to deprecate and later remove a number of fields on the
existing Page model.
This retirement will happen across a number of stages:

Creating the new DataSource structural model.
Running a data migration to copy data from the Page table to the
DataSource model; at the same time, update views to start referencing
the DataSource table for future reads and writes.
Drop the existing data source columns from the Page table.

Ticket
https://trello.com/c/yV12Lu7Z/949

@TheDoubleK going to leave the back_populates stuff for another ticket. So this should be good now.


Indicate Triton Server requirement in basic usage docs

Fixes #588.

I think this might be a duplicate of #598 which was merged and now includes Triton launch instructions loading only the sid-minibert model, and I'm not sure adding an additional link helps much.
The link included is broken as it goes up two directory levels instead of just one (probably my fault as I've been moving stuff around).

Closing per David's suggestion.


jest tests for server commands

fixes #208

Do you think we need to test the other server commands?  I'm not sure how we'd check start unless we capture the process and kill it or something.  But I figure build will probably capture 99% of the same thing? wdyt?

yeah i think this is the 99% case... if this works start is very likely to work.
I don't think it would be too hard to start the server and kill it if we want to do that in the future though (https://nodejs.org/api/child_process.html#subprocesskillsignal). Another way to do it would be with start-server-and-test like in CI, but rather than running dev.js, it would run mailing server.


Found 2 bugs

It's currently possible to change the instructions while the game is playing :

Screencast from 27-04-2024 15:27:06.webm

If the player selects an action and completes a level, he keeps the ability to place the last selected action even if its not available in the next level.
e.g. if the player select the f2 button and completes the level, even if in the next level there is no f2 function he can still place f2 actions.

Screencast from 27-04-2024 15:28:15.webm

Fixed ✅


first pass at adding tests for installing flocker-dockerplugin

we need some bare bones tests for the recently added flocker docker plugin install commits.

LGTM


Setting V2G false

Pushing out V2G technology for cars to see more battery storage in our system as proposed by Tom

i directly changed this in main. However, at least in 365H resolution, still no stationary batteries are being built. Maybe this will change with higher temporal resolution


If pattern starts with word, force word boundary

For example the pattern
int :[var]

In this case, it shouldn't match the text "lint ball"
Check how Comby behaves

Comby matches and doesn't force word boundary. My thought is can give more context, such as leading spaces
:[ ] int :[var]

Closing since don't plan to implement


File path problem

FileNotFoundError                         Traceback (most recent call last)
 in
1 if args['do_train']:
----> 2     train_dataset = load_and_cache_examples(task, tokenizer)
3     global_step, tr_loss = train(train_dataset, model, tokenizer)
4     logger.info(" global_step = %s, average loss = %s", global_step, tr_loss)
 in load_and_cache_examples(task, tokenizer, evaluate)
13         logger.info("Creating features from dataset file at %s", args['data_dir'])
14         label_list = processor.get_labels()
---> 15         examples = processor.get_dev_examples(args['data_dir']) if evaluate else processor.get_train_examples(args['data_dir'])
16
17         if name == "main":
~\data\utils.py in get_train_examples(self, data_dir)
98         """See base class."""
99         return self._create_examples(
--> 100             self._read_tsv(os.path.join(data_dir, "train.tsv")), "train")
101
102     def get_dev_examples(self, data_dir):
~\data\utils.py in _read_tsv(cls, input_file, quotechar)
82     def _read_tsv(cls, input_file, quotechar=None):
83         """Reads a tab separated value file."""
---> 84         with open(input_file, "r", encoding="utf-8-sig") as f:
85             reader = csv.reader(f, delimiter="\t", quotechar=quotechar)
86             lines = []
FileNotFoundError: [Errno 2] No such file or directory: 'data/train.tsv'
I have the train.tsv file under this file path but the code from this step
if args['do_train']:
train_dataset = load_and_cache_examples(task, tokenizer)
global_step, tr_loss = train(train_dataset, model, tokenizer)
logger.info(" global_step = %s, average loss = %s", global_step, tr_loss)
is giving me the error above. How can I edit the code so that this error isn't appearing?

I can't reproduce this error. It works for me as long as the train.tsv file is present. Try printing out the contents of the data directory from inside the notebook to check if filepaths are correct.
import os

print(os.listdir('data/')

Is data the name of the folder that all of these files go into?

The data folder contains the data files only. It should be at the same level as the notebook.
Also, that link is to a file on your local machine.


Support for optional slugs

Since Statamic 3.2.27, slugs can be optional. However, currently, the database table prohibits entries with missing slugs.
If someone tries to save an entry from a collection that has no slugs, it leads to this exception:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'slug' cannot be null

Can you check this against v1? I think this issue can be closed.


Docs improvements

Going deeper in some APIs response.
Couple fix on resposes type.

This looks great. Ill pull and push to the website now

TY Isa


[feature][jdbc] Jdbc database support identifier

Purpose of this pull request

Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

This ci error is not my error, and why my e2e is not triggering the ci

Related documents need to be updated

Do we need to add this in the jdbc doc？

Done !

Related documents need to be updated

Done！


Why MuJoCo instead of pyBullet?

No offense but just wondered wouldn't be more great using bullet3&pyBullet as baseline for this project since it's open source and better community support in general

@ugurkanates Hi! I'm not sure if you're still interested in pybullet version. But, I've released new datasets collected in pybullet environments!
https://github.com/takuseno/d4rl-pybullet
If it looks good to you, I'd be happy:)

Thats great to know


Add section on inactivity

Description

This clarifies what activity is and how it's measured.
rendered version: https://github.com/jacobweinstock/proposals/blob/0024-community-membership/proposals/0024/GOVERNANCE.md
Why is this needed

Fixes: #
How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:
I have:

[ ] updated the documentation and/or roadmap (if required)
[ ] added unit or e2e tests
[ ] provided instructions on how to upgrade

View rendered proposals/0024/GOVERNANCE.md
View rendered proposals/0024/README.md

@jacobweinstock - what do you think about switching to a time duration that is easily observable?
https://github.com/google/pullsheet can do arbitrary values, but it requires someone to run it locally.

Hey @tstromberg, I've played around with https://github.com/google/pullsheet. I think I can make the time duration different than what cncf dev stats gives us. Let me play with pullsheet a bit to see what numbers I can get.

update:
I've found some existing scripts that will query devstats with arbitrary time ranges.
see these:

https://www.giters.com/cncf/devstats/issues/309
https://github.com/cncf/devstatscode/blob/master/devel/api_dev_act_cnt_repos.sh

I've modified it a touch to work with tinkerbell repos. This will allow us to query for 8 months.
see here:
https://gist.github.com/jacobweinstock/f63f2dc9f32fe00a0aab08bcd7798bf5

I've created a doc outlining one possible way we can go about bootstrapping the roles described in this proposal. I will also bring this up at the next community meeting.
https://docs.google.com/document/d/1Y4RPFZ0smaSLVmK178Q7fStrLQhdi8Y1BrmRmvZHWkU/edit?usp=sharing

This has been open for 6 months. Given that there have been no objections, I propose that any other required reviewers approve as-is, and we iterate on boomerang clause/role bootstraping in a successive PR/revision

We'll have to revise https://github.com/orgs/tinkerbell/teams to best fit this structure post-merge.
Anything else that you are aware of @jacobweinstock, @nshalman?


Update generic error message to be less misleading when opening empty folders.

Beforehand: very nice app you've got there :)
I encountered a permission error after I created a new folder and cd'd into it. After creating another folder inside that folder, the error disappears and everything's hunky-dory.
I attached screenshots according to the error.
Greetz
Nico

Hi, thanks for your bug report.
The error message you are seeing is the generic access error message which also appears when opening empty folders.
I'll try to add empty folders as a special case so the message is less misleading in this case.

(finally) fixed in cf722dc651252dd084f89822a689d2c292073844


Install - fails

Hi
I have tried Debian 10(default PHP 7.3.x) and Ubuntu 18.04 (default PHP 7.2.x)
Both installation have been on brand new installs. both do not not create any Mysql tables (should they - documentation is not clear)
No errors I can find.
Let me know what information you need - as I really would like to use your software.
Thanks
Andrew

Did you follow exactly the instructions on the website. What happens after you hit Setup in the Setup-Wizzard. Helpful would be the Apache access and error log.

Did you follow exactly the instructions on the website. What happens after you hit Setup in the Setup-Wizzard. Helpful would be the Apache access and error log.

Hi
Thanks for getting back to me.
I setup mysql with a database and password - so its ready to go.
Apache setup as per your documentation with php-json and pecl install for acpu
root@ubuntu18-test:/var/www/powerdns/backend/config# php -m | grep json
json
root@ubuntu18-test:/var/www/powerdns/backend/config# php -m | grep apcu
apcu
root@ubuntu18-test:/var/www/powerdns/backend/config#
fqdn\setup - I fill in the details and it then returns to the login prompt.
no apache errors in the log
but no tables are created during the setup phase.
also I am able to login with any credentials.
Andrew

Hi
Thanks for getting back to me.
I setup mysql with a database and password - so its ready to go.
Apache setup as per your documentation with php-json and pecl install for acpu
root@ubuntu18-test:/var/www/powerdns/backend/config# php -m | grep json
json
root@ubuntu18-test:/var/www/powerdns/backend/config# php -m | grep apcu
apcu
root@ubuntu18-test:/var/www/powerdns/backend/config#
fqdn\setup - I fill in the details and it then returns to the login prompt.
no apache errors in the log
but no tables are created during the setup phase.
also I am able to login with any credentials.
Andrew

here are the logs from apache
apache.log

here are the logs from apache
apache.log

I guess there is some configuration error in your apache config. Since the call to /api/v1/setup returns HTTP Code 200 which is not a code that is returned by the API for that endpoint. So my guess is that pdnsmanager is not called but instead some arbitrary response from the server is received.
What do you get if you visit https://example.com/api/v1/remote/servertime?

I guess there is some configuration error in your apache config. Since the call to /api/v1/setup returns HTTP Code 200 which is not a code that is returned by the API for that endpoint. So my guess is that pdnsmanager is not called but instead some arbitrary response from the server is received.
What do you get if you visit https://example.com/api/v1/remote/servertime?

<IP_ADDRESS> - - [04/Jan/2021:10:49:12 +0000] "GET /app/v1/remote/servertime? HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
^C
this is the apache config used.
root@ubuntu18-test:/var/www/powerdns/backend/config# cat /etc/apache2/sites-enabled/pdns.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName testpdns.gosport.local
DocumentRoot /var/www/powerdns/frontend

RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule !^/api/\.* /index.html [L]

Alias /api /var/www/powerdns/backend/public
<Directory /var/www/powerdns/backend/public>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
</Directory>

CustomLog /var/log/apache2/testpdns.gosport.local-access.log combined
ErrorLog /var/log/apache2/testpdns.gosport.local-error.log

<IP_ADDRESS> - - [04/Jan/2021:10:49:12 +0000] "GET /app/v1/remote/servertime? HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
^C
this is the apache config used.
root@ubuntu18-test:/var/www/powerdns/backend/config# cat /etc/apache2/sites-enabled/pdns.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName testpdns.gosport.local
DocumentRoot /var/www/powerdns/frontend

RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule !^/api/\.* /index.html [L]

Alias /api /var/www/powerdns/backend/public
<Directory /var/www/powerdns/backend/public>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
</Directory>

CustomLog /var/log/apache2/testpdns.gosport.local-access.log combined
ErrorLog /var/log/apache2/testpdns.gosport.local-error.log

<IP_ADDRESS> - - [04/Jan/2021:10:49:12 +0000] "GET /app/v1/remote/servertime? HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"

I am interested what you see in your browser, not in the log this time.
Your config looks sane, is there something in your error log?

<IP_ADDRESS> - - [04/Jan/2021:10:49:12 +0000] "GET /app/v1/remote/servertime? HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"

I am interested what you see in your browser, not in the log this time.
Your config looks sane, is there something in your error log?

error log is empty.

error log is empty.

the first picture is after
the second picture is before.

the first picture is after
the second picture is before.

That seems to be that the rewrite does not work. Do you have mod_rewrite enabled in apache?

That seems to be that the rewrite does not work. Do you have mod_rewrite enabled in apache?

Yes - apache would not start until it was enabled.
root@ubuntu18-test:/var/www/powerdns/backend/config# apachectl -M
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
root@ubuntu18-test:/var/www/powerdns/backend/config# apachectl -M | grep rewr
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
rewrite_module (shared)
root@ubuntu18-test:/var/www/powerdns/backend/config#

Yes - apache would not start until it was enabled.
root@ubuntu18-test:/var/www/powerdns/backend/config# apachectl -M
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
root@ubuntu18-test:/var/www/powerdns/backend/config# apachectl -M | grep rewr
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
rewrite_module (shared)
root@ubuntu18-test:/var/www/powerdns/backend/config#

Then I really have no clue on what is going wrong for you. But the call to https://example.com/api/v1/remote/servertime should return you a JSON document with a Unix timestamp. It seems that either the Alias or rewriting does not work for you... But I do not know why. For me a fresh installation on Ubuntu 18.04 with the website tutorial does work without problems.

Then I really have no clue on what is going wrong for you. But the call to https://example.com/api/v1/remote/servertime should return you a JSON document with a Unix timestamp. It seems that either the Alias or rewriting does not work for you... But I do not know why. For me a fresh installation on Ubuntu 18.04 with the website tutorial does work without problems.

Ok - will try and debug the rewrite - thank you for the help - at least I now know im not going mad. !!

Ok - will try and debug the rewrite - thank you for the help - at least I now know im not going mad. !!

Also

can you tell me - before I install pdnsmanager do you expect there to be a working pdns mysql installation ?

Also

can you tell me - before I install pdnsmanager do you expect there to be a working pdns mysql installation ?

Your URL for curl is wrong and therefore everything else does not work. You should habe /api not /app

Please use codeblocks so that your answer is readable.
Your URL for curl is wrong and therefore everything else does not work. You should habe /api not /app

ok - my fault
somehow missed the installation of php for apache2, and this created the tables in my database along with an entry for the admin user I setup.
however when I login I see

api now works - sorry about that.

ok - my fault
somehow missed the installation of php for apache2, and this created the tables in my database along with an entry for the admin user I setup.
however when I login I see

api now works - sorry about that.

Go to the developer console an check the requests made for errors.

Go to the developer console an check the requests made for errors.

I dont know how to do that
but do you mean F12 in the browser and check "console"
if so
this is all I see

I dont know how to do that
but do you mean F12 in the browser and check "console"
if so
this is all I see

Yeah but you need to go to the network tab.

Yeah but you need to go to the network tab.

Dont know what im loooking for
do you want me to post what I see ?

Dont know what im loooking for
do you want me to post what I see ?

Yes open that tab then do a fresh login. All HTTP calls done by the application should be there.

Yes open that tab then do a fresh login. All HTTP calls done by the application should be there.

I dont see any errors

I dont see any errors

Can you post a screenshot of them?

Can you post a screenshot of them?

I got it working on Debian - by adding apache2 php and php-dev and libmodphp
did the same on ubuntu

I got it working on Debian - by adding apache2 php and php-dev and libmodphp
did the same on ubuntu

also looking at the contents of the data on network - it had credentials in it, especially the session data.
suspect its because the http not https

also looking at the contents of the data on network - it had credentials in it, especially the session data.
suspect its because the http not https


Implement ADR 25: IBC Passive Channels

Implement ADR 025 - IBC passive Channels

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

This may be obsolete now. I managed to get all this functionality (passively watching all channels on a given connection) simply by adding a packetConnection attribute to sendpackets and acknowledgement events: https://github.com/cosmos/cosmos-sdk/pull/8458
This is enough for our ts-relayer to handle two channels

Closing since I believe the desired features are already supported. Please let me know if I am incorrect in this assumption


Update CUDA to 7.5.18

Split from #13842.  This now includes a proper uninstall stanza.

I'm not sure why this seems to fail still.  Can anyone help?

I think that this cask installation can be automated by using the installer :script:
  installer :script => "CUDAMacOSXInstaller.app/Contents/MacOS/CUDAMacOSXInstaller",
            :args => [ '--accept-eula', '--silent' ]

The source: http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-mac-os-x/#install

Thanks!  I'll make that change as soon as I get back to my machine.  :)

It still seems to be failing for no apparent reason.  D:

Thank you for the contribution. It was merged directly as 24d6cb64114f80ca1b264a3c0b610b87d81aa160 to keep commit history cleaner. Your contribution is still credited to you.

Thanks!  :)


gc-tag should use label, not annotation

Garbage collection works by listing everything with the gc-tag. In a busy cluster, we really want that filter to happen server-side and ideally using an index of some sort.
That means we should use a Kubernetes label, not an annotation.
I think this will require a two-step migration plan (write both but continue to read annotation; release; drop support for annotation; release).

@gotwarlost points out in qbec's version of garbage collection that the Service->Endpoints controller copies labels across, but not annotations.
We will need to ensure that we don't garbage collect Endpoints unnecessarily (deserves an explicit integration test case).  The fix probably involves recording "kubecfg created this object as <group/kind>" annotation, and then double-checking the resource is both marked and the original kind before deleting.  Note this also means Deployments will only be deleted via the original apigroup (currently kubecfg's uid logic makes this safe).

nice trick with the annotation check. I'll incorporate some version of this in qbec soon. Arguably I already have this info in the last-applied annotation that stores the pristine object.

Hi @anguslees
Any update on the progress of phase 2 for this, having kubecfg retrieve every resource for each resource type is extremely inefficient when the cluster has even a few hundred unique resources.


Jest testing fails using Ionic React Beta with create-react-app

Bug Report
I get an error with Jest testing if I create a new React application using create-react-app and add Ionic imports according to the announcement here:
https://blog.ionicframework.com/announcing-the-ionic-react-beta/?utm_campaign=React%2BNewsletter&utm_medium=email&utm_source=React_Newsletter_150
Ionic version:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Current behavior:
The application runs fine but when I run through the instructions to create an Ionic project using create-react-app, I end up with Jest tests that fail with a 'SyntaxError: Unexpected token export' around one of the @ionic/react imports.
Expected behavior:
Testing with Jest is an important part of any React project and it would be useful if either this just worked, or there was a documented method to work around this problem, particularly with create-react-app which obviously has limitations on the configuration.
Steps to reproduce:
Please refer to the blog post documented above.
Other information:
I happen to be using a Mac and Yarn, but the error is a typical JS module type of problem so I doubt this is relevant.

I am using jest testing on the project itself with a series of mocks to get around this issue for now.  You will need to create a mock folder at the base of your project. Please reference the contents of this directory: https://github.com/ionic-team/ionic/tree/master/react/mocks  and please let me know if this works for you.

We identified the root cause in @ionic/core and ionicons and will be making releases to fix those packages.

I realise that Ionic React is still in beta, so thank you for looking into this Josh. I wasn't able to make the __mocks__ solution work for me, but I did find that I was able to get the tests running by making this adjustment to the package.json scripts entries, generated by create-react-app:
"scripts": {
   "start": "react-scripts start",
   "build": "react-scripts build",
   "test": "react-scripts test --transformIgnorePatterns \"node_modules/(?!(@ionic))/\"",
   "eject": "react-scripts eject"
}

I'll look forward to a more solid solution appearing in the ionic codebase.

As a followup this is also an issue for ionic/vue

I was able to bypass the Unexpected token: export error by setting transformIgnorePatterns to a RegExp that excludes ionic & ionicons, so Jest start to transpile them:
npm test -- src/app --transformIgnorePatterns 'node_modules/(?!(@ionic|ionicons))'

But then I encountered this error:
  TypeError: (0 , _ionicons.addIcons) is not a function

And it looks very similar to what I get when I try to use @ionic/react in Storybook. There is a detailed ticket about Storybook, maybe it can help: https://github.com/ionic-team/ionicons/issues/670.

Needs Vue tag and an update to the title as it's not React specific

@anatoliyarkhipov
You'll have to mock the addIcons part. I was only able to finally run my tests after using this repo as reference (by @michaeltintiuc )
You'll see that it has a mock folder to mock some parts of ionic.
After that, you MAY run into issues while trying to use some other ionic features. For example, right now I'm having trouble with toastController getting a null reference of document. I guess that's because it opens async, and well, you cant' mock $ionic, since it's installed at the same moment that you add the ionic components. I'll have a look into it later.
P.S.: We COULD have a way to add only ionic/vue components, without creating the $ionic inside the Vue instance... Would be easier to mock it tests.

I wasn't able to get this working with __mocks__, only with @anatoliyarkhipov 's suggestion of using
npm test -- src/app --transformIgnorePatterns 'node_modules/(?!(@ionic|ionicons))'
Would be nice to get this working out of the box, so looking forward to a proper fix 😄

Problem running jest on Ionic React project written in Typescript.
Error:
➜  ionic-react-test git:(master) ✗ npx jest
 FAIL  src/App.test.tsx
  ● Test suite failed to run

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

    By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

    Here's what you can do:
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/en/configuration.html

    Details:

    /mnt/c/Users/[redacted]/Projects/ionic-react-test/node_modules/@ionic/react/dist/index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from './components';
                                                                                ^^^^^^

    SyntaxError: Unexpected token export

      1 | import React from 'react';
      2 | import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
    > 3 | import { IonApp, IonPage } from '@ionic/react';
        | ^
      4 | import<EMAIL_ADDRESS>      5 | import<EMAIL_ADDRESS>      6 | import './App.css';

      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:471:17)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:513:25)
      at Object.<anonymous> (src/App.tsx:3:1)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.774s
Ran all test suites.

package.json:
{
  "name": "my-react-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@capacitor/android": "^1.0.0",
    "@capacitor/cli": "1.0.0-beta.24",
    "@capacitor/core": "^1.0.0",
    "@ionic/core": "^4.4.2",
    "@ionic/pwa-elements": "^1.3.0",
    "@ionic/react": "0.0.5",
    "@stencil/core": "^0.18.1",
    "@types/nanoid": "^2.0.0",
    "@types/node": "12.0.2",
    "@types/react": "16.8.17",
    "@types/react-dom": "16.8.4",
    "@types/react-redux": "^7.0.9",
    "@types/react-router-dom": "^4.3.3",
    "nanoid": "^2.0.3",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-redux": "^7.0.3",
    "react-router-dom": "^5.0.0",
    "react-scripts": "3.0.1",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "jest",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/jest": "^24.0.13",
    "@types/react-test-renderer": "^16.8.1",
    "jest": "^24.8.0",
    "react-test-renderer": "^16.8.6",
    "ts-jest": "^24.0.2",
    "typescript": "^3.4.5"
  },
  "jest": {
    "preset": "ts-jest",
    "testEnvironment": "node",
    "transformIgnorePatterns": [
      "/node_modules/"
    ],
    "transform": {
      "^.+\\.tsx?$": "ts-jest"
    }
  }
}

tsconfig.json:
{
  "compilerOptions": {
    "target": "es6",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react",
    "noErrorTruncation": true
  },
  "include": [
    "src"
  ]
}

I'm trying to integrate @ionic/react in our own framework and the build still fails with this message. It seems there were no changes to ionicons regarding the build process since February @jthoms1?

Using --transformIgnorePatterns 'node_modules/(?!(@ionic|ionicons))' works to solve the first issue, but now i'm getting
Details:

    /node_modules/@ionic/react/node_modules/ionicons/dist/ionicons/svg/ios-add-circle-outline.svg:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M346.5 240H272v-74.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-74.5c-8.8 0-16 6-16 16s7.5 16 16 16H240v74.5c0 9.5 7 16 16 16s16-7.2 16-16V272h74.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>
                                                                                ^
SyntaxError: Unexpected token <

FYI: The link that Josh provided above is not quite right.  The correct link is:
https://github.com/ionic-team/ionic/tree/master/react/__mocks__

I've added an issue and PR for the failing tests on the latest release of Ionic React and starter projects:
https://github.com/ionic-team/starters/issues/821

Tests should now pass in apps created with the CLI in Ionic React RC0+. Going to close this, but if you still see the issue let us know.


gnu(10584)=5921

Constructed a list of length 5920
It contains 5919 groups and 1 sublists
Length of sublists are [ 2 ]
5920<=gnu(10584)<=5921
Runtime of this construction: 1975710 ms (32.92 min)
Now checking non-isomorphism of groups in sublists ...
Success! All pairs contain non-isomorphic groups
gnu(10584)=5921
GAP      4.8.3
GrpConst 2.5
Runtime of ConstructAllGroups: 1975710 ms (32.92 min)
Returned a list of length 5920 containing 5919 groups and 1 sublists
Length of sublists : [ 2 ]
Runtime to check non-isomorphism of groups in pairs: 104067 ms (1.73 min)
To maintainers: for new results, add to data/gnudata.g this line:
GNU_SAVE( 10584, 5921, WITH_GC );

gap>
System : Windows Vista

Thank you for submitting new gnu(n). We will recalculate it and add to the database if we get the same result.
Checklist for the reviewer:

[ ] checked and assigned labels "new (n<50000)" or "recomputation", if needed
[ ] set "replication needed" label (unless it starts immediately)
[ ] changed it to "replication in progress" label when the replication has been started
[ ] changed it to "replicated" after successful replication review
[ ] reproducible value of gnu(n)
[ ] no essential runtime differences
[ ] sufficient level of technical details

Checklist for the maintainer:

[ ] correct arguments of command to store data
[ ] correct location of new line in the data file
[ ] mention submitter and reviewer in the commit message
[ ] Close corresponding issue from the commit message

gnu(10584)=5921
GAP      4.8.3
GrpConst 2.5
Runtime of ConstructAllGroups: 1192619 ms (19.87 min)
Returned a list of length 5920 containing 5919 groups and 1 sublists
Length of sublists : [ 2 ]
Runtime to check non-isomorphism of groups in pairs: 79656 ms (1.32 min)
To maintainers: for new results, add to data/gnudata.g this line:
GNU_SAVE( 10584, 5921, WITH_GC );


Dang 432/adds 'Copied' Tooltip to TextInput to show when copying with the Copy Button (withCopyButton prop)

JIRA ticket
Description
Adding a 'Copied' Tooltip to show above the TextInput for 1.5 seconds when copying the text with the withCopyButton copy button.
These live in the APIKeysModal in the dashboard; on /address-verification click on 'Get your Api Keys' bottom right to pop the modal.
✨ see the new story in the preview!  ✨
https://user-images.githubusercontent.com/50080618/146986234-a83498ac-e12f-4dc0-981f-9c8b5cffa476.mov

old dashboard:

@erin-doyle @juanfriss what do you think of this ^ bc4a7ce

hiii @Mrtly I didn't get a chance to review the full PR yet so sorry if this is lazy, but the copied tooltip is also used on the Getting Started page in GetYourKeys component, are we maintaining consistency between the two areas? If not, this could be a separate task too but just want to make sure we catch it 😄

@sanatauqir92 yes it looks almost the same, but this one has the little extra nice transition like in the old dashboard, and is now part of the TextInput withCopyButton prop, so if we do use this prop somewhere else in the future, it will be included. Currently only GetYourAPIKeys uses withCopyButton.


models/apiKey: Add getDeviceApiKeysByDevice() method

Change-type: minor
Depends-on: https://github.com/balena-io/balena-api/pull/3399
Signed-off-by: Thodoris Greasidis<EMAIL_ADDRESS>
Resolves: #
HQ:
See:
Depends-on:
Change-type: major|minor|patch

Contributor checklist

[ ] Includes tests
[ ] Includes typings
[ ] Includes updated documentation
[ ] Includes updated build output

@balena-ci retest


Refresh devices on adding a PVSCSI controller

Restoring change that got removed by PR #573.
Retested with the change on the current code, server logs:
08/18/16 10:36:11 3225508 [1] [INFO   ] Found VM name=1, id=4225d240-b7f5-3825-e1c4-e69a08844980
08/18/16 10:36:11 3225508 [1] [INFO   ] *** attachVMDK: /vmfs/volumes/bigone/dockvols/testvol-1.vmdk to 1 VM uuid = 4225d240-b7f5-3825-e1c4-e69a08844980
08/18/16 10:36:11 3225508 [1] [INFO   ] Attaching /vmfs/volumes/bigone/dockvols/testvol-1.vmdk as independent_persistent
08/18/16 10:36:11 3225508 [1] [WARNING] Warning: PVSCI adapter is missing - trying to add one...
08/18/16 10:36:12 3225508 [1] [INFO   ] Disk /vmfs/volumes/bigone/dockvols/testvol-1.vmdk successfully attached. controller pci_slot_number=224, disk_slot=0
08/18/16 10:36:12 3225508 [1] [INFO   ] executeRequest 'attach' completed with ret={'ControllerPciSlotNumber': '224', 'Unit': '0'}
08/18/16 10:36:13 3225508 [1] [INFO   ] *** detachVMDK: /vmfs/volumes/bigone/dockvols/testvol-1.vmdk from 1 VM uuid = 4225d240-b7f5-3825-e1c4-e69a08844980
08/18/16 10:36:13 3225508 [1] [INFO   ] Disk detached /vmfs/volumes/bigone/dockvols/testvol-1.vmdk
08/18/16 10:36:13 3225508 [1] [INFO   ] executeRequest 'detach' completed with ret=None

LGTM


Play link.

Hello. This is a really neat example, helped me learn a lot. Thanks :)
I have a PaaS platform that allows a developer to instantly host their web application without any need for infrastructure setup. Its a really easy way to get your application to cloud instantly.
I have taken the liberty to on board this application to my platform and I was hoping if you can give it a try. If you accept this PR you will have an additional link where your users can experience your application.
You can click here to see how your application looks today. You can find more about my platform here.
If you don't like to share your application in my platform, I am really sorry to have on boarded it without asking first. Please let me know and I will remove it.

I like the idea but there are a lot of extra files required and I want to keep this project simple. Thanks.

Hello @ahfarmer
Thanks for taking the time to review this PR 👍 . I will not pester you further on this :)
However, I will point out that out of 4 file changes, 2 of them are .gitignore and readme.
Only 2 new meaningful files are added under the .quadnix folder.
If you ever would like to access your app, it will be here:
https://plugins.quadnix.com/launch?author=quadnix&id=emoji-search


connect: Add database config and password as env to README

This PR relates to https://github.com/rstudio/helm/issues/422 by providing customers guidance on how to configure and set database passwords consistently and in a Kubernetes-friendly way across products.
The docs added show how to configure the database and set up PostgreSQL database passwords as env variables from K8s secrets in Connect. Similar changes are being submitted for each of the products.
Currently, admins need to either set the password in the values or imperatively during helm install. Both are not very k8s native ways of doing things.
This PR is already in flight for Admin install doc changes: https://github.com/rstudio/connect/pull/26928

@nihara-thomas fyi this is the companion to this change in the admin guide: https://github.com/rstudio/connect/pull/26928


Add appcompat dependency to docs

Description
When a project is setup through react-native init, the following appcompat dependency is not added.
implementation 'androidx.appcompat:appcompat:1.1.0'

This later causes the following error when building Detox in release mode:
Execution failed for task ':app:processReleaseAndroidTestResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
   > Android resource linking failed
     ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...

In this pull request I have updated the docs with the solution for this issue.

@igorgn on a different matter: any ideas why buildkite appears twice (regular and pr)?

@d4vidi It is because branch build was triggered manually and not via 'git push'. "buildkite/detox/pr" is there because this check is set as "Required", thus it will be present in every PR.  But manual build is considered as a regular "buildkite/detox", making it a separate check and thus we have 2 checks.
In buildkite we can disable this behaviour, leaving only "buildkite/detox" check, i.e. PR checks also would be marked as "buildkite/detox"


feat: extend peerDeps to support<EMAIL_ADDRESS>

Coverage remained the same at 65.476% when pulling fac8e51100fa0cd49f955cc49ab6141f4f4ee9da on state-tree into 5c54d45747ab96aad2b39a84bc9e67585cb80273 on master.

Looking good to me!

Coverage remained the same at 65.476% when pulling 6f6d336e8d09eb3e272d1100e8538fd34a7b1851 on state-tree into 5c54d45747ab96aad2b39a84bc9e67585cb80273 on master.


REL: Prepare for v1.3.6 release.

actions/checkout introduced a breaking change where the github action does no longer fetches tags by default. We add extra parameters to the action to ensure tags are fetched so that the correct version number of the package can be inferred by setuptools-scm.

Codecov Report
All modified lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files
Coverage Δ

polyagamma/__init__.py
100.00% <100.00%> (ø)

:loudspeaker: Thoughts on this report? Let us know!.


[Backdrop] Introduce backdrop component

Would be great to introduce this component into a future release! Basically consists of two layers of content sort of how collapsible cards work but a little different behaviors. Both layers have information / controls where as cards are no where near as complex.

When concealed, the back layer can provide contextual information about the front layer.
When revealed, the back layer displays contextual controls that relate to the front layer.
Here for more info:
https://material.io/design/components/backdrop.html#usage

[x] This is a v1.x issue (v0.x is no longer maintained).
[x] I have searched the issues of this repository and believe that this is not a duplicate.

This issue title should be renamed to "[Backdrop] Introduce backdrop component" per convention
Worth noting the name currently collides with the Modal Backdrop

I'm going to start working on a prototype of this to PR to the lab, unless anyone has a reason for me not to (like they're already working on it)

I have built a quick proof of concept:
https://codesandbox.io/s/vvyxxzxnl5

import React from 'react';
import {
  makeStyles,
  AppBar,
  Toolbar,
  IconButton,
  CssBaseline,
  SwipeableDrawer,
  List,
  Divider,
  ListItem,
  ListItemIcon,
  Typography,
  ListItemText,
} from '@material-ui/core';
import Box from '@material-ui/core/Box';
import InboxIcon from '@material-ui/icons/MoveToInbox';
import MailIcon from '@material-ui/icons/Mail';
import MenuIcon from '@material-ui/icons/Menu';

const useStyles = makeStyles(theme => ({
  '@global': {
    body: {
      backgroundColor: '#7216f8',
    },
  },
  appBar: {
    backgroundColor: '#7216f8',
  },
  fullList: {
    width: 'auto',
  },
  menuButton: {
    marginRight: theme.spacing(2),
  },
  paper: {
    height: 'calc(100% - 56px - 56px)',
    maxHeight: 'none',
    overflow: 'visible',
  },
  wrapper: {
    position: 'relative',
    top: -56,
    borderTopLeftRadius: 16,
    borderTopRightRadius: 16,
    background: 'white',
    visibility: 'visible !important',
  },
  container: {
    overflow: 'auto',
  },
}));

function SwipeableTemporaryDrawer() {
  const classes = useStyles();
  const [state, setState] = React.useState({
    top: false,
    left: false,
    bottom: false,
    right: false,
  });

  const toggleDrawer = (side, open) => event => {
    if (event && event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {
      return;
    }

    setState({ ...state, [side]: open });
  };

  const fullList = side => (

      <List disablePadding>
        {['Inbox', 'Starred', 'Send email', 'Drafts'].map((text, index) => (
          <ListItem button key={text}>
            <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
            <ListItemText primary={text} />
          </ListItem>
        ))}
      </List>
      <Divider />
      <List>
        {['All mail', 'Trash', 'Spam'].map((text, index) => (
          <ListItem button key={text}>
            <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
            <ListItemText primary={text} />
          </ListItem>
        ))}
      </List>

  );

  return (
    <React.Fragment>
      <CssBaseline />
      <AppBar elevation={0} position="static" className={classes.appBar}>
        <Toolbar>
          <IconButton edge="start" className={classes.menuButton} onClick={toggleDrawer('bottom', true)} color="inherit" aria-label="Menu">
            <MenuIcon />
          </IconButton>
          <Typography variant="h6" className={classes.title}>
            Photos
          </Typography>
        </Toolbar>
      </AppBar>
      <SwipeableDrawer
        anchor="bottom"
        open={state.bottom}
        onClose={toggleDrawer('bottom', false)}
        onOpen={toggleDrawer('bottom', true)}
        ModalProps={{
          keepMounted: true,
        }}
        swipeAreaWidth={56}
        BackdropProps={{
          invisible: true,
        }}
        classes={{
          paper: classes.paper,
        }}
      >

          <Box p={2}>
            <Typography color="textSecondary">Subtitle</Typography>
          </Box>

            {fullList('bottom')}
            {fullList('bottom')}

      </SwipeableDrawer>
    </React.Fragment>
  );
}

export default SwipeableTemporaryDrawer;

We could add it as a docs demo-only component, like Transfer List.

I have added the waiting for users upvotes tag. I'm closing the issue as we are not sure people are looking for such abstraction. So please upvote this issue if you are. We will prioritize our effort based on the number of upvotes.


Track geolocation with shutdown screen on Android Devices

Hello,
Is it possible to track some positions with a shutdown Android device screen ?
Is there a special option to enable ?
Thanks

Notice: this issue has been closed because it has been reported for branch 2.x or later. It could be already fixed in v3 or is not relevant anymore. You may reopen this issue if it has been closed in error.


How to use offset

Hi,
I'm trying to find out how to use offset function. Can you please write me a better explanation or perhaps better documentation?
Thank you!

Would be nice to have an example of using scroll with offset in documentation. For now, You can use custom scroll function:
const scrollWithOffset = (el, offset) => {
  const elementPosition = el.offsetTop - offset;
  window.scroll({
    top: elementPosition,
    left: 0,
    behavior: "smooth"
  });

   <NavLink
            to="/#pricelist"`
             scroll={el => scrollWithOffset(el, 150)}
        >
     link
    </NavLink>

Agree with @mpetricek. Would be nice to have an example of using scroll with offset in documentation. For now, You can use custom scroll function:
const scrollWithOffset = (el, offset) => {
  const elementPosition = el.offsetTop - offset;
  window.scroll({
    top: elementPosition,
    left: 0,
    behavior: "smooth"
  });

   <NavLink
        to="/#link"`
        scroll={el => scrollWithOffset(el, 150)}
    >
     link
    </NavLink>

You're missing a close brace after scrollWithOffset

 scroll={el => { el.scrollIntoView(true); window.scrollBy(0, -64) }}
bit hacky but it works as a one-liner. (64 being the height of my header / the amount I want offset).

 scroll={el => { el.scrollIntoView(true); window.scrollBy(0, -64) }}
bit hacky but it works as a one-liner. (64 being the height of my header / the amount I want offset).

Yeap this actually works, but if you want to put some animation on scrolling, you dont have it

This functions is working for me:
const scrollWidthOffset = (el) => {
    const yCoordinate = el.getBoundingClientRect().top + window.pageYOffset;
    const yOffset = -80;
    window.scrollTo({ top: yCoordinate + yOffset, behavior: 'smooth' });
}

<NavHashLink smooth to='/#link' scroll={el => scrollWithOffset(el)}>
     Link
</NavHashLink>

I prefer @Vidit92's solution because it preserves the smooth scrolling.

This functions is working for me:
const scrollWidthOffset = (el) => {
    const yCoordinate = el.getBoundingClientRect().top + window.pageYOffset;
    const yOffset = -80;
    window.scrollTo({ top: yCoordinate + yOffset, behavior: 'smooth' });
}

<NavHashLink smooth to='/#link' scroll={el => scrollWithOffset(el)}>
     Link
</NavHashLink>

this does not work for me

thank you all I was very stressed trying to figure this out for a client was losing my mind. much appreciated.

This functions is working for me:
const scrollWidthOffset = (el) => {
    const yCoordinate = el.getBoundingClientRect().top + window.pageYOffset;
    const yOffset = -80;
    window.scrollTo({ top: yCoordinate + yOffset, behavior: 'smooth' });
}

<NavHashLink smooth to='/#link' scroll={el => scrollWithOffset(el)}>
     Link
</NavHashLink>

this does not work for me

I was in the same boat until I ran "npm run build" and restarted localhost.
Hope this helps others having the same issue.

Added a section to the readme with a link to this thread. This seems to be a common question, so if anyone would like to create a formal doc that explains how to scroll with offset, PRs are welcome.

This functions is working for me:
const scrollWidthOffset = (el) => {
    const yCoordinate = el.getBoundingClientRect().top + window.pageYOffset;
    const yOffset = -80;
    window.scrollTo({ top: yCoordinate + yOffset, behavior: 'smooth' });
}

<NavHashLink smooth to='/#link' scroll={el => scrollWithOffset(el)}>
     Link
</NavHashLink>

this does not work for me

There's a typo: scrollWidthOffset vs scrollWithOffset . Works if you fix that.

I'm using scrolling of in-page links with this offset.
The question is, if you jump to the link destination of the in-page link with a hash
If there is an image on that page, I think that the height of that image cannot be taken into consideration (because the image will be loaded later?).
Is there a workaround?
Page A

Sentence
Link # section2 * Click

Page B

Section 1
Sentence
Sentence
Image * It will fly to this position
Sentence
image
Section 2 * I want to fly here
Sentence
Sentence

Best Regard.

@yuya-tani the best way is to account for the size of the image on the page before the image is loaded (use css to specify the space that the image will take up). Comments in #84 may help.

Thank you for your quick reply.
Well, if the image is fixed, you should secure the height first in the component where the image is displayed.
I saw #84 for reference, but if the height of the image changes dynamically
Show loading? There is an answer,
Is it possible to start smooth after transitioning and loading?

const scrollWithOffset = (el) => window.scrollTo({ top: el.getBoundingClientRect().top + window.pageYOffset - 100, behavior: 'smooth' });
<HashLink smooth scroll={el => scrollWithOffset(el)} to="/new/legal-compliance#TermsConditionsSec" className="nav-link active" aria-current="page" >
Terms & Conditions

The above solutions work, but when I replace pageYOffset with the scrollY alias (pageYOffset is deprecated), it doesn't work.


cannot set props to dynamic components

Vue.js version
2.0.0-rc.3
Reproduction Link

https://jsfiddle.net/x9t73qa6/1/
Steps to reproduce
Run
What is Expected?
Should show child components content 1 2 3
What is actually happening?
from-parent props are not properly set to child components.
This works in 1.0.26 https://jsfiddle.net/wgdxhdsm/

Templates need one root element. you have v-for on the child's root element.
https://jsfiddle.net/Linusborg/x9t73qa6/2/
PS: you would see a warning if you did not use a vue.min.js


Logging: improve help message of LOG_PRINTK Kconfig option

Improve it so that:

it mentions the important fact that it redirects printk messages to the logging subsystem
it is consistent with the help messages of the other options in this file (i.e. it starts with "If enabled")

As discussed on Discord in logging channel, it might be confusing that the the help message of the LOG_PRINTK Kconfig option does not mention that printk messages will be redirected to logging subsystem. This PR tries to fix that. The original help message was kept, just extended.


Portfolio website

Describe the project you want to add with tech stack
I would like to add a simple portfolio website built using HTML, CSS and JavaScript.
Expected behavior
It will have basic information about the person such as projects, skills etc.
Screenshots (optional)

Additional context (optional )

@pranjay-poddar please assign me this issue under hacktoberfest.

hey please assign me this task
this is my first hactoberfest.

@sshiwangi , @radhika2503 both of you can work on your own version of portfolio websites.

@pranjay-poddar Can I work on this issue?
This is my first hactoberfest.

Hyy @pranjay-poddar kindly assign me too this issue..this is my first open source contribution.. ❤ 💫


Add tests for JSON/YAML regex and brackets

Build triggered. sha1 is merged.

Refer to this link for build results (access rights to CI server needed):
/job/datavec_PR/42/

Build finished. No test results found.


ENDOC-78 add azure install instructions

Closing in favor of https://github.com/entando/entando-docs/pull/179, rebased against master since there were many changes.


Email fails to send if display name has a comma

Describe the bug
I don't receive any verification e-mail for my account (erc_ebc).
I tried two different e-mail addresses and hit the resend verification button a few times.
Expected behavior
I should receive the e-mail to upload a project.
My Platform
I use Firefox, but this should not matter.
The mail addresses use gmx and ms-exchange as server.
Additional context
Maybe related: https://github.com/pypa/pypi-support/issues/566

I'm seeing you reverify requests in your profile:

But there's no "sent email" event
In the PyPI Moderator email section, at the time of your reverify requests, I don't see an email pertaining to that, so if the email

So, long story short : no idea, we may need an admin to look at it.

Thanks for the quick reply! Do I have to contact an admin or will one automatically look at this?

They'll look at this :)

The underlying issue seems to be the comma in this user's display name. Removing it should allow the emails to send.
I briefly attempted to debug this in https://github.com/pypa/warehouse/compare/fix/9857 by adding some tests but our behavior seems to be correct. We also have no exceptions or errors, either from warehouse or from SES, regarding these emails.

The underlying issue actually appears to be https://bugs.python.org/issue44637

Nice, thank you very much for the quick support! Removing the comma works.
Should I keep the issue open as new users don't receive a warning about invalid display names?

Yes, your case is solved but the underlying problem is still there.

On the Python issue, someone said:

it works fine with the compat32 policy

I believe this could make a one-liner fix for this issue while waiting for a more definitive fix.


Psi break block spell dupping

When we use a Break Block spell from Psi in a protected area, the block won't break, but will still drop it's items. Like, we break a chest, the items will drop but the chest won't be broken, dupping them.

This is a sponge bug.


Create US for different menu types

Menu (3 types) :
https://github.com/jdi-testing/jdn-ai/issues/916
https://github.com/jdi-testing/jdn-ai/issues/863
Page Object Actions menu
Locator's action menu
Quick Actions menu

https://jdi-family.atlassian.net/wiki/spaces/JDN/pages/12910676/US-6-4+Control+the+selection+of+elements+from+a+page+object+Page+Locator+s+action+menu
https://jdi-family.atlassian.net/wiki/spaces/JDN/pages/27721756/US-14-6+Page+Object+s+actions+Page+Object+Actions+menu
https://jdi-family.atlassian.net/wiki/spaces/JDN/pages/12877964/US-11-2+Interaction+with+an+element+from+locators+list+Locator+s+action+menu
https://jdi-family.atlassian.net/wiki/spaces/JDN/pages/134938645/US-6-13+Quick+Actions+menu


when open big excel file, it cost much time in create and release object, How to reduce time consumption

version: [0461eac]
// create object
const std::unique_ptr<QXlsx::Document> xlsx = std::make_unique<QXlsx::Document>(filePath);
// write some cell
// save object
xlsx->saveAs(filePath);
// release

when open 200KB excel file:
create object: 2106ms
call saveAs() func: 3450ms
release object: 3500ms

test code for it, but i dont know how to solve it.
https://github.com/QtExcel/QXlsx/compare/master...rhddlr:QXlsx:test_issue236


Added kilojoules

Added support for kilojoules

Hello @lhengl and thank you!
I just added a missing test. We are ready to merge!


Fix hole in condition in CalculateRank function

Issue mentioned
I discussed the cause here.
What I have done
I remove <= equal in conditions as it will be implicitly checked when accuracy does not meet the previous condition. Since the block inside is a single return statement, else if is redundant so I used if instead.
Also, I remove the condition for rank D because it is a default value when accuracy does not meet any condition above. The function will no longer throw ArgumentOutOfRangeException because there is a default value (Rank D).

@Game4all  I removed braces now.


fillGap missing Check button

@FayCross I think you added a   to the fillGaps page for accessibilty reasons (on line 201).
Strangely enough, a
 within the  has a height of 0. This causes the Check button to be placed at a really strange location, or not visible at all. I don't understand why the table would have a height of 0.
If I give the span a 'display:block'  that does not change anything. If I put 'display:table' or display: table-row' than all of a sudden the span has the correct size, and the button is placed correctly.
I don't know what the consequences are of changing the display.
Adding some text below the table or
</div&gt also solves the issue.

@torinfo Do you have an example? It seems ok when I create a table in there:


Use the new addMiddleware option

Since version 3.5.0, the integration APIs have a new function called addMiddleware that allows to add a middleware to the sequence, without the user creating their own middleware (or updating it seamlessly if they have one): https://docs.astro.build/en/reference/integrations-reference/#addmiddleware-option

Hey @ematipico, I have considered this option in the past, but having a "default" middleware does not feel something very useful as I imagine most people would like to customize it.
Developers would have to customize the middleware by passing their configuration via the integration. Is this a common thing to do in the "astro land" ?
And the if they wanted to use the middleware file, there should be a flag in the integration to avoid using the default one, right ?

Hey @ematipico, I have considered this option in the past, but having a "default" middleware does not feel something very useful as I imagine most people would like to customize it.
Developers would have to customize the middleware by passing their configuration via the integration. Is this a common thing to do in the "astro land" ?

That's very common. Almost all the adapters (@astrojs/node, @astrojs/vercel, etc.) can accept options when they are used inside the astro.config.mjs file. Starlight, for example, can accepts HUGE object to customise it.

And the if they wanted to use the middleware file, there should be a flag in the integration to avoid using the default one, right ?

No, developers won't need to do anything. Astro will make sure that the middleware function created by your integration is correctly placed (before or after, using pre or post) the user middleware.

Is there any other benefit from having this inside the integration that I may be missing ?
I believe the API would look something like this
import { defineConfig } from "astro/config";
import node from "@astrojs/node";
import clerk from "astro-clerk-auth";
import { createRouteMatcher } from "astro-clerk-auth/server";

const isProtectedPage = createRouteMatcher(['/user(.*)'])

export default defineConfig({
  integrations: [
    clerk({
      signInUrl: '/sign-in',
      middleware: (auth, context, next) => {
        if (isProtectedPage(context.request) && !auth().userId) {
          return auth().redirectToSignIn();
        }
        return next();
      }
    }),
  ],
  output: "server",
  adapter: node({
    mode: "standalone",
  }),
});

No, developers won't need to do anything. Astro will make sure that the middleware function created by your integration is correctly placed (before or after, using pre or post) in the user middleware workflow, using the function sequence.

Should the pre and post options be set from the developer ? In that case the options passed to clerk() should allow for that.
Can the developer use the sequence in their middleware file to define in what order the clerk middleware will be called ?

I'm trying to understand the pattern here, apologies for the questions.
I have this example in the docs, is this an "antipattern" ? By this I'm referring  to call a "lib" middleware along side a developers middelware.
const greeting = defineMiddleware(async (context, next) => {
  console.log("greeting request");
  console.log(context.locals.auth());
  const response = await next();
  console.log("greeting response");
  return response;
});

export const onRequest = sequence(
  clerkMiddleware(),
  greeting,
);

Btw thank you for taking the time and providing me with feedback.

Good questions here! I agree with Ema that addMiddleware() can simplify configuration for the developer. I would only go this route if a majority of users will grab the "out-of-the-box" setup though. If the user customizes the Clerk middleware more times than not, I think a copy-able snippet is okay.
As for your questions above:

I'd recommend the pre option so any user middleware that relies on auth() will be run afterwards. The post option means the Clerk middleware would run after all user middleware, but before their Astro component runs. If there are cases where that is preferred, make it configurable!
The above option would be the only level of customization if you went the addMiddleware route. If you wanted fine-grained control of ordering via sequence, you would probably want to allow a middleware: false so the user can set up Clerk manually.

I would not call your code snippet an anti-pattern by the way! This manual setup is preferred by Lucia auth actually. It all depends on how likely user customization will be.


Created a function generating new window and class template for entries

Created class to easily create tk.Entries with placeholders.
Also implemented PasswordGenerator using user input that is validated after submitting.
Also created function to copy it to clipboard after generating.

LGTM :rocket:


Use gtk4 for linux desktop

Use case
Currently linux desktop flutter apps are created with GTK3. GTK4 brings border-radius to the bottom windows and a bright window border in the dark theme. It would be nice to benefit from these visual changes in flutter linux desktop apps
Proposal

Upgrade the linux desktop flutter apps to use gtk4 or add a second option to create linux desktop windows with gtk4 instead.
Thanks in advance
CC @robert-ancell

Are GTK3 and GTK4 interoperable—i.e., can a GTK4 app use GTK3-based libraries?
If so, it should be relatively straightforward for someone to do this themselves in their own app just by altering the template-generated runner (which is something we expect developers will do in general), and then it's just a question of when/how we want to have it in the template.
If not, this would be a major undertaking involving engine work, various tool changes, and substantial impact to the plugin ecosystem.

@stuartmorgan
My experience is limited here, I need to forward this question to Robert.
There is a documentation how to migrate to gtk4 here:
https://docs.gtk.org/gtk4/migrating-3to4.html

Yes, I saw that, but it doesn't appear to answer that question.

"Using GTK 2/3 and GTK 4 in the same process is not supported"

https://github.com/GNOME/gtk/blob/80a8b59f2480e5e7b73959c158d94de89661379b/gtk/gtkmain.c#L482

That's unfortunate; that will make this quite difficult. It will need a design document for how the transition will be managed across the ecosystem, taking both existing apps and existing plugins into consideration.

GTK 3 and 4 are not interoperable. The main issue is plugins, which could be using any GTK3 API that may not exist anymore in GTK4. I see we have the following options:

Keep using GTK3 for as long as possible. This is what has traditionally happened for systems that are just using GTK as the means of opening a window. For example Firefox kept using GTK2 for a long time. This creates a future issue to do a migration when GTK3 is no longer supportable.

Leave it to the app developer to modify the runner themselves. This is reasonably easy to do if you're not making heavy use of plugins, and perhaps we can put some flags in the CMake build files to make this easy (with appropriate warnings).

Provide an option to the Linux runner to choose GTK3 or GTK4. Plugins would then check this flag and adjust their code if necessary or generate a build error if they can't support GTK4. I think this is the most practical solution.

Make a second GTK4 runner, with a new plugin ecosystem. I'm not recommending this.

Switch to GTK4 at some point, and require all plugins to update. I'm not recommending this.

The engine itself uses GTK though, which means option 2 doesn't work unless I'm missing something. And option 3 will require us to build and ship two copies of the engine.

The engine itself uses GTK though, which means option 2 doesn't work unless I'm missing something. And option 3 will require us to build and ship two copies of the engine.

Ah yes. I had thought about that previously but then forgot about it :) Yes, I think we'd have to build two engines, and the runner choose the appropriate one. I guess that's do-able?

Without knowing anything about how hard it is to port flutter to gtk4 but my guess is that the apps made for the linux desktop are kind of rare currently, maybe this is still a time to make the switch even if it breaks some of the current linux desktop flutter apps.

Without knowing anything about how hard it is to port flutter to gtk4 but my guess is that the apps made for the linux desktop are kind of rare currently, maybe this is still a time to make the switch even if it breaks some of the current linux desktop flutter apps.

GTK4 is reasonably new and not yet widely available. In Ubuntu, it was first available in 21.04, which means the first LTS release will be 22.04. We really couldn't drop GTK3 support until that is the oldest supported LTS release, as that would mean people on older versions of Ubuntu couldn't run Flutter apps (well, they could via snaps of course). I would expect a similar timeframe for other Linux based systems.

According what little experience I have on GTK, the keyboard system is breakingly different on GTK4. They stops exposing the event object as a struct with fields but instead gives an opaque pointer, requiring  all fields being acquired through functions. This means that all existing tests need to be refactored since it's no longer possible to create your own GDK key events. Although Flutter's keyboard system eventually adopted a structure that preemptively eases this problem, I expect other  parts of the system to differ no less.

Talking to the folks in #gtk on GIMPNet, the GTK devs feel that GTK is a bad fit for Flutter because GTK is a widget toolkit and not a windowing system. This also explains why they don't allow creating your own GDK key events: as a widget toolkit they expect gestures, while a windowing system would want raw events.

Talking to the folks in #gtk on GIMPNet, the GTK devs feel that GTK is a bad fit for Flutter because GTK is a widget toolkit and not a windowing system.

We explicitly chose a widget toolkit to allow for platform views and for hybrid apps.

Flutter definitely should not target the old-fashioned way like rpm or deb packages

Flutter does not take an opinionated stance on how people choose to package and distribute their applications. It is entirely up to the developer of a Flutter-created application how they choose to distribute it.

Little update on the rounded bottom borders for those who are looking for the visuals...
@jpnurmi managed to make libhandy, some sort of additional lib on top of GTK3 which brings a set of useful widgets including rounding the GTK3 bottom corners, available as a package: https://pub.dev/packages/handy_window
There may be other visual and/or performance improvements in drawing flutter into a gtk4 window though.

this would really be ideal, gtk2/3 is now recognised as legacy windows (for example, on Ubuntu), makes a pretty big difference in UI/UX especially seeing improvements like tab behaviour, window decors, just overall consistency with gnome

I know it's easy for me to say, but wouldn't it be better in the long run to start work on an xcb backend instead? You could rely on XWayland for now and add native Wayland later, that way you don't have to change the entire backend when there's a new GTK version. It'll almost certainly be more performant too.

I know it's easy for me to say, but wouldn't it be better in the long run to start work on an xcb backend instead? You could rely on XWayland for now and add native Wayland later, that way you don't have to change the entire backend when there's a new GTK version. It'll almost certainly be more performant too.

The issue is that the windowing support is just a small part of the framework that GTK provides. If you used a xcb/libwayland directly you would have to implement input method, accessibility etc.

The issue is that the windowing support is just a small part of the framework that GTK provides. If you used a xcb/libwayland directly you would have to implement input method, accessibility etc.

True, I have no idea how difficult it would be to do that yourself.
I just hope that AccessKit or a similar project will eventually get mature enough for people to start using that instead.

Would it be possible for GTK4 to become a 3rd party dependency and be integrated within the engine statically at compile time? This way Flutter wouldn't need to rely on older distros making the switch to GTK4.

Would it be possible for GTK4 to become a 3rd party dependency and be integrated within the engine statically at compile time? This way Flutter wouldn't need to rely on older distros making the switch to GTK4.

That would be problematic because of plugins. You need access to Gtk headers during project build time for this.

@robert-ancell here are packages used by yaru flutter apps currently which do have native dependencies:

https://github.com/ubuntu/yaru_window.dart (needed to control the window without a native headerbar, this is very important to draw https://en.wikipedia.org/wiki/Client-side_decoration within flutter and still be able to control the window)
https://github.com/leanflutter/window_manager (same as above)
https://github.com/ubuntu/yaru_widgets.dart (depends on yaru window for the yaru window titlebar)
https://github.com/ubuntu/handy_window.dart (design wise not needed anymore with gtk4)
https://github.com/media-kit/media-kit (I am not sure about this one, it uses gtk but it could be that it somehow depends on gtk which I am unsure)

will update the list if I find more we use

The accessibility support in GTK4 is very tied to the GTK widgets, which is a change from GTK3. There's been some new API in GTK 4.14 (not yet released) that allows us to add arbitrary AT-SPI trees which seems like the right solution for Flutter. This shifts the point where we can switch from GTK3, as most distros will not have this version. I think we need to consider if we can support both GTK3 and 4 for a period.

Webkit uses the new GTK4 API for accessibility - this is the same method we will need to use for Flutter - https://bugs.webkit.org/show_bug.cgi?id=227528

https://github.com/flutter/engine/pull/52355 migrates to using a AT-SPI socket/plug like WebKit does and will help in the GTK4 migration.

I believe preparing the codebase for the transition to GTK 4.0 is a good idea. However, directly mixing GTK 3.0 and 4.0 in the same codebase isn't feasible. Here are some ideas to address this:

Dynamically Load GTK 3.0: Modify libflutter_linux_gtk.so to load GTK 3.0 dynamically instead of linking to libgtk-3.so.0. This avoids maintaining separate versions for each GTK version and prevents plugin ecosystem breakage.
Build Option for GTK Version: Implement a build option similar to how developers choose between Skia and Impeller on other platforms. In this case, CMake flags like -DFLUTTER_GTK_VERSION=3 or -DFLUTTER_GTK_VERSION=4 would allow app and plugin developers to check which GTK version to use.
Flutter Engine Support for GTK 4.0: Extend the Flutter engine to accept GTK 4.0 as a shell backend.
Plugin Migration Assistance: Provide support for existing plugin developers to migrate their plugins for compatibility with both GTK 3.0 and 4.0.
Community Announcement: Announce the transition to GTK 4.0 in the Flutter community, with a clear migration path for developers.
GTK 3.0 Removal: Once ready, GTK 3.0 support can be removed from the engine.

For the first point, I created a branch on GitHub demonstrating this approach: https://github.com/bc-lee/flutter-engine/tree/feature/dlopen-gtk3. It utilizes Chromium's generate_stubs to generate stubs for GTK 3.0 and facilitate dynamic loading. While not perfect, it functions with basic apps. Additionally, ldd confirms that libflutter_linux_gtk.so doesn't link to libgtk-3.so.0.
I may be able to create a Design Doc to provide further clarity on this approach.

I don't quite see the benefit of engine not linking to Gtk directly. In many places the APIs are quite different and supporting both would require another abstraction for benefit that is not entirely clear.

It's still being worked on, but it's not a simple fix:

We need to get the Flutter build environment working with a current version of GTK4
We need to support both GTK3 and GTK4 as the latter only recently added features we require.

We're making smaller to the Linux embedder that will make this simpler in the future.

I've unnassigned myself from this as I'm not currently working on it. We think we can get multi-window working using GTK3 which I'm working on now.


Feat/#5 Support multiple flow in single scene

#5
TODO

[x] Define MultipleModelFlowUseCase
[x] Define MultipleFlowUseCase
[x] Define IMultipleFlowPresenter
[x] Test MultipleFlowUseCase
[x] Create Example of MultipleFlow

ちょっと時間迫ってきたのでmergeしちゃう!


delete outdated tests actions

Issue #, if available:
Description of changes:
The automated-tests has included other tests and integration tests don't make much sense at this moment. We can remove them to clean up actions.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Synced offline, we will re-enable the integrations tests after some changes. LGTM, thanks.


List implementation of succesor

The current implementation throw an error when the list has only one element.
Testcase:
FL> succ_right [65]

The fix is in 29f5aab


Add environment to all deploy workflows

Talked with Ole and realised that we don't want test env in pipeine. @johnnadeluy may you take a second look at this one?


Not be able to escape bashslash for fixed value

I tried to run "dredd get-one-post.apib http://jsonplaceholder.typicode.com/" with below blueprint with mson, but it failed.
FORMAT: 1A

# Fake Online REST API

## Group Posts

### /posts/1

#### Retrieve one post [GET]

+ Relation: posts-getposts

+ Response 200 (application/json; charset=utf-8)

    OK

    + Attributes
        - userId: 1 (number, fixed)
        - id: 1 (number, fixed)
        - title: `sunt aut facere repellat provident occaecati excepturi optio reprehenderit` (fixed)
        - body: quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto (fixed)

This seems to be mson's issue because I tried same command with blueprint with generated schema and it worked.
FORMAT: 1A

# Fake Online REST API

## Group Posts

### /posts/1

#### Retrieve one post [GET]

+ Relation: posts-getposts

+ Response 200 (application/json; charset=utf-8)

    OK

    + Schema
            {
              "$schema": "http://json-schema.org/draft-04/schema#",
              "type": "object",
              "properties": {
                "userId": {
                  "type": "number",
                  "enum": [
                    1
                  ]
                },
                "id": {
                  "type": "number",
                  "enum": [
                    1
                  ]
                },
                "title": {
                  "type": "string",
                  "enum": [
                    "sunt aut facere repellat provident occaecati excepturi optio reprehenderit"
                  ]
                },
                "body": {
                  "type": "string",
                  "enum": [
                    "quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto"
                  ]
                }
              },
              "required": [
                "userId",
                "id",
                "title",
                "body"
              ]
            }

@lippea Can you try the following?
body: `quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto` (fixed)

If you want multiple lines, you should try using multi-line sample values:
+ Response 200 (application/json; charset=utf-8)
    + Attributes
        - userId: 1 (number, fixed)
        - id: 1 (number, fixed)
        - title: `sunt aut facere repellat provident occaecati excepturi optio reprehenderit` (fixed)
        - body (fixed)
            - Sample
                line 1
                line 2
                line 3

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "line 1\nline 2\nline 3\n"
}

@pksunkara I did try to add `` around the value, but it didn' twork

@kylef I tried to use sample, but it seems the generated schema doesn't have enum for body at all.
BTW, the \n is in the value, not because I want it to be multiple lines.

The schema generated for the MSON value I've shown above is the following:
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "userId": {
      "type": "number",
      "enum": [
        1
      ]
    },
    "id": {
      "type": "number",
      "enum": [
        1
      ]
    },
    "title": {
      "type": "string",
      "enum": [
        "sunt aut facere repellat provident occaecati excepturi optio reprehenderit"
      ]
    },
    "body": {
      "type": "string"
    }
  },
  "required": [
    "userId",
    "id",
    "title",
    "body"
  ]
}

So, here the sample value is not being used in the JSON schema. I've filed a bug on Drafter, our API Blueprint parser (https://github.com/apiaryio/drafter/issues/343).

@lippea Using \n inside a string is not translated to a new line. \n is literally just backslash and n, throughout the MSON specification there is no mention that this is possible.
The only way to include new lines in values is as I have shown above (multi-line sample values).

Closing issue, underlying problem with sample values in JSON Schema not being rendered correctly is now tracked via https://github.com/apiaryio/drafter/issues/343.

@kylef Does the underlying change fix the issue that backlash in MSON is translated into double backlash in schema?

@lippea Nope, that is not a bug, backslashes in MSON strings should not convert \n into a new line, there is no mention of that in the MSON specification.
What https://github.com/apiaryio/drafter/issues/343 does is make it possible to use fixed multi-line sample values, so the following will work and produce the expected JSON Schema:
+ Attributes
    + userId: 1 (number, fixed)
    + id: 1 (number, fixed)
    + title: `sunt aut facere repellat provident occaecati excepturi optio reprehenderit` (fixed)
    + body (fixed)
        + Sample
            quia et suscipit
            suscipit recusandae consequuntur expedita et cum
            reprehenderit molestiae ut ut quas totam
            nostrum rerum est autem sunt rem eveniet architecto

If you're looking for literally placing \n in the string, then it should be escaped in JSON Schema, as JSON Schema requires escaping of backslashes, when you JSON decode the schema \\n will be converted to \n.
>>> json.loads('"Hello \\n world"')
'Hello \n world'

@kylef it seems not related to \n, but to . \n is translated to \n, and I have another case that " is translated to \". " is used to escape double quote in json response.

@kylef it seems fine now after I removed the \ in MSON. And \ is added in the generated schema to escape " in json

Okay, have you solved your problem?
I want to clarify that the following (using multi line sample):
# Fake Online REST API
## Group Posts
### /posts/1
#### Retrieve one post [GET]

+ Relation: posts-getposts
+ Response 200 (application/json; charset=utf-8)

    OK

    + Attributes
        - userId: 1 (number, fixed)
        - id: 1 (number, fixed)
        - title: `sunt aut facere repellat provident occaecati excepturi optio reprehenderit` (fixed)
        - body (fixed)
            - Sample
                quia et suscipit
                suscipit recusandae consequuntur expedita et cum
                reprehenderit molestiae ut ut quas totam
                nostrum rerum est autem sunt rem eveniet architecto

Results in the following JSON Schema:
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "userId": {
      "type": "number",
      "enum": [
        1
      ]
    },
    "id": {
      "type": "number",
      "enum": [
        1
      ]
    },
    "title": {
      "type": "string",
      "enum": [
        "sunt aut facere repellat provident occaecati excepturi optio reprehenderit"
      ]
    },
    "body": {
      "type": "string",
      "enum": [
        "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
      ]
    }
  },
  "required": [
    "userId",
    "id",
    "title",
    "body"
  ]
}

Given the changes at https://github.com/apiaryio/drafter/issues/343, which seem to be exactly what you're looking for. Please correct me if I'm wrong here.

@kylef It looks like what the top case needed. Thanks!


Bugfix: Fix social link

Don't use the getUrl() anymore as it returns wrong urls.

@benmAltDesign Also possible to create new tag like 1.1.4?


Fix the problem that NPE may appear in ReferenceBeanSupport#convertToString method

What is the purpose of the change
issue #9647
When processing all properties of @Method, the parameters property is an empty array, resulting in null return at obj = DubboAnnotationUtils.convertParameters((String[]) obj);, the following else if (obj.getClass().isArray ()) NPE appears

Codecov Report

Merging #9693 (8a0bacb) into 3.0 (8826443) will decrease coverage by 0.82%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##                3.0    #9693      +/-   ##
============================================
- Coverage     65.69%   64.87%   -0.83%
+ Complexity      297      296       -1
============================================
  Files          1192     1192
  Lines         52162    52162
  Branches       7919     7895      -24
============================================
- Hits          34268    33839     -429
- Misses        14210    14642     +432
+ Partials       3684     3681       -3

Impacted Files
Coverage Δ

...dubbo/config/spring/util/DubboAnnotationUtils.java
48.27% <100.00%> (ø)

...luster/router/script/ScriptStateRouterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...zookeeper/curator/CuratorZookeeperTransporter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...pc/cluster/router/file/FileStateRouterFactory.java
0.00% <0.00%> (-80.96%)
:arrow_down:

...o/rpc/cluster/router/script/ScriptStateRouter.java
0.00% <0.00%> (-67.31%)
:arrow_down:

...ting/zookeeper/curator/CuratorZookeeperClient.java
16.34% <0.00%> (-53.85%)
:arrow_down:

...dubbo/remoting/zookeeper/ZookeeperTransporter.java
55.55% <0.00%> (-33.34%)
:arrow_down:

...moting/zookeeper/AbstractZookeeperTransporter.java
53.33% <0.00%> (-23.34%)
:arrow_down:

.../rpc/cluster/filter/DefaultFilterChainBuilder.java
50.00% <0.00%> (-21.67%)
:arrow_down:

...stry/client/ServiceDiscoveryRegistryDirectory.java
24.25% <0.00%> (-21.29%)
:arrow_down:

... and 55 more

Continue to review full report at Codecov.

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


Make ReducersMapObject more typesafe

This will catch misspelling of properties inside combineReducers and complain if reducers don't reduce the correct child state type.
("S = any" for backwards compatibility)

Oh just found out this is already in the 'next' branch


Azerty keyboard : problem with keyboards shortcuts

Hi,
Thanks for nmail, it works great !
Though, as I use a french azerty keyboard, I encounter some problem with keyboard shortcuts that are not simple letters :

"<" gives "invalid input 0x3e" and it's the same for ">" or caps N (shift N), etc

hope it's clear enough
Thanks

Hi @rapha8l - while the help bar at the bottom of nmail shows upper case letters, the actual keyboard shortcuts are lower case.
Making the help bar like this was partly for aesthetic reasons and partly for consistency with the pine / alpine email clients, from which nmail draws a lot of inspiration, UI wise.
So instead of shift N, try use just n.
The keys < and > are special cases, they refer both to arrow left / right, and also to the unshifted < and > on a US keyboard (i.e. , and .). If you have arrow keys on your keyboard it might just be easiest to use them, but it's also possible to configure custom key mapping by editing ~/.nmail/ui.conf - the parameter names are key_back and key_open. Here's the default configuration for reference: https://github.com/d99kris/nmail#nmailuiconf
Hope this helps! Feel free to re-open the issue if you have any follow-up questions.