create task per mail fetch

Hi,
I'd love to create kanboard tasks by simply sending an E-Mail to my own adress. Functionality should be similar to the postie plugin for wordpress (https://wordpress.org/plugins/postie/), although no special features are necessary. The core function of fetching the account an create tasks from the given title and body text would be great and enough ;-)
Regards, Chris

You could create tasks via email.

Yea, but I have to use an external (paid) service to do it..
Although, perhaps I just didn't understand this description correctly:

Incoming emails workflow

You send an email to a specific address, by example<EMAIL_ADDRESS>Your email is forwarded to the third-party SMTP servers
The SMTP provider call the Kanboard webhook with the email in JSON or multipart/form-data formats
Kanboard parse the received email and create the task to the right project
Note: New tasks are automatically created in the first column.

so, let's say the URL of my kanboard is www.testurl.com/kanboard and the project I want to create tasks in is "project_one". What is the target E-Mail adress I should send my tasks to? Is it<EMAIL_ADDRESS>thanks, Chris

Sorry, page not found!
http://kanboard.net/documentation/email-tasks

@middeke
Wrong address! See: http://kanboard.net/documentation/create-tasks-by-email

Yes, but that's the page I already cited above.
Do I have to use one of the given external services or can I use an arbitrary E-Mail account, from which the tasks are fetched?

Yes, but that's the page I already cited above.

Ignore this, it was a message to @middeke.

Do I have to use one of the given external services or can I use an arbitrary E-Mail account…

External service or write your own script which uses the Kanboard API and executed by a cronjob.

@froschdesign
ah, OK, it was the link from the mail-integration sites like: http://kanboard.net/documentation/mailgun that was not found

Ok, thanks for your help. In this case, I would like to label this as a feature request ;-)

I would also like to be able to create tasks via email using my own smtp server, is it possible maybe i just did not find the link?

Take a look at #1158.


Flyout close button location on full screen (Maximize)

Flyout close button location on full screen (maximize).
When Flyout in window is set to full screen mode (maximized) close button location is too close to left screen edge.
Expected outcome
Close button should be with same width from left sceen edge in maximize mode as when windows is not maximized
Not Maximized:

Maximized:

It can be seen in Mahapps.Metro - Demo application: Flyouts > Show 2 > Maximize
--
Environment

MahApps.Metro v1.2.4

Thanks! 👍

@TOKN2 Thx for reporting. It's already fixed https://github.com/MahApps/MahApps.Metro/commit/2396569e189adb94d48344f19d8065f6735b81b6


do not configure proxy packages in CI as we do not use them

Apparently we do use this right now, to configure the kots CLI in airgap
we should find a better way to do things


google::cloud::storage::ObjectWriteStream fails if > 4 GiB written

What component of google-cloud-cpp is this related to?
google/cloud/storage
Describe the bug
In 32-bit builds, uploading streams > 4 GiB fail with:
Permanent error in UploadGenericChunk: Failed to parse Content-Range header. [INVALID_ARGUMENT]
To Reproduce
In a 32-bit build:
Use google::cloud::storage::Client::WriteObject to get a stream (m_writer).  Write > 4 GiB to the stream.  Close the stream.
m_writer->metadata().ok() is false and m_writer->last_status().message() is as above.
Expected behavior
Success.
Operating system:
Windows 10, but not particularly relevant.
What compiler and version are you using?
Visual Studio 2019, but not particularly relevant.
What version of google-cloud-cpp are you using?
Irrelevant, underlying problem is in current version: b308a107402f28e097898e91a07295231878cdcf
Investigation
The Content-Range header was:
Content-Range: bytes<PHONE_NUMBER>-9136473156/546538565
546538565 is rather obviously<PHONE_NUMBER> mod 2^32 so we are looking for a 64 to 32 bit truncation.  It was found in object_streambuf.cc.
FIX
Change std::size_t to std::uint64_t in object_streambuf.cc when calculating the upload size.
std::size_t upload_size = upload_session_->next_expected_byte() + actual_size;
should be
std::uint64_t upload_size = upload_session_->next_expected_byte() + actual_size;
'auto' would probably work as well; std::size_t is not well defined and is wrong.
Note that next_expected_byte() returns std::uint64_t and UploadFinalChunk() where upload_size is used expects std::uint64_t.

Thank you for the bug report.  I have submitted a PR for review with the fixes for your problem (and I think a number of other problems).

I verified the fix for my case.  Thanks for your prompt attention to the matter.


[REQ] calculate start time

Is your feature request related to a problem? Please describe.
The best time to use your sprinklers is right before sunrise, apparently that is best for your plants, and worst for any weeds, while it being still night is obviously better with regard to evaporation.
Describe the solution you'd like
Event thrown when you should start watering, the amount of time before sunrise that it needs to water.
Describe alternatives you've considered
Complex automations with sunset offset etc. but this code should have all the knowledge on what time to start, so why not use the eventing engine to let a automation pick it up.
Additional context
More complex is that I have three sprinklers for my grass, so currently have them scheduled one after another, which makes it a bit more complex, but that is not necessary for this.

Awesome ideas, should be doable. One question: I think you mean using the sun entity. Is that a default entity? I have not looked into it too much. Wondering if we can assume that thing is always going to be there or if we need to provide an option for users to plug in their own sunrise sensor.

it is a built-in integration, not sure if it is on by default, but probably most people using HA will have it on: https://www.home-assistant.io/integrations/sun/

new release in beta: https://github.com/jeroenterheerdt/HAsmartirrigation/releases/tag/v0.0.61 that implements this feature - please install and test :)

I am not seeing the event being fired, added more logging on v0.0.62

I don't see the event as available:

Shouldn't it be in the list?

I am not sure if it should be in the list - a component does not have to register an event, you just fire it. Now, maybe it is just not firing.

I am seeing it getting fired in the logs:

(ignore the part that says Daily Adjusted Run Time, that is just an error in the logging)
I can confirm that the start event is getting fired:

Yes i can confirm the event is triggered!


Standardise family-hub specific code

Default to not showing location data if the address or town aren't present, to allow DSA zone finder and family hub to work without bespoke code.
Report child abuse to your local council service still needs specific styling, so leave that hardcoded for the moment.

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
What
As there are likely to be more than one dataset in imminence without physical locations, simplify to remove existing hardcoded slug for family-hub, and detect whether to show the location info based on the presense of an address and/or town (it can't be by postcode, because Imminence at the moment always requires postcodes).
Why
DSA assessment is due to change soon, to a system where contact details will not include physical addresses. Also mild reduction in tech debt.
Trello card
How
Remove hard-coding and additional partials, add checks to see whether town/address is present and hide location data.
Screenshots?
No visible changes expected to the affected path (/find-family-hub-local-area)

Closing as obsolete.


Error: The following scripts have execution failures: the script for transaction input 0 (in the order of the TxIds)

./mainnet-utxo-at.sh addr.lobster
                           TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
0d515edcbe9aeb93b212f3953d3bba502f46a311eb39ffbd367f2f8277b8ccc4     1        2034438 lovelace + 1 cc7888851f0f5aa64c136e0c8fb251e9702f3f6c9efcf3a60a54f419.LobsterNFT + 3870 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterCounter + 97 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterVotes + TxOutDatumHash ScriptDataInAlonzoEra "45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0"
319752b414804415988fb1165358e69f46095a9e9b1c01ef0830c182dc57f78b     0        1000000 lovelace + TxOutDatumHashNone
4c34feb07e32aa4855a494306aefcf16743356811914d680e112a6ec12214455     0        1000000 lovelace + TxOutDatumHashNone
63091c70aa6f8b402faffd24909d93c7721cbdced7094b62e52d157da8fb44e4     0        5000000 lovelace + TxOutDatumHashNone
67d318fabdd9905033bfe6156c6595716c952d496cabb9d98773c948974780ec     0        1000000 lovelace + TxOutDatumHashNone
cb7b44500fc9145cf5b13a533bc7616eb219b7a080bc49d7ce6204c06b351733     0        1000000 lovelace + TxOutDatumHashNone
db250ed5eb4454843af19dea7ca84a8adda170fc88284e7e5e2381b41dab5f9b     1        30768137 lovelace + TxOutDatumHashNone

./mainnet-utxo-at.sh addr.wallet
                           TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
9e3411c4de5a0cb5a7fd731d73a8233fd55b2cc3fc840854592bd2fb0b200200     0        10000000 lovelace + TxOutDatumHashNone

payment.skey (redacted cborHex content) :
{
    "type": "PaymentExtendedSigningKeyShelley_ed25519_bip32",
    "description": "Payment Signing Key",
    "cborHex": ""
}

./lobster-contribute.sh 9e3411c4de5a0cb5a7fd731d73a8233fd55b2cc3fc840854592bd2fb0b200200#0 0d515edcbe9aeb93b212f3953d3bba502f46a311eb39ffbd367f2f8277b8ccc4#1 addr.wallet payment.skey 3870 4137 97

wallet utxo: 9e3411c4de5a0cb5a7fd731d73a8233fd55b2cc3fc840854592bd2fb0b200200#0
script utxo: 0d515edcbe9aeb93b212f3953d3bba502f46a311eb39ffbd367f2f8277b8ccc4#1
bodyfile: lobster-tx-body.03
outfile: lobster-tx.03
nftPolicyfile: nft-mint-policy.plutus
nftPolicyid: cc7888851f0f5aa64c136e0c8fb251e9702f3f6c9efcf3a60a54f419
otherPolicyfile: other-mint-policy.plutus
otherPolicyid: fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50
nftValue: 1 cc7888851f0f5aa64c136e0c8fb251e9702f3f6c9efcf3a60a54f419.LobsterNFT
counterValue: 4137 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterCounter
votesValue: 98 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterVotes
walletAddress: addr1qxuv7vx66gaa9ymv7uqmwx54lqhflmjf26welcfc0a7d600f2nvzry2vgzxmp92e2vvymklv64frmk3rfdduh3crdcls3jaak0
scriptFile: lobster.plutus
scriptAddress: addr1w8433zk2shufk42hn4x7zznjjuqwwyfmxffcjszw5l2ulesdt3jff
signing key file: payment.skey
old counter: 3870
new counter: 4137
increaseValue: 267 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterCounter + 1 fda1b6b487bee2e7f64ecf24d24b1224342484c0195ee1b7b943db50.LobsterVotes
old votes: 97
new votes: 98

querying protocol parameters

Command failed: transaction build  Error: The following scripts have execution failures:
the script for transaction input 0 (in the order of the TxIds) failed with The Plutus script evaluation failed: An error has occurred:  User error:
The provided Plutus code called 'error'.

saved transaction to lobster-tx-body.03
Command failed: transaction sign  Error: lobster-tx-body.03: lobster-tx-body.03: openBinaryFile: does not exist (No such file or directory)
signed transaction and saved as lobster-tx.03
Command failed: transaction submit  Error: lobster-tx.03: lobster-tx.03: openBinaryFile: does not exist (No such file or directory)
submitted transaction

Running Cardano-cli 1.29.0 (running it from a pool relay node). I can't see anything obviously wrong here.

LobsterCounter can only be incremented up to 100 as written in the docs.

If LobsterCounter can only be incremented up to 100 then why is it at 522?
Also, the LobsterVote is at 501 (max 500). It seems the error pertains to something else.

It was up to 100 from the previous counter. I.e, if the counter was at 1025, the most you could increment to was 1125.  I'm sure where you got 522 for LobsterCounter from, it was at 3870 when I did it.
LobsterVote was 500 voters max, and then the contract finishes at 501 to finalise.

Yeah, I'm not sure either - that's what came up when I ./mainnet-utxo-at.sh addr.lobster though...

It would fail now because the LobsterChallenge has reached its max votes and therefore is complete. Voter 500 was submitted just before the Summit from what I saw on Twitter.

The winning name was Logan.
https://twitter.com/larsbrunjes/status/1441574001181143043?s=21


Bitwise/modulo operators raise error with adjacent +/-/@ characters

Description
To avoid sequences like &+ or |- to be interpreted as PG operators in case there is no space in between, a space is inserted in ANTLR behind the bitwise operators AND, OR, XOR, NOT (&, |, ^, ~) and the modulo operator (%)  if the subsequent expression follows the operator immediately (i.e. without any whitespace) and if the first character of the expressions is '+', '-' or '@'. For the NOT operator (~), a space is also inserted before it as a preceding '+' or '-' would also cause an error.
Signed-off-by: Rob Verschoor<EMAIL_ADDRESS>Issues Resolved
BABEL-1033 Bitwise/modulo T-SQL operators raise error without whitespace and with plus/minus/at sign
Test Scenarios Covered

Use case based - Yes

Boundary conditions - N/A

Arbitrary inputs - N/A

Negative test cases - Yes

Minor version upgrade tests - N/A

Major version upgrade tests - N/A

Performance tests - N/A

Tooling impact - N/A

Client tests - N/A

Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 72.296%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
39718

Relevant Lines:
54938

💛  - Coveralls


Can you explain the restore feature better?

So I think I have everything about working however I'm really stuck on the restore process.
Here is my docker-compose service:
  bitwarden-backup:
    container_name: bitwarden-backup
    hostname: bitwarden-backup
    image: ttionya/vaultwarden-backup:latest
    restart: always
    networks:
      - bitwarden_rs_net
    secrets:
      - heirloom-mail-x_secret
    depends_on:
      <<: *bitwarden-depends
    volumes:
      - /home/bitwarden/.config/vaultwarden-backup:/config
      - /var/data/bw-data:/data
    environment:
      - RCLONE_REMOTE_NAME=arch-tm
      - RCLONE_REMOTE_DIR=/mnt/bitwarden-backup
      - CRON=*/5 * * * *
      - ZIP_ENABLE=TRUE
      - ZIP_TYPE=7z
      - BACKUP_KEEP_DAYS=30
      - BACKUP_FILE_DATE_SUFFIX=-%r
      - TIMEZONE=${TZ}
      - MAIL_SMTP_ENABLE=TRUE
      - MAIL_SMTP_VARIABLES_FILE=/run/secrets/heirloom-mail-x_secret
      - MAIL_WHEN_SUCCESS=TRUE
      - MAIL_WHEN_FAILURE=TRUE
      - DATA_DIR=/data

My config file is the following:
[arch-tm]
type = sftp
host = arch-tm.domain.com
user = bitwarden
key_file = ${RCLONE_CONFIG_DIR}/merged_key
pubkey_file = ${RCLONE_CONFIG_DIR}/merged_key
known_hosts_file = ${RCLONE_CONFIG_DIR}/known_hosts
md5sum_command = md5sum
sha1sum_command = sha1sum

On the remote server (the target of the backups), I have directory listings similar to the following:
'backup.20220304-01:10:00 AM.7z'  'backup.20220304-12:51:00 AM.7z'
'backup.20220304-01:15:00 AM.7z'  'backup.20220304-12:52:00 AM.7z'
'backup.20220304-01:20:00 AM.7z'  'backup.20220304-12:53:00 AM.7z'
'backup.20220304-01:25:00 AM.7z'  'backup.20220304-12:54:00 AM.7z'
'backup.20220304-12:46:00 AM.7z'  'backup.20220304-12:55:00 AM.7z'
'backup.20220304-12:47:00 AM.7z'  'backup.20220304-12:56:00 AM.7z'
'backup.20220304-12:48:00 AM.7z'  'backup.20220304-12:57:00 AM.7z'
'backup.20220304-12:49:00 AM.7z'  'backup.20220304-12:58:00 AM.7z'
'backup.20220304-12:50:00 AM.7z'  'backup.20220304-12:59:01 AM.7z'

Extracting one of the backups manually I get the following:
'config.20220304-01:10:00 AM.json'  'rsakey.20220304-01:10:00 AM.tar'
'db.20220304-01:10:00 AM.sqlite3'

So if I wanted manually to restore the backup -- I'd stop the vaultwarden container, and I could copy config.20220304-01:10:00 AM.json->config.json, db.20220304-01:10:00 AM.sqlite3->db.sqlite3, and manually extract the rsakeys and also restore all those.
I'm not sure however how to reverse the process. The example given in the documentation I didn't understand.
  --mount type=volume,source=vaultwarden-data,target=/bitwarden/data/ \
  --mount type=bind,source=$(pwd),target=/bitwarden/restore/

I don't see how the backup is going to restore over sftp -- I don't see a config file here anywhere this is mounted.
Could you help with maybe more examples?
Oh one last thing although the mail test works, when trying to send mail from the program -- I'm getting this in my logs:
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2022-03-04 03:00:01 ....A         1377        35008  config.20220304-03:00:01.json
2022-03-04 03:00:01 ....A       249856               db.20220304-03:00:01.sqlite3
2022-03-04 03:00:01 ....A         7680               rsakey.20220304-03:00:01.tar
------------------- ----- ------------ ------------  ------------------------
2022-03-04 03:00:01             258913        35008  3 files
upload backup file to storage system
delete 30 days ago backup files
mail send was successfully
send-mail: applet not found

No mail is actually sent when transfer is completed. successfully.

Hey @kevdogg ,
The restore instructions are indeed not clearly described, I tried to update it.

--mount type=bind,source=$(pwd),target=/bitwarden/restore/

It will map the current directory to the container's /bitwarden/restore, directory where the restore program will look for backup files.

--mount type=volume,source=vaultwarden-data,target=/bitwarden/data/ \

Depending on your docker-compse.yml, it doesn't apply to you, for you you can use --mount type=bind,source=/var/data/bw-data/,target=/data/. It is used to specify where the files are restored to.
For email, do you specify the MAIL_TO environment variable?

Ok so looking at your instructions let me kind of go through the restore process with you to see if I make sense.
Per the backups, I'm using rclone via sftp to transfer the backup images password protected via a 7zip archive to a remote computer.  In order to restore, Id first have to select my specific archive, and actually manually transfer this archive back to the bitwarden host.  I'll have to unzip the archive to create a directory, and then use the appropriate bind parameter to link the local directory to the container.   I guess I was under the impression the actual rclone command would be reversed -- however this isn't the case since this requires some manual intervention to bring back the password protected archive and unzip the archive.
My original bind volumes were mounted into the container via:

/var/data/bw-data:/data

So lets say I'm currently in a local directory that has been unzipped containing the backup sources I want to restore, I suppose the command would be:
docker run --rm -it
--mount type=bind,source=var/data/bw-data/,target=/data/
--mount type=bind,source=$(pwd),target=/bitwarden/restore/
-e DATA_DIR="/data"
ttionya/vaultwarden-backup:latest restore
In terms of the mail issue - I think I got it figured out.  Honestly the heirloom mailx program that is used -- there isn't a ton of examples out there on the internet -- I found more using the actual mail program (which i think is actual snail) and less on heirloom mailx.  A lot of the sites out there don't distinguish between the two so syntax is tricky since its not the same.
What I did in my compose file was use the following:
-<EMAIL_ADDRESS>- MAIL_SMTP_ENABLE=TRUE
- MAIL_SMTP_VARIABLES_FILE=/run/secrets/heirloom-mail-x_secret
- MAIL_WHEN_SUCCESS=TRUE
- MAIL_WHEN_FAILURE=TRUE
With the secrets file I have the following:
-S smtp=smtps://postfix..com:465 -S smtp-auth=login -S smtp-auth-user=bitwarden -S smtp-auth-password= -S ssl-verify=strict -r bitwarden@.com(Bitwarden-Backup@archbw)
I used the -r parameter although I've seen other documentation use the -S sender= parameter.  Anyway the part contained in the () can not have any spaces -- that was part of the problem --- no spaces within the parentheses.   The regular mail program would use different synxtax.
Lastly, unrelated to the two above topics
The container looks like it needs to be run as root.  I tried running the container as a non root user, however the cron timers and such couldn't be set up as a non-root user.  I haven't looked at the code per say -- but some of the Dockerfiles, but I don't know why a crontab couldn't be set up as a non-root user and run that way.
Thanks for reply.

Thanks for the detailed explanation.
Now the container cannot be started as a non-root user, because crond can only be started as root user. I remembered that there was feedback about this before and I will try to find a way to support this feature.
Back to the main topic. The tool's restore is designed to be rclone-independent, no rclone configuration or rclone environment variables are required, just specify the files to be restored and map them to the container's specified directory. So you need to manually download the backup files from the remote storage to the computer that needs to be restored. And you don't need to unzip the files manually, just use --zip-file to specify the backup zip file.
Because the restore operation is hardly ever used, and to do it automatically by rclone to download the files from the remote storage and restore them, you need to pass multiple environment variables (like RCLONE_REMOTE_NAME and RCLONE_REMOTE_DIR), which increases the configuration cost. So I need to think if it is worth to support rclone based restore.
About mail, I don't know much about linux using SMTP to send mail, I chose "heirloom mailx" just because I happened to find it at that time and tested that I could send mail properly. If you don't use the -r parameter, but use -S from=address will it work properly?

So if I use the --zip-file argument, does the process prompt for a password? I ask this because the password is usually kept within the config directory and I noticed that the restore command (if run in isolation) does not require the config volume to be mounted.

@kevdogg ,

So if I use the --zip-file argument, does the process prompt for a password?

Yes, if you do not specify a password with -p/--password, the password will be asked for interactively.

Hey thanks for that information.  Are there any other hidden flags for the restore command?  I only ask this since the password flag wasn't included in the documentation?

@kevdogg ,
All environment variables and parameters are listed in the documentation. The restored option is just collapsed, see restore options.

I too am having problems running a restore.
I backup using the automatic method, and my Vaultwarden data is mapped locally to /bw-data/
I've downloaed the zipped backup locally to /restore (putting the data to /restore/restore/backup.20220908.zip)
I run;
cd /restore
docker stop bitwarden
docker run --rm -it
--mount type=bind,source="/bw-data/",target=/data/
--mount type=bind,source=$(pwd),target=/bitwarden/restore/
-e DATA_DIR="/data"
ttionya/vaultwarden-backup:latest restore -zip-file
And it returns
Empty input
What am I missing?
Thanks

@marklockwood-techie ,
The tool does not automatically use any files, so you need to specify the files to be restored.
So
...
ttionya/vaultwarden-backup:latest restore --zip-file <file>

Maybe the documentation is not clear, I will optimize it.

Yes, that works now, thanks again

Hi, I have a similar problem trying to restore, I am hoping you can assist me where I am going wrong
the restore doesn't seem to see the backup
Vaultwarden data is mapped locally to /vw-data/
I've download the 7z zipped backup locally to /restore
docker run --rm -it
--mount type=bind,source="/vw-data/",target=/data/
--mount type=bind,source=$(pwd),target=/restore/ -e ZIP_TYPE="7z" -e DATA_DIR="/data"
ttionya/vaultwarden-backup:latest restore --zip-file "backup.7z"
Restore will overwrite the existing files, continue? (y/N)
(Default: n): y
--zip-file: cannot access backup.7z: No such file
thank you


Add Safari views for iOS 11+

This allows users to login sharing a session with the main instance of safari in an easy manner.

The build failure doesn't seem related to my changes.

thanks!


Updated bundle to use strict standard 2.0.

Closes #178

Should be merged after strict standard update, since there are some bugs right now in version 2.1.


Imparative Materialization

In some cases, it might make sense to imparatively trigger materialization in the middle of a task:
@materialize(lazy=True, input_type=sa.Table)
def task():
  sql = sa.select(sa.literal(1).label("a"))
  tbl = dag.Table(sql).materialize()
  sql2 = sa.select(tbl).limit(1)
  return dag.Table(sql2)

On first sight this looks like a crazy violation of principles that are important make automatic cache invalidation work. On the other hand, it can be implemented tolerating a bit more magic. In fact it would be nice if it is even possible to close with a materialize: return dag.Table(sql2).materialize(). It would make no difference except that any errors during materialization would still be reported with stack trace of task open => much easier debugging.
The magic that needs to happen is that in case multiple dag.Table().materialize() happen inside a task, the situation of the first being cache valid and the second cache invalid will cause trouble. There are multiple ways out of this trouble:

We throw an exception on the second materialize() that is cache-invalid. This will trigger a rerun of the task where the first is executed as well.
The first materialize returns a reference to the cached object instead of a fake reference.

Conceptional ideas for the magic:

Table.materialize communicates with Orchestration/Materialization via TaskContext that is open during task execution
Table.materialize() should take an optional engine + schema argument for interactive debugging. They should be auto-filled with RunContext/ConfigContext/TaskContext information.
References returned by Table.materialize should be stored somewhere, so at the end of a task, it is easy to see what materializations were triggered by the task. Also we should keep the Table objects that were materialized. In case the task returns such references, they should be replaced by their respective Table object knowing that materialization already happened.
It would probably be prohibitively hard to guarantee that we understand the relation between two queries that are materialized one after another. Thus we need to assume that any subsequent materialize() call is dependent on preceding ones. This means if the preceding one was cache-invalid, the subsequent ones are as well. We might add some way for the users to say that several materializations are guaranteed independent. For example: return *dag.materialize(dag.Table(t1), dag.Table(t2)). In case we receive both args and kwargs to dag.materialize(), we might either error or give synthetic names to the args within the returned dictionary.

As I am writing this, I am favoring the solution:

The first materialize returns a reference to the cached object instead of a fake reference.

I think there is not that much that has to change for this to happen. Not even in the cache invalidation logic. The logic which table depends on which other one (subsequent materialize() calls) is available at runtime by the reproduced sequence of materialize() calls and does not need to be represented in metadata tables.

For the implementation of option 2., there are a few detailed decisions necessary:

We support calling tasks without RunContext open for dataframe tasks that simply take a dataframe and return one. In general we like that return dag.Table(...) should be identical to return dag.Table(...).materialize(). Thus it is unclear what Table.materialize() should do in case no RunContext is open. One idea would to not do anything and simply to return Table.obj. That is quite different to what happens with RunContext open, but in fact the usability is probably maximized by this measure.
With RunContext open, it would be nice to offer three options for what to return from Table.materialize(): a) Return a reference with the exact same type as input_type of the task. b) Return an explicitly given return_as_type object. c) Return None and don't dematerialize after writing the table. There are plenty of ways how to design the call interface. One option is Table.materialize(config_context: ConfigContext | None = None, return_as_type = None, return_nothing:bool = False, drop_if_exists:bool = False). I suggest to interpret return_as_type=None as take input_type from Task if respective TableHook returns a reference (TableHooks need to say themselves what they do). If the input_type TableHook does not return a reference, I suggest returning a sqlalchemy. Table reference by default.
We don't really need the debug.materialize_table function any more with Table.materialize(drop_if_exists=True). I would still keep it for more control of options (debug_suffix, flag_task_debug_tainted). The implementation of both can be shared though. I would also set table.debug_tainted=True in Table.materialize() if it is executed multiple times for the same table object.
We assume that every Table.materialize() is a dependency of every subsequent Table.materialize() call or any Table returned by the task. This can be reflected with a private Table property that is also JSON serialized and thus affects cache invalidation. Table._assumed_dependencies=[Table(...), Table(...), ...]


chore: convert the repo into a monorepo and start the foundations of the server package

Follow the PR #32
@iOiurson I suggest to review and merge that PR right now (if it's ok for you) in order to prevent some nightmare rebasing ;)

No problemo 🤙


Increase timeout for cache upload/download on Travis to 1000 seconds

Coverage decreased (-0.09%) to 88.591% when pulling 920361e011270a8c29936aad31837c0bbf1533ce on tgianos:increaseCacheTimeout into 2587385e187ab865e5abd19e04872fa6e8add36b on Netflix:master.


Adds test case for route specific actuator endpoint

New PR for https://github.com/spring-cloud/spring-cloud-gateway/pull/1185
Rebased to most recent changes and only left the test case.

Merged via 61f2a96c19e225c15e616694999477e8c7ce424d


New Indonesian Translation

Pull request of Indonesian translation of Kitsu web.
Changes proposed in this pull request:

Indonesian translation (id-id.yaml)
Add Indonesian title value on en-us.yaml for future DB title addition

/cc @hummingbird-me/staff

You can test this locally to see how they render with yarn start, then go to http://localhost:4200
Download yarn from https://classic.yarnpkg.com/en/docs/install/#windows-stable and do yarn to install the dependencies

@crse can now view locale locally :)


CCUBE-1470

Changes

Add basic dropdown item element and schema
Add dropdown validation for required
Add default empty dropdown items
Fix existing test cases
Add test cases for dropdown items
Clean up & organise imports
Add types to classify text based and option group
Add test cases for dropdown items
Edit element typings
Add custom dropdown items validation in schema
Edit dropdown test cases

Addtional Information

You may refer to this ticket

I noticed that this PR is requested to be merged to CCUBE-1469, I presume that is the long-lived branch? for a long-lived branch to work, it ought to contain approved commits only, this means that there should be a different branch like dropdown-long-lived and CCUBE-1469 should have a PR to merge to it, followed by a PR from CCUBE-1470 to merge into it.
I also notice a bunch of merge conflicts, may I request to resolve them first because there are 43 changed files now, not sure if this is a result of the merge conflicts

I have updated this PR to merge to the main branch, so you shouldnt need to create a new PR

may I trouble you to resolve the merge conflicts


ConnectionError: Unable to start Dash server

I've got a jupyterlab server, set up by colleagues & running in docker on a specific port (say 8080). I've naively set up jupyterlab dash, and running a simple dash app yields the following. If I set the port to 8080 in the app viewer, the first line is omitted but the error is the same. Any idea how I might troubleshoot and/or get some more logs for this issue?
INFO:werkzeug: * Running on http://localhost:46119/ (Press CTRL+C to quit)
---------------------------------------------------------------------------
ConnectionError                           Traceback (most recent call last)
<ipython-input-10-8ef8c89fd51e> in <module>()
     24 ])
     25
---> 26 viewer.show(app)

~/.conda/envs/compute/lib/python3.6/site-packages/jupyterlab_dash/__init__.py in show(self, app, *args, **kwargs)
     53
     54     def show(self, app, *args, **kwargs):
---> 55         self._perform_show(0, app, *args, **kwargs)
     56
     57     def _perform_show(self, tries, app, *args, **kwargs):

~/.conda/envs/compute/lib/python3.6/site-packages/jupyterlab_dash/__init__.py in _perform_show(self, tries, app, *args, **kwargs)
    108             self.server_process.start()
    109
--> 110             self._show_when_server_is_ready()
    111
    112     def _show_when_server_is_ready(self):

~/.conda/envs/compute/lib/python3.6/site-packages/jupyterlab_dash/__init__.py in _show_when_server_is_ready(self)
    137         else:
    138             # Failed to start development server
--> 139             raise ConnectionError('Unable to start Dash server')
    140
    141     def terminate(self):

ConnectionError: Unable to start Dash server```

We've sofar figured out that this is something to do with how we hijack logging, and this hack enables it to run:
viewer.stderr_queue.write('Running on'.encode('utf-8'))
viewer.show(app)

to get this bit of viewer.show() to pass:
        while not started and retries < 100:
            try:
                out = self.stderr_queue.queue.get(timeout=.1)
                try:
                    out = out.decode()
                except AttributeError:
                    pass

                if 'Running on' in out:
                    started = True
            except Empty:
                retries += 1
                pass

So, is there a better way of doing this that can't be 'hacked' by external logging config? (Admittedly, we have an issue here, but possibly there's another way of detecting a subprocess has started successfully)


[GLUTEN-8283][CH] Eliminate CSE via ExpressionParser

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
Fixes: #8283
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
unit tests
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

A bench test as following
before

after


ARDs are not available in the latest version of the docs deployed to the GitHub pages

As described in the subject, the ADRs are missing for some reason.
Blocken link: https://hyperledger.github.io/identus-docs/adrs
Screenshot:

Assigned to @FabioPinheiro to figure out what is wrong.
@FabioPinheiro, if the ADRs engine doesn't work correctly with the GitHub pages, let's consider moving the ADRs from the cloud agent project to the docs as static files.

This is how it looks now
cc @yshyn-iohk @elribonazo

This is Done


Clean up logging output when running test suite

Our APNS tests print various warnings as they run, which makes the test output messy:
Running zerver.tests.test_push_notifications.APNsFeedbackTest.test_feedback
2016-08-09 12:50:14,842 INFO     Found unavailable token aaaa, unavailable since 2016-08-09 16:50:14+00:00
2016-08-09 12:50:14,843 INFO     Finished checking feedback for stale tokens
Running zerver.tests.test_push_notifications.SendNotificationTest.test_connection_both_none
2016-08-09 12:50:14,962 ERROR    Attempting to send push notification, but no connection was found. This may be because we could not find the APNS Certificate file.
Running zerver.tests.test_push_notifications.SendNotificationTest.test_connection_single_none
2016-08-09 12:50:14,968 INFO     APNS: Sending apple push notification to devices: [('bbbb', 'com.zulip.Zulip', 'u7s='), ('aaaa', 'com.zulip.Zulip', 'qqo=')]
2016-08-09 12:50:14,969 INFO     Not delivering APNS message <zerver.lib.push_notifications.APNsMessage object at 0x7fd6ef53f940> to user <UserProfile<EMAIL_ADDRESS><Realm: zulip.com 1>> due to missing connection
2016-08-09 12:50:14,969 WARNING  APNS: Not sending notification because tokens didn't match devices: ['com.dropbox.Zulip']
Running zerver.tests.test_push_notifications.SendNotificationTest.test_do_push_to_apns_service
Running zerver.tests.test_push_notifications.SendNotificationTest.test_send_apple_push_notifiction
2016-08-09 12:50:14,978 INFO     APNS: Sending apple push notification to devices: [('bbbb', 'com.zulip.Zulip', 'u7s='), ('aaaa', 'com.zulip.Zulip', 'qqo=')]
2016-08-09 12:50:14,978 WARNING  APNS: Not sending notification because tokens didn't match devices: ['com.dropbox.Zulip']

@umairwaheed can you take a look at this?  I think you handled this issue using mocks in the GCM tests, and maybe the same technique would work well here.

Sure.


Proposal: use Setuptools entrypoints to make array-api submodules discoverable

Over in https://github.com/HypothesisWorks/hypothesis/pull/3065, we're working on test tooling that takes an array-api implementation (e.g. numpy.array_api, etc) and returns test helpers which use that implementation.  For ergonomics we'd also like to automatically find the array-api implementation, if there is one, for a given module - but as I understand it there's no way to discover that mapping.  Yet!
I therefore propose that as part of the Array API standard, packages implementing the API should register a setuptools entry point declaring which (sub)module contains the implementation.  For example, Numpy would register:
        entry_points={
            'console_scripts': f2py_cmds,
            'array_api': ['numpy = numpy.array_api'],  # new: maps top-level name to array api implementation
        },

Implementations can then be found using importlib.metadata (see here for < py3.7) as follows:
import numpy.array_api
from importlib.metadata import entry_points

implementations = {entry.name: entry for entry in entry_points().get("array_api", [])}

npa = implementations["numpy"].load()
assert npa is numpy.array_api

This allows us to avoid hard-coded lists of known libraries and locations, which will inevitably be both incomplete and out of date as the ecosystem evolves.  It also makes it easy to find all installed array-api implementations, supporting a much wider range of purposes than testing 🎉

Thanks @Zac-HD! Discoverability sounds like a great idea.
importlib is part of the stdlib, so that sounds fine. For registering an entry-point, my memory is a bit fuzzy about whether it can be done without setuptools. That seems desirable, since it's not a pleasant dependency to require every library to have, and we'll likely move NumPy away from it before distutils disappears from the stdlib.

https://packaging.python.org/specifications/entry-points/ says:

The entry point file format was originally developed to allow packages built with setuptools to provide integration point metadata that would be read at runtime with importlib.metadata. It is now defined as a PyPA interoperability specification in order to allow build tools other than setuptools to publish importlib.metadata compatible entry point metadata, and runtime libraries other than importlib.metadata to portably read published entry point metadata (potentially with different caching and conflict resolution strategies).

So I think we're set there, though I can't speak to how well other tools support the standard or how to use them.

CC also @asmeurer - programatic discovery of implementations seems useful for the test suite 😉

Cool, thanks. If there are other tools that can do it but need some fixes, or even if we can write a tiny package that does exactly this job and nothing else, then that's fine imho.

@honno I think a reasonable inclusion place would be in the "How to adopt this API" section of the specification. Feel free to submit a PR adding this guidance. :)


The mnemonic field should have a hide option

The mnemonic is as sensitive info as the password. There should be a show/hide toggle (the eye icon) like on the password field. And perhaps, it should be hidden by default (like the password).

Mnemonic input reworked as password input
https://github.com/storj/storj-mobile/commit/9fc61678612a9cecab18b6900690701116b13e73


merger: don't create key_def/merger for one source

A merge source has the same API as merger itself, so there is no
difference in hehaviour between a merger created from one source and
this source itself. However there is no overhead for creating key_def,
merger and passing tuples over the merger.
This opmimization gives me 13% boost on the case from #220.
Follows up #220

There is no simple way to check it with a test, so I skipped it. Hopefully we'll see a difference after #225. I tested the patch manually for now.

We definitely need a performance regression test that allow us to avoid degradation in the future. If I get it right, we will address it in #225. Right?


Import the c headers providing the types used in cmp.h

Seems like these headers would live better in the cmp.h than cmp.c.
Is there an advantage to not including the c header libraries in the cmp.h?  Would someone potentially use a different set of headers to import the [u]int*_t types?
I didn't update the tests or examples, as I don't use them, but making this change would remove the need to import stdbool, stddef, and stdint from them as well.

Not all compilers or platforms support C99 types like bool and fixed-width types.  Typically then, software written for those compilers/platforms will define them in terms of platform-specific types, like if your int is 16-bits wide, that becomes int16_t, and so on.
But aside from that, including headers in other headers is bad practice, especially in libraries, and especially to save 3 lines of typing.

Hey @andreyvps.  Sorry for my tone earlier, I thought this was a further comment on a previous PR which mostly does the same thing, so I got a little irritated.  I should have said:
Thanks for your work!  I tend to shy away from putting #include statements in headers because it can lead to long compilation times and complicated dependency graphs.  I understand that there's two schools of thought on this, with the other being "#include statements should be as similar as possible to something like 'import' in Python".  I just happen to disagree, largely because I've dealt with both and found "no #include statements in headers" to be more maintainable.  Other people may have different experiences and thus might have different stances on this, but this is mine.  Again, thanks for contributing, take care :)


Hide sidebar by default until adding new server

@RocketChat/core

Closes #304

Not sure if this change is wanted, but it didn't take long, so I don't mind either way.
By default it will now hide the server list until you attempt add a new server, then it will be shown until you close it again.
There are 3 ways you can add a server now the sidebar is hidden:

⌘N
Select Window->Add new server
Select View->Toggle server list then add server with + in server list

I would like this change. I deploy to about 100+ machines. Only 5 of them may add a second server at some point. I prefer the default behavior here of no sidebar until a 2nd server is desired.

@engelgabriel What do you think about this PR?

I like the idea of making this optional. We should have a way to pass the SEVER URL to the install tool on Windows, and if that is set, the server bar would be hidden by default. But in all other regular installations, it would start visible.
Also, I'd add a X on the bottom of the bar, to make it easy for people to hide it.


Dark Mode Implementation

I would like to implement Dark mode on the website that would help reduce eye strains. Please assign this task to me.

this is great i recently did it please assign it to me


read me corrections

@dasamantaraoaditya, In my opinion, this change doesn't improve the tutorial much. Also the current state goes along with the rest of the tutorial than proposed one


Multi-level JSON

Hello,
I just implemented multi-level JSON support wit tests,
please take a look.
Thanks,
Alexander

Thanks for the contribution, Alexander!
I'll take a look. FYI, there's another JsonLoader in Pig's trunk now (it requires static schemas though).
Also -- we can't bump up from Thrift 0.5 to 0.7 right now (lots of dependencies). Was that meant as part of the patch?

Ok, now that I read the patch -- that looks good, but I'd want to verify this can actually be read correctly in Pig. Have you tried some sample scripts to see if you can reach inside nested maps? Up to version 0.8, Pig had a nasty habit of assuming <String, String> maps (which is why we did it this way in EB). There was a bunch of work in Pig 0.9 to fix this, but I haven't tested how well Pig handles complex values now. It would be terrific if you tried your patch with some scripts on Pig 8 and 9 and reported results.
Thanks again for working on this!

Hello, thank you for review! Main idea of this improvement to provide ability to read few levels of JSON from Flume. We already tested and it works in the Pig for us. About Trift 0.7.0 probably that was not the best idea, assumption was based on passed tests ;) Thanks!

also, does this imply arrays should be databags?

Can you please clarify difference?

This patch converts a json map to Pig map. Similarly as a userI would expect json arrays to be Pig arrays. Currently arrays would be strings.

Pull request #123 also aims to do the same thing.

Hey a-b, doing a bit if issue cleanup and just seeing this.
Multi-level support certainly sounds useful. Before seeing this pull request I made a bunch of changes to the json loader. Any chance you could rework this patch off master?
Since this might affect existing users how should this be made optional for a few releases - presumably handling arbitrarily nested structures should be the default behavior.


WildFly 19.0.0 for MP 3.2

Fixes #233
Adds WildFly 19

@rdebusscher Thank you for the review. I deleted the variable and also some obsoleted comments.

@Karm , I have just released 1.0.0.Alpha4 of the plugin, would be great if you could upgrade. I ran mvn clean verify -Pthorntail -Dtest=TestMatrixTest#wildfly* -Dskip.integration.tests=false -DSTARTER_TS_WORKSPACE=/tmp and all went well.

@jfdenise Upgraded in the last commit.


Can't find files?

So I have just moved from a web server to a dedicated server and I installed codiad and all, now the sites directory and data is at /home/websites/ide but for some reason (when checking before installing), it says it can't find anything? Everything is writable? So is there something I am missing?
Thanks, good work though!

Had a similar problem. Tried reinstalling but everything is messed up now. I'll let you know if I resolved it.

you have to check data/projects.php for the right paths, depending wether you are using absolute paths or not


refactor: replace addr.HostAddr hierarchy with tagged union addr.Host

Replace the addr.HostAddr type hierarchy, consisting of the HostAddr interface and the HostNone, HostIPv4, HostIPv6 and HostSVC implementations with a single type addr.Host, representing all the different host address types as a tagged union ("sum type"). This uses, and follows the spirit of, the net/netip.Addr types to represent IP addresses for both IPv4 and IPv6.
The addr.Host type is a simple value type, which can be created and copied without heap allocations and can be used in comparisons and as map keys.
In addition to replacing all uses of addr.HostAddr, the new addr.Host type is used in the slayers.SCION.Get/SetSrc/DstAddr interfaces, as well as in the DRKey infrastructure. Using a consistent representation of the addresses allows to get rid of duplicate functionality and a number of address conversions, e.g. in snet.
In contrast to the addr.HostAddr interface, the new addr.Host  does not implement the net.Addr interface. In particular, service addresses were passed through layers requiring a net.Addr. Use snet.SVCAddr in these cases.
Additionally, add a new addr.Addr type representing a full SCION address (ISD, AS and host address), including parsing functionality. This definition is identical to the snet.SCIONAddress type, which is now only kept as a type alias for compatibility.
Closes #4149.
Future work:

pkg/addr is a public API and should have a more SCION-specific and less clash-likely name, e.g. saddr
replace snet.SCIONAddress by  addr.Addr
adopt using addr.Addr in the ping, traceroute etc tools, in place of the ill-fitting use of snet.UDPAddr.
add addr.MustParse{ISD,AS,IA} for completeness sake (currently in xtest package)
get rid of the IP-slice to netip.Addr conversions by gradually increasing the adoption of netip.Addr and related APIs

This change is

Thanks for the reviews and feedback so far!
Since this PR implements a proposal that has not been formally accepted, I will add the "final comment period" label on #4149 and leave this PR open until the 10 day period has elapsed.


terraform doesn't notice file changes

The resource name only includes a hash of the name.  If the contents
changes terraform doesn't know to update the file.  We achieve this by
including a hash of the file contents.

I tried to following go idioms and conventions but this is the first time I've written any go so I likely missed some.

This looks good to me. Thanks!


Fix lowering of BrOnNotEmpty

When we finish iterating the ForInCache in JIT'ed code and if the cache is completed, we can exit the loop.
For BrOnNotEmpty, the target of the branch is the loop body instead of loop end.  We need to use the label after the instruction

@pleath  pls review.

LGTM 👍


feat: add linkTags API

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[x] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[x] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

I'm trying to add a custom link tag to the header of all the pages on my Docusaurus site. In my case I'm looking to render a web monetization link which looks like this:
<link rel="monetization" content="https://ilp.uphold.com/LwQQhXdpwxeJ" />

It looks like there isn't a way to generically supply global link tags with Docusaurus. At least... until now!
I've implemented a new API called linkTags which is a generic mechanism for rendering link tags. It is modelled after the metadata API and sits alongside it in the ThemeConfig of docusaurus.config.js
Test Plan

I'm not sure where unit tests for this would go - but if you give me a pointer I'll write one!  In the meantime you can see a screenshot of this working in this PR and see it working in the preview website also.
Test links

Look at that!  It works!
Deploy preview: https://deploy-preview-8077--docusaurus-2.netlify.app/
Crack open the devtools and you can see the link tag present and correct.
Related issues/PRs

https://github.com/facebook/docusaurus/issues/8049

I don't have any opinions on this, but I wonder whether we should make it a theme API (like metadata) or a core API (like stylesheets). I don't really know why we even have the latter.

I put it where it is as it seems like the logical bedfellow to metadata. It would feel perhaps a little strange if you globally configured meta tags in one place and link tags in another. But I don't feel super strongly

Me neither. Feels weird since stylesheets does quite the same thing, but I can see why it lives in core (we might do some other optimizations with them).

Awesome - will do!  Just heading to bed now; will put some docs up tomorrow I expect.

Could you add some docs in https://docusaurus.io/docs/api/themes/configuration and possibly https://docusaurus.io/docs/seo?

Added docs:

https://deploy-preview-8077--docusaurus-2.netlify.app/docs/api/themes/configuration#linktags
https://deploy-preview-8077--docusaurus-2.netlify.app/docs/seo

Paging @Josh-Cena 😅

There's a failing Windows test, but by the looks of it, it's a flaky test and not linked to this PR. My guess is that if you rerun it'll pass.

What prevents you from using a plugin instead?
The API is not easy to discover but I think this impl should be good enough?
function pluginMonetization(context, options) {
  return {
    name: "plugin-monetization",
    injectHtmlTags() {
      return {
        headTags: [
          {
            tagName: "link",
            attributes: {
              rel: "monetization",
              content: options.monetizationContent
            }
          }
        ]
      };
    }
  };
}

Although I think we discussed in the past it might be convenient to add a such shortcut to add global site links more conveniently, I'm not sure it's the responsibility of the theme to do so, as it would be duplicated in another theme that we'd want to implement.
Maybe it's better to add this to createBootstrapPlugin() that is always added to any Docusaurus site in core (used to provide similar shortcuts?
export function createBootstrapPlugin({
  siteDir,
  siteConfig,
}: LoadContext): LoadedPlugin {
  const {
    stylesheets,
    scripts,
    clientModules: siteConfigClientModules,
  } = siteConfig;
  return {
    name: 'docusaurus-bootstrap-plugin',
    content: null,
    options: {
      id: 'default',
    },
    version: {type: 'synthetic'},
    path: siteDir,
    getClientModules() {
      return siteConfigClientModules;
    },
    injectHtmlTags: () => {
      const stylesheetsTags = stylesheets.map(
        (source): string | HtmlTagObject =>
          typeof source === 'string'
            ? `<link rel="stylesheet" href="${source}">`
            : {
                tagName: 'link',
                attributes: {
                  rel: 'stylesheet',
                  ...source,
                },
              },
      );
      const scriptsTags = scripts.map((source): string | HtmlTagObject =>
        typeof source === 'string'
          ? `<script src="${source}"></script>`
          : {
              tagName: 'script',
              attributes: {
                ...source,
              },
            },
      );
      return {
        headTags: [...stylesheetsTags, ...scriptsTags],
      };
    },
  };
}

Also not a fan of "linkTags" naming. We already have stylesheets, scripts and metadata (which afaik is plural of metadatum) so "links" makes more sense to me (also similar to Remix: https://remix.run/docs/en/v1/api/conventions#links)

Side note but stylesheets + scripts are in core/siteConfig, and metadata is in the theme/themeConfig, that's a bit weird
https://docusaurus.io/docs/api/themes/configuration#metadata
Maybe we'll want to add a site.metadata in core too for consistency? 🤷♂
Some important thing to consider: we set some global non-core opinionated meta in the theme currently (I think just <meta name="twitter:card" content="summary_large_image" />) and users should be able to easily override this on a global site level. Declaration order of metadata will matter to keep this behavior.

What about just using the synthetic boottrap plugin above to provide a siteConfig.head or siteConfig.headTags API?
Like suggested here: https://github.com/facebook/docusaurus/issues/8049#issuecomment-1239493341
In the end it's the most flexible way to add any tag in the head, no matter what it is. anything else would just be a shortcut.
I'd rather start with more generic, less convenient apis first, and then add shortcuts like linkTags later (eventually). That the philosophy of the extensible web manifesto (https://extensiblewebmanifesto.org/).
Note that we already have a low-level api (plugin), but agree this shortcut (siteConfig.head) would be convenient.

The API is not easy to discover but I think this impl should be good enough?

It works - but this is hard to discover and very verbose for what you're trying to achieve (add some link tags).  Feels like you have to buy a car when you only want to drive a mile 😄

Also not a fan of "linkTags" naming. We already have stylesheets, scripts and metadata (which afaik is plural of metadatum) so "links" makes more sense to me (also similar to Remix: https://remix.run/docs/en/v1/api/conventions#links)

Happy with links as a name; would be happy to switch.

What about just using the synthetic boottrap plugin above to provide a siteConfig.head or siteConfig.headTags API?
Like suggested here: https://github.com/facebook/docusaurus/issues/8049#issuecomment-1239493341

I'd be happy to have a go at this - do you have any examples in the codebase of how this is done already?  I can't see any piping examples in the codebase so far?

Similarly, it can also be handled in the bootstrap plugin:
export function createBootstrapPlugin({
  siteDir,
  siteConfig,
}: LoadContext): LoadedPlugin {
  const {
    stylesheets,
    scripts,
    head, // <==== NEW
    clientModules: siteConfigClientModules,
  } = siteConfig;
  return {
    name: 'docusaurus-bootstrap-plugin',
    // other things
    injectHtmlTags: () => {
      const stylesheetsTags = [];
      const scriptsTags = [];
      return {
        headTags: [
          ...head, // <==== NEW
          ...stylesheetsTags, ...scriptsTags],
      };
    },
  };
}

Does it make sense?

Sorry no - I don't follow!  I don't know what the createBootstrapPlugin does.... And I'm not sure what consumption would then look like in a docusaurus.config.js?

I'm guessing that all users are somehow using the createBootstrapPlugin and they just don't know it?

Exactly: all sites implicitly have this plugin by default.
Use the code above where I added the NEW comments, and users will be able to use in siteconfig:
{head: {tag: "link", attributes: {rel: "monetization"}}}

okay cool and they'd do it at the same level as stylesheets by the looks of it?
I think I could have a crack at this.  Probably at the weekend.

Cool - I think I get it. I'll have a go and report back!

Closed in favour of @slorber suggested alternate implementation: https://github.com/facebook/docusaurus/pull/8151


[IZPACK-1660] Maven IzPack Plugin - Incorrect Artifact Handling

You may like to refer to comments of PR https://github.com/izpack/izpack/pull/800

@hiteshbosamiya could you change the documentation after the merge of the PR?

@reinhapa, currently, I have added a note, please refer to https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491628/IzPack+Maven+Plugin+Reference and let me know if we need to change anything.


pth-file size much larger than pre-trained coco file

Have trained 5 classes on a custom dataset starting from config https://github.com/RangiLyu/nanodet/blob/main/config/nanodet-plus-m-1.5x_416.yml (adjusted num_classes) and https://github.com/RangiLyu/nanodet/blob/main/tools/train.py. Training went just fine and reached mAP 0.8 after 300 epochs. Resulting model_best.ckpt is 125MB and nanodet_model_best.pth is 31MB.
Here is my question:

Why is my pth file 3x larger compared with the coco pretrained file from model zoo, NanoDet-Plus-m-1.5x-416, https://drive.google.com/file/d/16FJJJgUt5VrSKG7RM_ImdKKzhJ-Mu45I/view?usp=sharing

It seems that my pth file includes stuff only required for training. Anyone knows if this is the case and if it can be removed? Have tried torch.save(model.state_dict(), PATH)  but the resulting file is still 30MB
model was created as in main() in https://github.com/RangiLyu/nanodet/blob/main/tools/export_onnx.py
Interestingly, the onnx model size is 10MB.

iterate over the state_dict and remove items starting with "aux" - those are only requires during traing as remarked in the config file


CondNodesResolver.kt:49: remove extra "> @" and add one...

The puzzle 40-384e3e8f from #40 has to be resolved:
https://github.com/objectionary/ddr/blob/56cf6954eae2aabd41074dd0586224e0b2d6d526/src/main/kotlin/org/objectionary/ddr/transform/CondNodesResolver.kt#L49-L49
The puzzle was created by @OlesiaSub on 15-Sep-22.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@0pdd the puzzle #40 is still not solved.

@0pdd the puzzle #unknown is still not solved.

@0pdd the only puzzle #unknown is solved here.


Add comment regarding the current state of libraries for PdM

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 57.353%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3389

Relevant Lines:
5909

💛  - Coveralls


Autocomplete not working

I have installed:
Atom 1.4.0
Dart SDK 1.13.2
linter
dartlang plugin 0.5.3
on Ubuntu 15.10
as per the instructions on getting started page.
autocomplete is not working, but syntax highlighting is working. I am not sure where to look to troubleshoot the autocomplete issue I am having

Are other aspects of Dart analysis working? If you introduce a syntax error into a dart file, do you see an error at that location?

Yes syntax highlighting and help with errors is working.
On 26 Jan 2016 7:53 PM, "Devon Carew"<EMAIL_ADDRESS>wrote:

Are other aspects of Dart analysis working? If you introduce a syntax
error into a dart file, do you see an error at that location?
—
Reply to this email directly or view it on GitHub
https://github.com/dart-atom/dartlang/issues/723#issuecomment-175140933.

I find this to be true too.  In the Console I see:
warning • atom.autocomplete: Error retrieving code
completions: [Analyzer RequestError method: completion.getSuggestions, code: UNKNOWN_SOURCE, message: Unknown source]

I have atom 1.9.9, dartlang 0.6.36, and dart 1.18.1.  This is all on OS X.
I saw another note here that it worked only if they opened atom from the directory with pubspec.yml in it, but I am doing that.
Any other thoughts? Are there more logs I can share from console?


Update README.md daal4py scikit-learn XGBoost samples

daal4py and xgboost samples updated

I've tried to address all comments, please let me know if I missed anything


chore: release 0.23.0

:robot: I have created a release *beep* *boop*
0.23.0 (2022-03-10)
Features

replace nodejieba with @node-rs/jieba (f3f7594)

This PR was generated with Release Please. See documentation.

Coverage remained the same at 76.588% when pulling df9d2183f6a735373519982ee6b709bf0d5e787b on release-v0.23.0 into 95b22846f726b935178a3320a1fd9b0692563910 on master.

:robot: Release is at https://github.com/easyops-cn/docusaurus-search-local/releases/tag/v0.23.0 :sunflower:


[Customer project - Post action] - HANA2 DB keywords used incorrectly

In XS Classic the using of key words without "" is allow, but in HAAN2 it is not.
schema = "SAP_INO";
query = "
    select
            stage.CODE,
            authorization_stage.*,
            authorization.action_code,
            authorization.role_code,
            authorization.CAN_DO_ACTION
    from\"sap.ino.db.status::t_status_authorization_stage\" as authorization_stage
    left outer join \"sap.ino.db.status::t_status_authorization\" as authorization
    on authorization_stage.ID = authorization.ID_OF_STATUS_AUTHORIZATION_STAGE
    left outer join \"sap.ino.db.status::t_status_stage\" as stage
    on stage.ID = authorization_stage.ID_OF_STATUS_STAGE
    where authorization_stage.SETTING_CODE = 'OPEN_STATUS_AUTHORIZATION' and authorization_stage.Value = 1
    with read only ";

depends_on_table = ["sap.ino.db.status::t_status_authorization",
                    "sap.ino.db.status::t_status_authorization_stage",
                    "sap.ino.db.status::t_status_stage"];

Select 1 as NO From "SAP_INO"."sap.ino.db.iam::v_auth_identity_attribute"

[ ] "Authorization" is a keyword
[ ] "NO"  is a keyword and should be escaped
[ ] "filter"
[ ] "ROW"

Proposed solution : "authorization" keyword should be put inside the quotes if it have to be used.
Reference: https://help.sap.com/viewer/f381aa9c4b99457fb3c6b53a2fd29c02/2.0.02/en-US/888f434c5e494d6c9af82bc5db854a14.html

Such queries might occur outside hdb files - ie there are xsjs/xsjslib files that execute SQL statement directly.
Scope for v0.11.0 is to provide an API that returns before and after with the proposed changes to the files. Nevertheless, it should be tested that applying the after statements resolves the issue.

When reserved keywords are not escaped, an SQLException for incorrect syntax is being added to the Problems Facade. Updated the XSK documentation accordingly.


perf: updates cache

What
perf: updates cache

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


CentOS keeps default redhat dependencies if kernel-devel-uname -r exists

caches the “yum info” result, so we don’t need to run it twice.
[ref #317]

If i understand this correctly, if it's the latest release of CentOS, and therefore it already has the correct repos listed, it will just defer to the RedHat dependencies.
Makes sense!


Workflow Versions

Featuring automatically-generated versions for workflows.
Each workflow run has its own version which is appended to the title as follows:
[major].[minor].[patch]-ci.[run number] | [Commit title]
For example:
0.6.6-ci.1971 | Cleanup
The version is also automatically passed to the compiler, which sets the versions of the built assemblies and the nuget package.
(Because assembly and file versions only support 4 numbers, the format is [major].[minor].[patch].[run number]).
To achieve this, I also wrote a new system for assembly metadata, which is stored in Directory.Build.props. I also removed the outdated assembly attributes.
The indev version (major, minor and patch) should be stored as a repository variable, named DEVVERSION. An example value is 0.6.6. You can find this setting in Repo > Settings > Secrets and variables > Actions > Variables > Repository variables.
I also changed BuildInfo.Version into a dynamic property that grabs the version from the assembly. This also allows mods to get the accurate version of MelonLoader at runtime and not just compile-time. (Changing the constant field into a property won't break backwards compatibility because constants are never directly referenced.)
To compile a non-prerelease build, you can build the project yourself. The version in Directory.Build.props will be applied.
You can also make a non-prerelease build by running the Build MelonLoader and Build NuGet Package manually (thus not through a push).
Let me know if I should change anything (and I apologize for the trash workflow code :( ).

To prevent confusion, the workflow run for the commit above failed because the DEVVERSION variable is empty for the this repo, which leads to an invalid version being passed to the compiler. To test, you can add the variable to the repo and manually rerun the checks.

Because assembly and file versions only support 4 numbers, the format is [major].[minor].[patch].[run number]
Not quite accurate, you can (and we arguably should in this case) have a version suffix, so you could do [major].[minor].[patch]-[branch name].[run number] e.g. 0.6.7-alpha-development.384

Marking as unready because of run number mismatch for the nuget workflow.
@SamboyCoding
Can we turn both workflows into one? Seems like an unnecessary split.

Because assembly and file versions only support 4 numbers, the format is [major].[minor].[patch].[run number]

Not quite accurate, you can (and we arguably should in this case) have a version suffix, so you could do [major].[minor].[patch]-[branch name].[run number] e.g. 0.6.7-alpha-development.384

CS7034 - The specified version string '0.6.7-alpha-development.384' does not conform to the required format - major[.minor[.build[.revision]]]

@SamboyCoding Can we turn both workflows into one? Seems like an unnecessary split.

If you want to see if you can integrate it into the main script I don't see the harm or an issue with that.
There are other repos that also do the same thing.

Actually, I already did that + optimized/simplified the workflow

I suggest testing the Preload module changes. Can't test it for myself


Add Cmd::Yield for complex custom bindings

This partially replaces #293, i.e. some custom bindings can be implemented like this, although using Yield-style bindings is more complex so PR's are mostly unrelated.
The idea behind the Yield building is that we return from the readline function with a special error value which holds user's value (Arc<dyn Any>) along with current input. This may be used by user's REPL loop for many complex to implement but useful things like:

Changing prompt
Changing mode of operation
Changing Vi / Emacs mode like I've put in the yield_binding example as part of this PR

What do you think?

What's the status of this PR?
I'm not a maintainer but these changes look good to me.
@tailhook maybe you could move the matches!-related changes and the new example into separate commits to facilitate the review process.

What's the status of this PR?
I'm not a maintainer but these changes look good to me.
@tailhook maybe you could move the matches!-related changes and the new example into separate commits to facilitate the review process.

@tailhook maybe you could move the matches!-related changes and the new example into separate commits to facilitate the review process.

I can move them before, not after. The issue is that Cmd doesn't have PartialEq after this change, so you can only match on it.
But generally I've not got any agreement that this functionality would be accepted. So I don't want to waste time on rebasing it until that. (And this PR is terribly outdated)
Also, the biggest issue with Yield being used for complex commands is that "undo" would not work well (this is still fine for other use cases, where you treat input differently if submitted by a different key binding, or if you have an external editor on a keybinding, though).

@tailhook maybe you could move the matches!-related changes and the new example into separate commits to facilitate the review process.

I can move them before, not after. The issue is that Cmd doesn't have PartialEq after this change, so you can only match on it.
But generally I've not got any agreement that this functionality would be accepted. So I don't want to waste time on rebasing it until that. (And this PR is terribly outdated)
Also, the biggest issue with Yield being used for complex commands is that "undo" would not work well (this is still fine for other use cases, where you treat input differently if submitted by a different key binding, or if you have an external editor on a keybinding, though).

But generally I've not got any agreement that this functionality would be accepted. So I don't want to waste time on rebasing it until that. (And this PR is terribly outdated)

Fair enough. In the meanwhile I'll create a private fork of rustyline since I really need Cmd::Yield to implement a Cisco IOS-like CLI in Rust.
I hope this PR gets the attention it deserves as having the ability to bind custom behavior to certain keystrokes is crucial for any readline implementation.

But generally I've not got any agreement that this functionality would be accepted. So I don't want to waste time on rebasing it until that. (And this PR is terribly outdated)

Fair enough. In the meanwhile I'll create a private fork of rustyline since I really need Cmd::Yield to implement a Cisco IOS-like CLI in Rust.
I hope this PR gets the attention it deserves as having the ability to bind custom behavior to certain keystrokes is crucial for any readline implementation.

Is this still being considered? I'm very interested in this feature.


Change label for immediate needs category for job training resources

To accommodate additional job-related programs that are broader than "finding a job" (e.g., Denver's SNAP to Success program - ticket 372), make these changes:

In Step 9, change "Finding a job" to "Job resources."
In results, change "Job Training" to "Job Resources."

@sydney-devine @CalebPena The results page still says "Job Training" instead of "Job Resources."


Wallet info

Closes #269, #265

Enhancements

Added copy button
Pass infoOptions in RLogin config to add external link to address. If infoOptions is not passed or network is not in the list the explorer link will not appear
Usage:const infoOptions = {
  30: { addressBaseURL: 'https://explorer.rsk.co/address/' },
  31: { addressBaseURL: 'https://explorer.testnet.rsk.co/address/' }
}

const rLogin = new RLogin({ ...oldConfig, infoOptions })

Rationale:

addressBaeURL is not explorerURL to avoid appending /address as a standard thing. This allows other formats for the address URL
The [networkId: number]: { ... } will allow to add more customizations to the info screen in the future, like adding a list of ERC20 tokens to display balances

Show info trigger now displays modal with the new info + disconnect button and change network button. Change network button will show Metamask flow for changing network. We need to investigate how to improve this flow for other wallets in a new ticket
Added disclaimer: rLogin now explains you are sharing all the info in the modal with the website you are connecting to

Changes in the smaple app

Implemented disconnection changes properly: now we use rLogin.on('disconnected', () => { ... }) to listen to the disconnect action in the button in the app and the button in the modal too
Changed reset button:

#reset will only delete local storage cached provider
#disconnect now performs disconnect without clearing local storage

Bug fixed
Change network trigger was showing choose network UX that is from hardware wallet flow. Now it shows wrong network UX that is the one that allows to click a different network.
I can revert this if it was not an expected fix

Wouldn't it be the provider's responsibility to make the change from one network to another, not the dapps?

The idea was to allow MetaMask users to change from the dapp, but

the popup modal's language does not make sense.

that is right. I will remove the button from info screen for now, we can plan how to make it correct. We will need to refactor "change network" popup to allow the two UXs:

force to change on login when network is wrong
allow the user to change if the network is ok but wants to switch within the dapp


fix: retry CreateInstance requests on RESOURCE_EXHAUSTED

Retries CreateInstance requests if it fails with a RESOURCE_EXHAUSTED error because the request exceeded the quota for the number of create instance requests per minute for the project.
Updates #2111

@hengfengli Thanks for the review. I don't have permission to merge anything in this repository, so would you mind merging it?

@olavloite Unfortunately, I don't have the permission too. @codyoss Can you please help use to merge this PR? Thanks.


refactor: Avoid unnecessary monomorphizations

Removes ~80kb which isn't as much as I had hoped for, there are still
some redundant monomorphizations but those are trickier or have some
performance tradeoffs.
cc #345

bors r+


go test -coverprofile broken on 1.7rc2/OSX

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
go version go1.7rc2 darwin/amd64

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/xxx/Dev/GOCODE"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.7rc2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.7rc2/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/m5/04gz8l2941vgv9_8ggx_s8_80000gn/T/go-build004510646=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

What did you do?

go test -coverprofile=cover.out

What did you expect to see?

Correct paths to the source files in the cover.out file

What did you see instead?

Every path starts with is prefixed with a _ and therefore cannot be found (for example from  go tool cover -html=cover.out)
Actual output:
_/Users/xxx/dev/GOCODE/src/github.com/0x434D53/jose/jwa/signerverifier.go:18.13,22.2 3 1
it should be:
/Users/xxx/dev/GOCODE/src/github.com/0x434D53/jose/jwa/signerverifier.go:18.13,22.2 3 1

Is this a change from 1.6?

I just checked: In go1.6.3 darwin/amd64 i have
github.com/0x434D53/jose/jwa/signerverifier.go:18.13,22.2 3 1
as the path in the cover.out, which will work fine with the cover tool.

The underscore comes from trying to use the go tool with code outside
GOPATH.
On Thu, Jul 21, 2016 at 12:32 PM, Ian Lance Taylor<EMAIL_ADDRESS>
wrote:

Is this a change from 1.6?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/16454#issuecomment-234140202, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA2hAhct8vh_4TQM57PSzmUMJeumUks5qXtohgaJpZM4JRYj1
.

I found the issue: I have my OSX volume formatted as case insensitive: My GOPATH is unser ~/Dev/GOPATH . Most tools also from the go toolchain also work when i am in ~/dev/GOPATH - for OSX this is the same directory. So Dave is right: Go at least thinks i am not in the GOPATH and is half right/wrong.


Downloading codingwithmosh.com shows error [teachable.py]

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2019.07.27
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

--verbose debug shows

[download] Downloading video 1 of 170 [Teachable] Downloading codewithmosh.com login page [Teachable] Logging in to codewithmosh.com ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 627, in _request_webpage return self._downloader.urlopen(url_or_request) File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2227, in urlopen return self._opener.open(req, timeout=self._socket_timeout) File "/Users/xxxxx/anaconda3/lib/python3.7/urllib/request.py", line 531, in open response = meth(req, response) File "/Users/xxxxx/anaconda3/lib/python3.7/urllib/request.py", line 641, in http_response 'http', request, response, code, msg, hdrs) File "/Users/xxxxx/anaconda3/lib/python3.7/urllib/request.py", line 569, in error return self._call_chain(*args) File "/Users/xxxxx/anaconda3/lib/python3.7/urllib/request.py", line 503, in _call_chain result = func(*args) File "/Users/xxxxx/anaconda3/lib/python3.7/urllib/request.py", line 649, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)

$ youtube-dl -u<EMAIL_ADDRESS>-p mypassword -o '/Volumes/BACKUP/Python/%(title)s.%(ext)s' https://codewithmosh.com/courses/enrolled/423295 --verbose --yes-playlist --playlist-start 1
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-u', u'PRIVATE', u'-p', u'PRIVATE', u'-o', u'/Volumes/BACKUP/Python/%(title)s.%(ext)s', u'https://codewithmosh.com/courses/enrolled/423295', u'--verbose', u'--yes-playlist', u'--playlist-start', u'1']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.07.27
[debug] Python version 2.7.16 (CPython) - Darwin-19.0.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1.3, ffprobe 4.1.3, rtmpdump 2.4
[debug] Proxy map: {}
[generic] 423295: Requesting header
[redirect] Following redirect to https://codewithmosh.com/p/python-programming-course-developers
[generic] python-programming-course-developers: Requesting header
WARNING: Falling back on generic information extractor.
[generic] python-programming-course-developers: Downloading webpage
[generic] python-programming-course-developers: Extracting information
[TeachableCourse] Downloading codewithmosh.com login page
[TeachableCourse] Logging in to codewithmosh.com
[TeachableCourse] python-programming-course-developers: Downloading webpage
[download] Downloading playlist: Python Programming for Developers
[TeachableCourse] playlist Python Programming for Developers: Collected 170 video ids (downloading 170 of them)
[download] Downloading video 1 of 170
[Teachable] Downloading codewithmosh.com login page
[Teachable] Logging in to codewithmosh.com
ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 627, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2227, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

Description

Both windows and mac shows the error even adding --force-generic-extractor
only downloads single video if url is in the single page of the course
when downloading the playlist it gets an error
Sample URL with error
https://codewithmosh.com/courses/enrolled/423295
Redirecting to this URL
https://codewithmosh.com/p/python-programming-course-developers
Working URL
https://codewithmosh.com/courses/423295/lectures/6781718

You must provide account credentials.

This is the exact code I am using but it gets an error.
$ youtube-dl -u MYEMAIL -p MYPASSWORD -o '/Volumes/BACKUP/Python/%(title)s.%(ext)s' https://codewithmosh.com/courses/enrolled/417695 --verbose

I have updated the details kindly check


feat: added broadcast to studio

Not able to go live when the stream is active:

@0xcadams nice work! Before pushing this to prod, in another PR let's remove the details tab and consolidate its contents into the overview tab. I can provide a design on Monday if needed.

@0xcadams nice work! Before pushing this to prod, in another PR let's remove the details tab and consolidate its contents into the overview tab. I can provide a design on Monday if needed.

Sounds good - I will address this today


Bump Nexus to 3.4.0.

Tested with Kubernetes 1.6.7 on GKE.
I should note that this does not currently work with Kubernetes 1.7.0 on GKE due to a bug which is expected to be fixed on the 1.7.1 release.

I can confirm everything works OK on GKE with Kubernetes 1.7.1 👍

Thank you, @brunomcustodio. Can you please change the requirements in order to make sure we need 1.7.1?

@pires done!


support for previewing custom dataset in directory format

What does this PR do?
support for previewing custom dataset in directory format
Before submitting

[x] Did you read the contributor guideline?

LGTM!


Add nginx to the API multi-stage Dockerfile

Problem

For the ECS deployment of the frontend, we need to be able to deploy a Django and an Nginx image. To reduce the time it takes for the Django image to go from running to ready and to reduce the complexity of the deployment, we want to front load as much work as possible into the build.
Currently, the API deployment is complicated by the following:

collectstatic run in Django container with output shared to Nginx via compose volumes
Nginx configuration configured entirely during the init script of our EC2 instances
Version information passed as environment variables rather than baked into the images themselves at build time (meaning you could run image 1 and pass it version 2 and it would report the wrong version to you :scream:)

Description

All three of those complexities can be moved into a multi-stage Docker build. Something roughly like this:
FROM python:10-slim as builder

# ... the existing builder stuff

RUN collectstatic

FROM python:10-slim as django

# ... the existing stuff for this

FROM nginx as nginx

# VERSION is the git ref the image was built from
ARG VERSION
RUN echo "{\"version\":\"$VERSION\"}"
COPY --from=builder collectstatic-output
COPY nginx.conf .

Obviously this is missing everything that exists in the current Dockerfile which should be kept.
Additional context

Part of ongoing work to get the API deployed in ECS.
Implementation

[ ] 🙋 I would be interested in implementing this feature.

@rbadillap did some work related to this in the feat/init-to-dockerfile branch from which we could recover something.

I don't know what Ronny's plan was in that branch, really :confused:. The only thing that looks like it might be useful is the Nginx configuration, but it's probably wiser to copy the one from the infrastructure repo as it is today, just in case things have changed there.
The docker-compose changes are completely unnecessary as we will not be using docker-compose to deploy the API in ECS and the existing docker-compose configuration in the openverse-api module's init.tpl would just need to have the nginx image swapped out for the published image and the volume configuration removed. Though if it's helpful for testing locally it could be nice to have the other docker-compose file.

Hi @sarayourfriend @krysal !
Initially, the branch was created with the purpose of replacing the init.tpl file, which is a file that is executed when the instance is created, which generates little traceability of the events and inability to obtain timely information about something that has failed.
At the time, we considered creating an API docker image and generating new tags each time a release was made; however, the migration plan is more complex than originally planned, mainly because replacing NGINX would require a better strategy to avoid breaking changes.
From the mentioned branch, I proposed a new file structure divided by environments, where each environment has a configuration folder with each service and its corresponding env vars (this provides the possibility of modifying parameters based on the environment to be deployed). However, the biggest challenge I encountered at that time was 1) understanding the .env of each service and 2) how to use the existing docker-compose.yaml files of each service and introduce them into my building process. In other words, I had to understand each docker-compose of each service, plus its corresponding .env file before I started using it.
Only the proposed file structure is salvageable from the branch, since it provides configuration flexibility and extensibility, but the files per se may be outdated over time.
Greetings from Spain!

Great, thanks Ronny. I think we just need to add a new step to the existing Dockerfile to produce the nginx image. If we want to add nginx to the local docker-compose as an additional service that would be a way to test it more easily. I don't think we need to go further than that right now.


A few issues

Hi.
I've tried your code with my BMI160 from DRRobot, using circuit python 9 and raspberry pico.
I had to do a little patch
import busio
SDA, SCL = board.GP16, board.GP17
i2c = busio.I2C(SCL, SDA)
#i2c = board.I2C()  # uses board.SCL and board.SDA

To make the code work.
The code crashed around line 411 (out of index exception) but I fixed that.
Running the code it felt like the sensor is frozen.
I then started fidgeting the sensor with my nail, eventually it came to life and started sending data.
So, maybe it needs some kind of changing mode before streaming data.
Also the output was not in m/s^2, but some kind of "relative", where 1.0 means g.
Thanks.

Hello I do have the same sensor, normally I prefer to test with the borad.sda, board.scl deafult definitions as it is easier. However, I could not reproduce the error. I have changed the units according to your comments in the new release. Thanks.


Modify namespace of Weather service in OpenAPI guide to match Quick Start documentation.

Issue #, if available:
#1296
Description of changes:
Update namespace of Weather service in OpenAPI converter guide to match the namespace of Weather service previously shown in Quick Start guide.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Let's make sure to squash when merging


Sync tasks from remote calendars

This is already amazing, and you seem to already have more work cut out, but if I could also download my "tasks" from nextcloud and access them from within Obsidian it'd be amazing.
Use case example:
Tasks are synced accross all devices and most of the time I just need to see a TODO item, but some TODO items have markdown links in them like this.  They just link to another file in my obsidian folder for more information.
I guess I could learn a bunch and make my own plugin, but this seems to already do most of the work.  I wonder how hard it would be to just add them or integrate with obsidian tasks?

I most definitely second this request! Thanks.


Wish: Support for Swedish

Would be great to have support for Swedish and other Nordic languages as we want to use IEPY to build models in these

Hi milesscherrer.
I'm sorry, but I don't see this happening.
If you have the resources and the time for doing it, let us know and we can help with that.


add the filterM helper

http://hackage.haskell.org/package/base-<IP_ADDRESS>/docs/Control-Monad.html#v:filterM
Contains the changes from #24  and #25

I will review this when https://github.com/widmogrod/php-functional/pull/24 will be merged, now is to hard to spot the differences.

@krtek4 can you rebase it?

@krtek4 can you rebase this PR?

Rebase done.

Thank you for your work.


How might I run MDP in "preview only" mode?

I have integrated MDP into a web-based CMS (to be open-sourced soon).
Part of its feature-set is that it allows the developer to control whether users can read and edit, or just read. Now I'd like to have MDP do just the Preview part, and not any of the Edit stuff.
Is it possible to do this with the current minified distribution, or do I need to patch together my own variant of markdown-plus.js + dependencies?
Thank you for a wonderful editor, Tyler!

For now I have done this:
$(function() {
    setTimeout(function() {
        layout.sizePane('east', '100%');
        $('.ui-draggable-handle').remove();
    }, 1000);
});

But of course that presents the user with the editor for a couple seconds, which is not ideal.

Sorry for the late reply. I am currently busy learning React, Redux and webpack and I am planning to make MDP more modern. :)
If you want preview only, you don't even need toolbar.  Do you?
Check this project instead:  https://github.com/tylingsoft/markdown-core
Sample code:
var mdc = require('markdown-core/markdown-core-node');
var markdown = '# your markdown here';
var html = mdc.render(markdown);
$('.markdown-body').html(html);

With the code above, you can implement a markdown preview yourself without MDP. https://github.com/tylingsoft/markdown-core also provides css.


Enhancement: add retry and waiting in the conversation creation

I notice that:

To continue the conversation we have created, we can pass it as a parameter rather than creating a new one.
There maybe failure when creating the new conversation, so I add a retry.
If you request the created conversation just after the creation,  you may fail to get the response.(Mayb the conversation is not ready on claude sever . ) So I add a waiting .

The error would be:
 {'error': {'message': 'We are unable to serve your re
quest', 'type': 'permission_error'}}

I not sure is this issue is common, I meet them sometimes. So I make this PR. XD

Actually, I was too lazy to fix that. It's cool, thanks.


Correct command in README.md

👋 @rnwst
Thank you for the contribution!
docker-compose has been deprecated ~two years ago.


KNOX-2890 - Prevent non-idempotent requests from failing over

What changes were proposed in this pull request?
Make sure we don't failover for non-idempotent requests such as POST. The request will anyways fail because the input response stream has already been closed so there is no point "retrying" the request.
Following are the proposed changes:

Prevent failover for non-idempotent requests in ConfigurableHADispatch
Prevent failover for non-idempotent requests in AbstractHdfsHaDispatch, unfortunately AbstractHdfsHaDispatch was not using ConfigurableHADispatch, with this change it will be extending ConfigurableHADispatch.
Also added is a configuration option for HA Provider failoverNonIdempotentRequestEnabled which will enable/disable failover for non-idempotent requests. Default value of failoverNonIdempotentRequestEnabled is false

e.g.
<param>
     <name>WEBHDFS</name>
     <value>enabled=true;maxFailoverAttempts=3;failoverSleep=1000;failoverNonIdempotentRequestEnabled=true</value>
</param>

How was this patch tested?
Tested locally, added unit tests.

LGTM, thanks!


[New game]: planet defense game

🎮 Game Request
Game logic and basic description: There is a planet in centre along with a gun for shoot , if any stones or meteroids come close to planet we need to hit them with a gun.Score will be displayed as  how many we have shot.
Point down the features
Game points:Gui will be good and responsive and score will be displayed.
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

@SimranLahrani842 can you please elaborate the features !!
It is looking interesting but we want to know more about the features 😃

@SimranLahrani842 can you please elaborate the features !! It is looking interesting but we want to know more about the features smiley

Sure sir..So the gun can rotate 360° and can hit and stone or meteroid coming close to earth.The stones can come more than one at a time,the level of game increases if more stones appear closer to earth.If the gun can't hit stone then the game is over.The score will be displayed of total hitting stones.

Hey @SimranLahrani842 ! Thank you for raising an issue 💗 You have been assigned this issue you can start working on the issue 🎮
Thank you for elaborating !! 🚀
Looking forward to have your game on GameZone

Hey @SimranLahrani842 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Use channel thread to enqueue commands

Using the channel thread to write the command makes a lot of sense because we could probably get rid of some synchronization code and subsequent channel I/O does not require further context switching. It would also unblock writes because we don't require synchronization to perform the actual channel write.

Too me it is more a bug. I want invoke Lettuce CompletableFuture API and not to worry of caller thread being locked or catch an exception.
Is thrown in caller thread even though CompleteableFuture  API is used.
com.lambdaworks.redis.RedisException: Request queue size exceeded: 500. Commands are not accepted until the queue size drops.

Any validation happens beforehand to fail fast. It does not make sense to accept a command and reject it later if the validation can happen early.

Yes, fail-fast is good, but it should be wrapped in RedisFuture, then I handle it in CompletableFuture.

Otherwise I have to handle exceptions in CompletableFuture and in caller thread.

There's a point in handling failures inside the callbacks. Thanks a lot for your feedback.
I'd argue that you nevertheless need to handle errors in your call chain anyway – exceptions can happen due to other reasons before the actual command was constructed and dispatched (e.g. argument validation, infrastructure failures).

As API user I would never prefer to get exceptions in caller thread.
All other exceptions could be caught or wrapped by the API implementation and return as CompletableFuture.

We refactored how exception signals are propagated into RedisCommand objects if a command is not eligible for being written to Redis. Previously, we relied on throws. As of Lettuce 6, we're propagating the failure via completeExceptionally(…) so the calls to async/reactive API's no longer need to care about handling exceptions with a separate approach.