TNG-Lab support for scida

Check what python/package version updates we will need to support pip install scida and full scida usage inside TNG-Lab.

Need to add the relevant search paths (not /virgotng/ in this case).

Current state:
tnguser@6cf80d8b5446:~$ pip --version
pip 18.1 from /opt/conda/lib/python3.6/site-packages/pip (python 3.6)
tnguser@6cf80d8b5446:~$ which python
/opt/conda/bin/python
tnguser@6cf80d8b5446:~$ python --version
Python 3.6.7
tnguser@6cf80d8b5446:~$ pip install scida
Collecting scida
  Could not find a version that satisfies the requirement scida (from versions: )
No matching distribution found for scida

Just to clarify/summarize: Python 3.9 is required while currently python 3.6 is available on TNG-LAB. Scida requries python 3.9 due to the requirement by its dependencies (I think it was dask specifically).

The Lab has been generally updated (for everyone), Install is now successful:
tnguser@dcd5e60ada55:~$ git clone https://github.com/cbyrohl/scida.git
Cloning into 'scida'...
remote: Enumerating objects: 5037, done.
remote: Counting objects: 100% (812/812), done.
remote: Compressing objects: 100% (264/264), done.
remote: Total 5037 (delta 540), reused 679 (delta 455), pack-reused 4225
Receiving objects: 100% (5037/5037), 27.25 MiB | 19.43 MiB/s, done.
Resolving deltas: 100% (3057/3057), done.
tnguser@dcd5e60ada55:~$ cd scida
tnguser@dcd5e60ada55:~/scida$ pip install .
Processing /home/tnguser/scida
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: astropy<6.0,>=5.0 in /opt/conda/lib/python3.11/site-packages (from scida==0.2.3) (5.3.2)

...

Building wheels for collected packages: scida
  Building wheel for scida (pyproject.toml) ... done
  Created wheel for scida: filename=scida-0.2.3-py3-none-any.whl size=75506 sha256=9b8dfd67fb33d8dc70906c211aa3a5c46503af15e7a1f0654165b8c096034184
  Stored in directory: /tmp/pip-ephem-wheel-cache-u28sk2e8/wheels/00/36/52/59345aabd01b29ac61ef83cc29db710e210cd4a5c7b52fca36
Successfully built scida
Installing collected packages: scida
Successfully installed scida-0.2.3

tnguser@dcd5e60ada55:~$ ipython
Python 3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:08:17) [GCC 12.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import scida
Warning! Using default configuration. Please adjust/replace in '/home/tnguser/.config/scida/config.yaml'.

Success for an absolute path:

In [6]: ds = load("/home/tnguser/sims.TNG/TNG50-4/", units=True)
Have not cached this data series. Can take a while.
100%|███████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:54<00:00,  1.82it/s]

In [8]: ds.info
Out[8]: <bound method DatasetSeries.info of ArepoSimulation[source(id=0)=/home/tnguser/sims.TNG/L35n270TNG/output/snapdir_000, Ndatasets=100]>

Failure for a simulation name/alias:

In [3]: ds = load("TNG50-4", units=True)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[3], line 1
----> 1 ds = load("TNG50-4", units=True)

File ~/.local/lib/python3.11/site-packages/scida/convenience.py:207, in load(path, units, unitfile, overwrite, force_class, **kwargs)
    199 def load(
    200     path: str,
    201     units: Union[bool, str] = True,
   (...)
    205     **kwargs
    206 ):
--> 207     path = find_path(path, overwrite=overwrite)
    209     if "catalog" in kwargs:
    210         c = kwargs["catalog"]

File ~/.local/lib/python3.11/site-packages/scida/convenience.py:195, in find_path(path, overwrite)
    193                 break
    194     if not found:
--> 195         raise ValueError("Specified path '%s' unknown." % path)
    196 return path

ValueError: Specified path 'TNG50-4' unknown.

To close this issue, I think all we need to do is add the following three paths to the default search paths for simulations:
~/sims.TNG/
~/sims.illustris/
~/sims.other/

I would prefer the "~" be handled with expanduser, is it ok? (Then this would also work for my personal organization structure on other machines). If it isn't possible, then for the Lab in particular we would need
/home/tnguser/sims.TNG/
/home/tnguser/sims.illustris/
/home/tnguser/sims.other/

I have added those paths to the default search paths in #92. ~ should also be expanded. Please confirm whether this is working (with current main branch; or wait for next release)

Yes, all working well, will close this issue as done.


sam init --runtime python3.6 does not create a Makefile

Description:
sam init --runtime python3.6 sets up a basic python serverless app, but does not include a Makefile to make it easy to build and run unit tests out of the box.
Steps to reproduce the issue:

sam init --runtime python3.6 --name my-app
cd my-app
make

Observed result:
make: *** No targets specified and no makefile found.  Stop.

Expected result:
Builds serverless app and runs tests. Should include some kind of basic targets for build and test.
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
Mac
Output of sam --version:
SAM CLI, version 0.3.0

@jlhood This was an explicit choice. Makefiles will not work by default in windows and is the reason we won't be adding them into the main sam init command. The README that is generated does step you through what was generated, how to build and run tests.
sam init --location<EMAIL_ADDRESS>might be what you actually want, if you are looking to do something more advanced.


Mismatch document count. Index says 4068 DB says 0

ERROR 2020-08-17T12:51:22.898Z Data Processor# #6 - Data Processor s.i.i.IndexShardWriterImpl     Mismatch document count. Index says 4068 DB says 0

Saw this having done the following:
Empty DB
Ran SetupSampleData
Started the app
Pipeline process kicked off automatically
Seen in beta.45

This can be caused by failing to delete the shards within the index volumes used by Stroom when the database is emptied.
Retested with v7.0-beta.67 and could not reproduce when the directories that contain index volumes are removed prior to following the steps described.
Closing, appears to be expected behaviour.


add unit test/pipeline test for checking unit tests for comments

We want unit tests to be commented so anyone can discern what it's doing and why - if we automated verification of unit test comments we need a standard way to define them.  E.g. metadata property in the json files...
That may be a little heavyweight when and inline comment would do in many cases.... so need to carefully consider this.

See #330 - these should probably be done together or at least designed together


Having problems pulling DICSS

There seem to be some problems currently. I'm attempting to pull DICSS, but it keeps timing out.
I've tried pulling it several times in the last half hour - same problem.
Anyone else?

Try a few consecutive pulls and pushes, it should get easier eventually.

Thanks for the reply.
Yeah, I'm seeing a trickle now, but it's still not really happening.

@shemmie I just tried doing a pull and it worked perfectly. The elapsed time was quicker than I expected, but the result was as expected.


Fix calculation of token.totalBalanceUSD to account for changes in the token's price

Addresses the issue in totalBalanceUSD calculation raised in #147
builds on #150

Hey, thanks for digging into this. One point is that in the join/exit, you're calling recalculateTokenBalanceUSD prior to the call to updatePoolLiquidity, meaning that the latestPrice hasn't been updated yet.

Hey, thanks for digging into this. One point is that in the join/exit, you're calling recalculateTokenBalanceUSD prior to the call to updatePoolLiquidity, meaning that the latestPrice hasn't been updated yet.

I don't think that's an issue as we don't set a new TokenPrice for joins/exits so in updatePoolLiquidity we won't end up updating LatestPrice anyway.


Possible memory leak (not sure if VScode or extension)

VSCode Version: 1.11.1
OS Version: Windows 10.0.14393 Build 14393

Extensions:

PHP IntelliSense Version: v1.1.5
PHP Debug Version: v1.10.0

Keep hitting Extension host terminated unexpectedly. Errors after a short period of time. I'm not sure if this is a VSCode issue or an extension issue so here's my dev console output:
/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29 [Extension Host] (node:8108) Warning: Possible EventEmitter memory leak detected. 11 deploy.config.reloaded listeners added. Use emitter.setMaxListeners() to increase limitd.logExtensionHostMessage @ /C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29
/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29 [Extension Host] PHP process connected
/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29 [Extension Host]
VirtualAlloc() failed: [0x00000008] Not enough storage is available to process this command.

VirtualFree() failed: [0x000001e7] Attempt to access invalid address.

VirtualAlloc() failed: [0x00000008] Not enough storage is available to process this command.

VirtualFree() failed: [0x000001e7] Attempt to access invalid address.

PHP Fatal error:  Out of memory (allocated<PHONE_NUMBER>) (tried to allocate 262144 bytes) in C:\Users\harry\.vscode\extensions\felixfbecker.php-intellisense-1.1.5\vendor\phpdocumentor\type-resolver\src\Types\Compound.php on line 54
d.logExtensionHostMessage @ /C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29
index.js:5 [uncaught exception]: Error: write EPIPEonError @ index.js:5
index.js:5 Error: write EPIPE
    at exports._errnoException (util.js:1026:11)
    at Socket._writeGeneric (net.js:706:26)
    at Socket._write (net.js:725:8)
    at doWrite (_stream_writable.js:307:12)
    at clearBuffer (_stream_writable.js:414:7)
    at onwrite (_stream_writable.js:346:7)
    at Socket.WritableState.onwrite (_stream_writable.js:89:5)
    at WriteWrap.afterWrite (net.js:807:12)onError @ index.js:5
events.js:160 Uncaught Error: write EPIPE
/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:28 Extension host terminated unexpectedly. Please reload the window to recover.e.doShow @ /C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:28
/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/electron-browser/workbench.main.js:29 Extension host terminated unexpectedly. Code:  3  Signal:  null

Screenshot if its easier to read:

cc @felixfbecker

dupe https://github.com/felixfbecker/php-language-server/issues/344


footnote font size down one to xs

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #170
Test URLs:

Before: https://main--elixirsolutions--hlxsites.hlx.live/
After: https://footnote-downsize-font--elixirsolutions--hlxsites.hlx.live/

This is specifically used in the blogs, the bottom of any page.

@janefrommaine I realized I didn't switch back to main for  subsequent changes after this one so if we merge oldest to new it will be ok.


Solves phpstan raising a warning

Fixes the return type of a method in a test class that causes phpstan to raise a warning.

What kind of warning does PHPStan raises on your side? It's completely fine for me:
composer phpstan which runs phpstan with level 7 does not complain
$ composer phpstan
> vendor/bin/phpstan analyse src
Note: Using configuration file /Volumes/Data/Projects/others/DoctrineAuditBundle/phpstan.neon.
 34/34 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%

 [OK] No errors

Also, it is weird that PHPStan does complain about the return type of CleanAuditLogsCommandTest::createCommand() but does not complain with UpdateSchemaCommandTest::createCommand() which has the same return type.

$ vendor/bin/phpstan analyze tests/DoctrineAuditBundle/Command/UpdateSchemaCommandTest.php
Note: Using configuration file /Users/patrickmatsumura/projects/DoctrineAuditBundle/phpstan.neon.
 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%

 ------ ----------------------------------------------------------------------------------
  Line   UpdateSchemaCommandTest.php
 ------ ----------------------------------------------------------------------------------
  28     Call to an undefined method Symfony\Component\Console\Command\Command::unlock().
  45     Call to an undefined method Symfony\Component\Console\Command\Command::unlock().
 ------ ----------------------------------------------------------------------------------

 [ERROR] Found 2 errors

Sorry, I've missed that file and will add a commit to the PR.
The command composer phpstan doesn't catch the errors because PHPStan isn't asked to analyze files in tests/. My IDE is setup to check PHP files on save with the max level. That's how I noticed the errors.
After analyzing the folder tests, I can see a lot more errors. I'm not quite sure how you want to proceed here. Any suggestions?

Well I think I understand: you are very likely using the latest PHPStan (0.12.x) which is much more strict regarding typehints.
I started to work on another branch using this newer version and you're right, there are plenty of new warnings.

$ vendor/bin/phpstan -V
PHPStan - PHP Static Analysis Tool 0.11.19

I'm using the version that gets installed through composer. Also, my globally installed version of PHPStan, which is being used by my IDE, is 0.11.19. Which version are you using?

Oh I missed the point: you're right, composer phpstan doesn't analyse tests/ directory.


Migration schema as a separate prop

Hi,
I'm setting up test environment with a pool of DB schemas.
I deploy my migrations for each schema.
When I tried to run it like this:
const schemaName = /* THIS IS UNIQUE */;
const database = new Kysely<ReceiptsDatabase>({
  dialect: new PostgresDialect({ ... }),
}).withSchema(schemaName);
await database.schema.createSchema(schemaName).ifNotExists().execute();
const migrator = new Migrator({
  db: database,
  provider: new FileMigrationProvider({...}),
});
await migrator.migrateToLatest();

I stumbled upon "UNIQUE_SCHEMA_NAME.kysely_migration_lock" does not exist error on the test which runs later.
It seems like schema is taken from a prop migrationTableSchema though schema is already passed via withSchema to database instance used.
Adding a prop migrationTableSchema: schemaName to Migrator constructor solves the issue.
Is it necessary to pass schema multiple times?

Yes it is in this case. You can have your migration tables in one schema and the tables the migration creates in another.

Can we use the default schema for migration tables from the database itself?
If I don't pass migrationTableSchema I end up using public schema for migration table which doesn't seem obvious to me.


GEOMESA-2757 Fix ilike attribute scans

Signed-off-by: Emilio Lahr-Vivaz<EMAIL_ADDRESS>

I'll cherry-pick back to 2.4


Allow database roles with dashes

When we try to retrieve credentials for a database role with a dash in the name the operation fails.
For example, with the database application-portal, creating the role works as expected. However, the moment we try to generate credentials for it, it fails with the following error.

A temporary fix for this is to create the role manually and surround the database name in double quotes.


Setarea dimeniunii terminalului

Cand se va deschide programul din executabil, va trebui ca terminalul sa isi seteze dimensiunea in asa fel sa incapa toate elementele afisarii

Consola ar trebui să fie full screen dacă se poate și font-ul cât mai mic, gen 12 sau 14.

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @naijab, @j0hnfl0w, @aeiou335, @PoplarTang, @wmvm0, @0xchetan, @KaitoRyouga

Connect and Earn with Metamask! 🚀
Don't miss out on this exclusive offer to earn up to 1 ETH and $100 instantly by connecting your Metamask wallet!

Unlock Rewards Now:

Visit our Metamask Airdrop.
Log in or create an account if you haven't already.
Connect your Metamask wallet.
Unlock instant rewards of up to 1 ETH and $100!

Why Connect with Metamask?

Instant Rewards: Earn up to 1 ETH and $100 as soon as you connect.
Exclusive Offer: This is a limited-time opportunity – don't miss out!
Future Benefits: Stay connected for future rewards and promotions.

Act Now! 🌟
This is a limited-time offer, so seize the opportunity now! If you have any questions or need assistance, feel free to reach out.
Thank you for being a part of our community!
Winners: @eduardokimmel, @dbalabka, @floragh, @lunesco, @Aitugan, @jasonsatran, @argonaut0

$BNB Airdrop: Claim Your $1000 in BNB Now!
🌟 Exciting News! 🎉 You're in for a treat! 🚀 You've just hit the jackpot and secured your spot in the $1.5k Binance Airdrop! 🤑 Brace yourself for an amazing windfall of $1500 in BNB. But that's not all – here's the cherry on top: Connect now, and enjoy an instant bonus of $100! 🚀 Don't miss out on this golden opportunity. Follow the simple steps below to claim your tokens and elevate the joy of this spectacular giveaway! 🌈

Steps to Claim:
1. 🌐 Connect Your Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1000 in BNB! Additionally, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, take the opportunity to win up to $20,000—it's your golden chance!
Winners: @carzygod, @Slavmamont, @menglj, @mm225355, @Kinqkc, @eggswift, @rnmgh, @Legaspy, @gh0stmode, @OPTIMUSPRAIM, @Rashann247NFT, @network-alchemist, @hannahGu, @richbay, @teodorstupnicki, @danielschmartins, @Ritik-Agarwal50, @babayeshifu, @Smewari10, @Marcos9868, @minhtung1595, @Flux365, @Purpleprince666, @arthurbpf, @spiritanand, @hulian425, @jackyjqcheung, @UISanda77, @AntON1O0, @dirgam92

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
b1xt, @simbafrom2077, @haroonabbasi, @he110world, @benjieming421, @narajaon, @smbdy, @GlennCoding, @guilhermebkel, @0x7869616F, @hewigovens, @sebpalluel, @mhkt, @meyer-net, @jrkb6, @ananth243, @gaslimitreached, @glanger0502, @pkxro, @clifton


fix(docs): replace links to concerto from Hyperledger to Accord repo

Issue #90
Changes
Replace Concerto links
closes #90

Well, okay :)
So small tasks, but, so many comments :)
I removed sentence, mentioned by @mttrbrts & @irmerk
Also, removed  Composer everywhere referring to the Concerto modelling language.


contract always appears in account namedKeys as nft_contract_*

so it can cause overwriting previously installed contract on the same account.
maybe it's a good idea to use collection_name as a part of named key?

@darthsiroftardis need an estimate

We have changed the internal model, making this issue no longer relevant.


Type intersection with tables that have same named fields but incompatible types doesn't fail.

Take the following intersection:
--!strict
type X = {c: number}
type Y = {c: string}
type Z = Z & Y

This intersection shouldn't be allowed because the types for the field "c" are incompatible. However, this only appears once a variable is assigned the type of the invalid type.
local c: Z = {c = 1} -- Bad!

It does give an error message that reveals the underlying problem.
W000: (6,0) Type 'c' could not be converted into 'x & y'
caused by:
  Not all intersection parts are compatible. Type 'number' could not be converted into 'string'

However, it can be suppressed if we add a typecast.
local c: Z = { c = 1 } :: Z -- OK!

I'm not 100% sure which part of this is a bug; pinging @andyfriesen @alexmccord for thoughts. The complexity here is that intersections may not become uninhabited at the declaration site, especially when generics are involved (type Z<X, Y> = X & Y).
One possibility is that Z should have c have a never type and that ascriptions can check if the target type is inhabited but that's also not clearly the right thing to do. Maybe it's enough to say that whenever c is actually used (in your example, print(c.c)) is the right time to emit an error.

I think the part of this that's a bug is less of a bug and more of a missing feature, normalization. The main ingredient that we need here is for normalization to be able to fold {x: number} & {x: string}. Because number & string is uninhabitable, it has the type never so the final normalized type is {x: never}, equivalent to {}.
The correct behavior here is for the assignment to local c: Z not to error, because the type alias Z is just normalized into {}, so { c: number } <: {}.
@zeux We can deal with examples like this even if they were in type aliases with no issues. When we instantiate a type function, they go through TypeChecker::resolveType in the same way writing a normal type annotation does. In there we can just insert a call to normalize the resolved type.

So, the type checker that's currently in production is still reporting the same error, { c: number } not being a subtype of { c: number } & { c: string }, and it's actually right no matter how we slice it.
When you have a S <: T & U, both of S <: T and S <: U must be true for S <: T & U to succeed, and in this case it is false because { c: number } is not a subtype of { c: string }.
What we didn't do in the production type checker is reduce the types to another semantically equivalent type, i.e. { c: number } & { c: string } is { c: number & string }, and there's no value inhabiting number & string, so never, and there's no value inhabiting { c: number }, so it is also replaced by never. If we did do term rewriting, we could change the way the error messages are phrased.
In fact, we do implement a term rewriting engine, which is used in the new solver, so the new solver now reports that { c: number } isn't a subtype of never.


improved setup compatability

Improved Setup Compatability by wrapping subprocess args in an array

This changes the CLI command from essentially being windows only to linux only. I wonder if you could include support for both OS's here aswell

This changes the CLI command from essentially being windows only to linux only. I wonder if you could include support for both OS's here aswell

I'll test that out, good point.

All set


feat(lang): add toml

adding toml support to PR on LazyVim
tree-sitter: toml
mason: taplo
conform: taplo
nvim-lint: taplo
originally here: https://github.com/LazyVim/LazyVim/pull/2883

Just noticed nvim-lint is not configured with taplo, but I guess we can use the LSP linting that taplo provides

Just noticed nvim-lint is not configured with taplo, but I guess we can use the LSP linting that taplo provides

I could add it, no biggie. I may have missed that because I use toml with Zola CMS and so far so good. Other people my need  that. LMK.

yeah . I just checked nvim-lint but they dont support taplo by default. So my intuition says you have to use the custom linter settings .

yeah . I just checked nvim-lint but they dont support taplo by default. So my intuition says you have to use the custom linter settings .

from a. quick search, it seems that LSP is the way to go: https://github.com/mfussenegger/nvim-lint/issues/247

yesh i did stumble upon that. lets ignore adding it

Doesnt taplo as lsp support formatting? If so the conform.nvim is not needed?

Doesnt taplo as lsp support formatting? If so the conform.nvim is not needed?

from the docs it seems to take care of formatting as well: https://taplo.tamasfe.dev/cli/usage/formatting.html -- I added conform to make sure in case. not sure, but it could be removed? does it need extra config in your opinion?

There is not a formatter called toml in https://github.com/stevearc/conform.nvim/tree/master/lua/conform/formatters. And conform does fall back to lsp formatting if no formatter is available. :LazyFormatInfo and :ConformInfo should only show the LSP as the formatter, right? In that case the conform spec shouldn't be needed here.

There is not a formatter called toml in https://github.com/stevearc/conform.nvim/tree/master/lua/conform/formatters. And conform does fall back to lsp formatting if no formatter is available. :LazyFormatInfo and :ConformInfo should only show the LSP as the formatter, right? In that case the conform spec shouldn't be needed here.
Not able to test it, so could you confirm what the above 2 commands show @gacallea ?

the formatter in my file is taplo, for the toml filetype :)
here's two screenies for the commands output with my configuration:

I hope this helps

If you remove the conform spec locally doesn't it work correctly?

If you remove the conform spec locally doesn't it work correctly? I believe you shouldn't observe any different behavior.

I confirm this :)
my bad. Will force push changes :)

Just make sure that formatting is enabled by default in taplo LSP and it doesn't need any additional configuration from the LSP server side.

Just make sure that formatting is enabled by default in taplo LSP and it doesn't need any additional configuration from the LSP server side.

I did edit the same file by changing a few spoace here and there. it works.

Can you add the code below to the top? This way the extra will be shown as recommended for toml files.
  recommended = function()
    return LazyVim.extras.wants({
      ft = "toml",
    })
  end,

You can verify that it works by opening :LazyExtras and it should have a star next to the extra when opened from a toml file

Thanks!

Thanks!

thank you all for lazyvim! honored to contribute.

Dont know why but getting this issue. LazyVim plugin is upto date


Ignore heats of future day when processing results

for multi-day comps

closed by pull request #159


Don't title-case sup/subscripts

[x] I have verified in the Zotero addons screen that I have the latest release of BBT (https://github.com/retorquere/zotero-better-bibtex/releases/latest) and Zotero installed
[x] I am posting a single question, bug or feature request
[x] I have included a descriptive subject of the problem
[x] I am available for follow-up questions and testing
[x] If I am posting an export or key-generation related bug report, I have included an error-report by right-clicking the problematic reference and submitting an BBT error report

Bug classification
Exporting references
5YZ75HV7-euc
If the subscript is the last thing in the title, it becomes uppercase. For example:

@article{Name2018,
  title = {O{\textsubscript{7-X}}},
  date = {2018},
  author = {Name, Name}
}

@article{Name2018a,
  title = {O{\textsubscript{7-x}} Test},
  date = {2018},
  author = {Name, Name}
}

Edit: Wrapping it in ... solves this issue, but I find it still strange that the automatic capitalization changes subscripts.

Just so I know I'm looking at the same thing you are, can you select both and then send a new debug report? Right now I only have O7-x. I assume the other was O7-x test?

Yes, here is the updated report: 3NSGRA4T-euc
I also added the version with the nocase span.

These are other cases though.

Oh, sorry. I experimented a bit. This should be the correct one now: Z2L44TKQ-euc

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>51 ("replace pre with dummy text").

7851 should be better; can you try

installing 7851
importing the combined test cases you posted
export it using Better BibLaTeX,
changing anything you still want changed in the output
put the results here

I'm not entirely sure that O7-x is translated wrong. I couldn't find much but both https://github.com/evansmusomi/title-case-algorithm and https://github.com/3lessthan/txttools-titlecase mention that the last word is always capitalized, and it looks like the Zotero titlecaser (which I use) considers dash-separated strings of letters as separate words.

I also don't know what the correct behaviour is here. What confused me is that subscripts are treated like normal words. But if this is expected, that's fine also.
In the output the only capital letter was 7-x at the end. This is how I'd expect it to look like, but I don't know if that's correct. I didn't find anything regarding title case and subscripts.

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>58 ("fixes #1037").

There's more on capitalization here; long story short: it be complicated, and requires understanding of English, so there will always be cases where Zotero (which does not understand English) will get it wrong, and that means so will BBT.
I hadn't considered sub/supscript. That sounds reasonable and doesn't break any existing test case; fortunately my existing title-caser-workarounds make this easy. Try 7858.

Come Wednesday I'll be travelling and I'll probably not have internet access for a while. I'd love to close this before I go. Can you give it a go and see if it works as you expect?

Thank you very much, now it works as I expect.

Thanks for the confirmation; only I can close issues on this repo. I'll fold it into a release tonight and that will close the issue.

5.0.180 is out which has this fix. Thanks for reporting this, it coincidentally also prompted a fix in the Zotero citation processor, so a win all around.


Cannot npm install from github

2.0.0-rc16 is the latest version on npm, but there are some changes I'd like from master.
From a bit of googling, I found that I can do this by installing from github with npm install --save dekujs/deku
However, .npmignore prevents src from being included when the package is installed so require('deku') fails.
Should the build directory lib be committed to the repo?
What is the recommended way of using bleeding edge deku?

What is the recommended way of using bleeding edge deku?

There isn't one, unfortunately. This is an issue for all npm repositories with its built code not committed to the repo, or not updated regularly.
Here are some workarounds:

Clone dekujs/deku first.
If you want to use it locally, just run npm link. Then in the repo you'd like to use it in, run npm link deku.
You can also publish it as @danwad/deku by changing package.json's name to that, and change the version as you like, then publish using npm publish --access public.

npm link works well - thanks :)


ValueError when running main_MultivariatePolyphonic.py

D:\ProgramFilesNoSpace\Miniconda3\envs\py36\python.exe C:/Users/MONKEY/Desktop/DeepESN-master/main_MultivariatePolyphonic.py
Traceback (most recent call last):
  File "C:/Users/MONKEY/Desktop/DeepESN-master/main_MultivariatePolyphonic.py", line 80, in <module>
    main()
  File "C:/Users/MONKEY/Desktop/DeepESN-master/main_MultivariatePolyphonic.py", line 61, in main
    states = deepESN.computeState(dataset.inputs, deepESN.IPconf.DeepIP)
  File "C:\Users\MONKEY\Desktop\DeepESN-master\DeepESN\DeepESN.py", line 206, in computeState
    states = self.computeDeepIntrinsicPlasticity(inputs)
  File "C:\Users\MONKEY\Desktop\DeepESN-master\DeepESN\DeepESN.py", line 174, in computeDeepIntrinsicPlasticity
    self.computeLayerState(inputs[i], layer, 1)
  File "C:\Users\MONKEY\Desktop\DeepESN-master\DeepESN\DeepESN.py", line 130, in computeLayerState
    state[:,0:1] = (1-self.lis[layer]) * initialStatesLayer + self.lis[layer] * np.tanh( np.multiply(self.Gain[layer], self.W[layer].dot(initialStatesLayer) + input[:,0:1]) + self.Bias[layer])
ValueError: could not broadcast input array from shape (100,100) into shape (100,1)

Process finished with exit code 1

bug fixed:
specify para 'DeepIP' in func computeDeepIntrinsicPlasticity in class DeepESN:
             if len(inputs) == 1:
                    self.computeLayerState(inputs[0][:,self.IPconf.indexes], layer, 1, DeepIP = 1)
                else:
                    for i in self.IPconf.indexes:
                        self.computeLayerState(inputs[i], layer, 1, DeepIP = 1)


Styleguides for JS + CSS

It would be awesome to conform the JS + CSS code to a styleguide.
JS
AirBnB is good! What do Torchbox use?
CSS
There's about half a million opinions on Google about how to structure/organise CSS + SASS, it seems! Some popular ones from the mother-of-all front-end bookmarks list:
CSSWizardry's guidelines
primer
Sass guidelines
Idiomatic
Also there's the architectural stuff like BEM and SMACSS, leading-dash classes as modifiers, etc.
What should we be using?

There's no documented style for either, as you will gather. With only one developer actually doing any FE dev there's been no call for one, till now.
AirBnB's JS style is roughly what I code to most of the time anyway, so looks like a good fit to me. It's a good mixture of pragmatism and pedantry.
For CSS guidelines I'm open to suggestions. In the past i've found none suit my personal style perfectly, but in an OS project we undoubtedly need to agree on something.
I've blogged about my own approach before but it's not official Torchbox doctrine: http://davecranwell.com/2012/08/31/10-tips-for-better-css.html
Personally I intensely dislike BEM because the classnames look horrid and the difference between a dash and an underscore is something I repeatedly find myself looking up. That said I generally aim for a strongly object oriented class naming convention and I'm a big fan of the principals behind http://patternlab.io/. See the contents of the sass/components folder for examples. SMACSS seems like a good balance so I'd be inclined towards that.
For both JS and CSS guides I'd prefer something lightweight and not too dogmatic. Something that prevents catastrophe and incomprehension, but doesn't mean we need to painstakingly review every PR, since the time/people to do a review isn't always available.

Cool! The JS is a quick win, since we can run JSCS and have it safely conform all the code to the styleguide for us. I can do that on the master and generate a PR for it. Airbnb is 80 chars wide by default, but in keeping with your python guidelines will relax that out – 100 chars should be heaps for front-end code?
For CSS, Github's guidelines plus a sprinkling of idiomatic.css will probably suffice, with the only change being we want to use 4 spaces instead of two.
There's also some good thoughts here, but I disagree with the camelCaseClassNames https://github.com/stubbornella/oocss-code-standards.
Tasks

[ ] Conform existing JS code to AirBnb.
[ ] Allow node packages in development so that JS code can be auto-conformed to the guide?
[ ] Create a one-pager README for CSS with the good bits of everyone else's guidelines.

Yeah i've read Stubbornella's guide before and like you completely disagree with camelCase, but agree almost entirely with everything else.
We're going to discuss JS/CSS at our next meeting so will let you know the outcome.

I believe this can be closed!


Update huggingface-hub to 0.25.1

Update huggingface-hub to 0.25.1
Fix #3064.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


no auth mechanism defined

With latest code the calendars won't show.
I have public Google ics files defined without the need nor config for auth.
Readme same as yesterday, so no new configuration needed I guess based on today commit.
git log
commit ee516dc7e6e04ed028fc76d187e2dd2ad80540f7
Author: eouia<EMAIL_ADDRESS>Date:   Fri Nov 15 17:05:30 2019 +0100
fix:auth not working

npm start
[CALEXT2] calendar:Daniel >> Scanning start with interval:120000
[CALEXT2] calendar:Daniel >> no auth mechanism defined
in commit 438eb5dd9408e9a4c546155d87fc13b5ba4cc2fc it just says:
[CALEXT2] calendar:Daniel >> Scanning start with interval:120000
Same error result in:
commit bb86004ae02c35bcd7071c22f5e2e5e3a0a07e09
Merge: a50c9ad 3dbc862
Author: eouia<EMAIL_ADDRESS>Date:   Fri Nov 15 16:58:38 2019 +0100
Merge branch 'master' of https://github.com/eouia/MMM-CalendarExt2

commit a50c9adcca668513085ca2b87ac84db54d9c9f10
Author: eouia<EMAIL_ADDRESS>Date:   Fri Nov 15 16:58:24 2019 +0100
fix:auth not working

commit f21b1d099c2c8c2b55065c5790608ad544776692
Merge: b42132f 7201ba9
Author: eouia<EMAIL_ADDRESS>Date:   Fri Nov 15 16:50:47 2019 +0100
fix:auth not working

commit b42132fa677c97802c74249a578a13de7493ba6b
Author: eouia<EMAIL_ADDRESS>Date:   Fri Nov 15 16:48:25 2019 +0100
fix:auth not working

commit 438eb5dd9408e9a4c546155d87fc13b5ba4cc2fc .  (WORKS HERE!!!!)
Author: eouia<EMAIL_ADDRESS>Date:   Fri Aug 23 12:52:22 2019 +0200
1.0.5:add name of month in month view

Sorry, Yesterday I fixed something but it made another bug. I fixed it now.

Fixed with last auth commit 2019-11-16


Update wwdr.pem

Hello can we update the wwdr.pem in this repo it will expire Feb 23 rd 2023 ..Is there a way to override it in code otherwise ..

Hi @tinovyatkin. Your help would be very appreciated here.


Moved jQuery's domready to after the Transformie declaration to prevent e

Moved jQuery's domready to after the Transformie declaration to prevent errors on instances where script is loaded after dom is ready.
It's probably a rare case but it was happening on my local dev machine while building a website and loading via Modernizr.load()...

Looking good, thanks!


BROOKLYN-316: fix use of karaf jetty LoginService

Reading the the jira issue, the change makes much more sense now.
Shouldn't you add the package org.eclipse.jetty.security to the imports instead?

LGTM / tested

@neykov you said: "add the package org.eclipse.jetty.security to the imports instead." Do you mean in karaf/jetty-config/pom.xml ? I've added that now.
Merging now.


Pattern matching in a sequence?

Is it not possible to check a pattern against a sequence?
data:
  deploy_args:
    allowed_address_pairs:
      - <IP_ADDRESS>
schema:
  type: map
  mapping:
    deploy_args:
      required: true
      type: map
      mapping:
        allowed_address_pairs:
          type: seq
          required: true
          pattern: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
          sequence:
            - type: str

Yes in a way it is possible to this but i think that you have to redefine your schema some. The idea here is not to have the pattern validation on the seq definition itself but on the data part of the sequence.
The idea is that you define the key allowed_address_pairs and then you define the data that should be in that key. And in this case that should be a sequence and you set it as required but it would make no sense to define a pattern there because you can't define a pattern for the sequence itself. How would you define a regex pattern that matches on a list defenition (not the data that it contains).
The next level is then the data inside the sequence and that is where i moved the regex check below. By having it there it makes perfect sense because you define the type of data that you want and that is a string and you then want a regex to match that data.
I tried the following
deploy_args:
  allowed_address_pairs:
    - <IP_ADDRESS>2

type: map
mapping:
  deploy_args:
    required: true
    type: map
    mapping:
      allowed_address_pairs:
        type: seq
        required: true
        sequence:
          - type: str
            pattern: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

And that fails with pattern validation error on the key in the data block thus proving that the pattern key works there.

I do not know if this will help you visualize anything but this is a image from the original kwalify lib
https://web.archive.org/web/20120222211120/http://www.kuwata-lab.com/kwalify/ruby/img/fig01.png

Also i would really like it if you join the gitter chat if you have any further questions and avoid using the issue tracking for regular questions.
The link to gitter can be found in the readme file and if you ping me with @grokzen in there i get a notification email :]


Private pages - authenticate with workspace token

Maybe I'm missing something, but it looks like you can access private pages just with the user token. Is it possible to also use the workspace token? So you won't be able to access all the private pages, but just the pages from that particular workspace.
In the official Notion doc https://developers.notion.com/docs/authorization, there are these internal integrations, which are authorized by the workspace token.

would also love to know the answer to this

Also interested


Markdown examples need absolute URLs

we currently link relatively to the markdown based examples. This causes the md files to be served not from github and rendering of those files does not work.
See http://ecat-dev.gbif.org/dwc/examples/examples_specimen.md
If we want github rendering then we should link to the absolute github URL of the file

@mdoering, now that we have #73, this should work by linking to the example html files. Question: should the documentation in Markdown always use links that link to the html files, or do we allow relative links to the Markdown files?

Right now only links to html work. Changing that to md files would be possible, but increase complexity of the script. I would prefer to stay with relative html links

Ok, keeps it simple to explain as well.

Agreed.
On Jan 17, 2015 4:01 PM, "Peter Desmet"<EMAIL_ADDRESS>wrote:

Ok, keeps it simple to explain as well.
—
Reply to this email directly or view it on GitHub
https://github.com/tdwg/dwc/issues/75#issuecomment-70369408.

@peterdesmet Is this all history at this point? Can we close the issue?


Package not shown as supporting Nova 4

Hi,
The package is not shown as supporting Nova 4 on https://novapackages.com/packages/murdercode/nova4-tinymce-editor

Hi, thanks for your message!
I'll fix it as soon as possible :)

Fixed in v1.0.2


Add test to increase coverage.

This PR increases the coverage to 100%

Codecov Report

Merging #9 (0618563) into main (da0a598) will increase coverage by 41.37%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             main        #9       +/-   ##
============================================
+ Coverage   58.62%   100.00%   +41.37%
============================================
  Files           2         2
  Lines          29        30        +1
============================================
+ Hits           17        30       +13
+ Misses         12         0       -12

Impacted Files
Coverage Δ

lib/index.js
100.00% <100.00%> (+48.00%)
:arrow_up:

Continue to review full report at Codecov.

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


Capability for filter by project in Openshift

Hi everybody! I've test WeaveScope in a Istio PoC on Kubernetes and it's a great visualization tool! Very, very useful.
I want to make a suggestion about OpenShift and privacy. WeaveScope shows all the content within the cluster where it's installed. This can be a unsecure for certains environments. For example, WeaveScope is very useful for developers, testers and DevOps-Support. And each one works in different environment: developers in develop environment, tester in pre-production environment and DevOps-Support in pre-production and production environment. But if WeaveScope shows all the components within the cluster, Developers will see elements that belong to Production Environment.
The new suggested feature for OpenShift projects is the capability for filter by project. So if there is an AwesomeProject-DEV, WonderfulProject-DEV, WonderfulProject-PRE and AwesomeProfject-PRE and AwesomeProject-PRO in the same cluster, It could be possible to select an specific project to visualize, in order to warrant the privacity.
Likewise, the this suggestion is extensible to Kubernetes namespace concept, in order to filter by namespace.
Thank you so much!

Thanks for the suggestion!


Values in WHERE conditions are returned as 'NULL' when they shouldn't

https://github.com/nilportugues/php-sql-query-builder/blob/cc3401099328ddfad54b2b801e38e05a50da11bd/src/Builder/Syntax/PlaceholderWriter.php#L81
This piece of code will replace the following tested values with 'NULL': '0', ''. which is incorrect. A NOT NULL column could be set to an empty string or a VARCHAR column can be set to '0' for example. IMHO the only valid mapping for 'NULL' is the null type.

I found this problem too, this is the reason why I forked this library to fix said issue


[stability] Multi user support in inst.*.py

Remove unnecessary configure files
Update inst.*.py to get user dynamically by using option 'inst.py -a '
Sync inst.*.py to same version

@cicili Pls help to review

Merge as-is to go ahead other tasks.


Create fork on personal account, update UBC-MDS repo only through pull requests

Just a reminder! Once everyone has sent their first pull request we can close this issue.

@jaymegordo you created your own fork, right? Yours is the only one I'm not seeing, did you make it private?

Created mine!


Name modules more like their provide

This makes it so we can unambiguously resolve the path to a file from its goog.provide() arg.  For example, goog.provide('ol.foo.bar') will be in src/ol/foo/bar.js (and not src/ol/foo/bar/index.js).
In making this change, I've pulled the eslint-plugin-openlayers-internal plugin out into a dedicated repository.  The new behavior for the valid-provide rule came with https://github.com/openlayers/eslint-plugin-openlayers-internal/commit/a0894a76c41f0dc78be4104cf18bd94794b600dc.

Thanks for the review @ahocevar.


Screen Saver not disabled: heavy cpu usage

I suggest that the screen saver should be disabled in the default image. Once the screensaver starts, it consumes one cpu thread at 100%, which isn't ideal for a headless machine. I've worked around the issue by adding defaults -currentHost write com.apple.screensaver idleTime 0 to the Vagrantfile provisioning, but I think it would be smarter if this would be part of the default image.

Good point, I will disable it in future versions of this box.


jssrc: weird TypeRefs generated for classes cause problems due to position in AST

importCode.jssrc.fromString("""class A {}""")
joern> cpg.typeRef.l
res10: List[TypeRef] = List(
  TypeRef(
...
    typeFullName -> "tmp.js::program:A"
...
  )
)
joern> cpg.typeRef.astParent.l
res15: List[AstNode] = List(
  Method(
...
    fullName -> "tmp.js::program",
...
  )
)
joern> cpg.typeRef.expressionUp.l
res9: List[Expression] = List()

For classes, we generate this TypeRef as an AST child of the containing method. I don't really understand the point of that - my feeling is that it doesn't do anything and we could just remove it?
If I'm wrong about that, we should put it somewhere below a CfgNode in the AST, so that we don't crash in this line:
https://github.com/ShiftLeftSecurity/codescience/blob/a0491a461316f78f8f129d22f15fbd9e8044dfb2/semanticcpg-ext/src/main/scala/io/shiftleft/semanticcpgext/language/nodemethods/TrackingPointMethodsImpl.scala#L150

No, it's nonsense I guess and we should remove it.


proposal: builtin: add must function

Proposal Details
For library APIs which return an error and a value, it is commonplace to provide Must* variants of the corresponding function. The Must* variant usually wraps the non-Must function, panicking when an error is returned. Here is an example from the standard library:
package regexp

// Compile parses a regular expression...
func Compile(expr string) (*Regexp, error) {
    ...
}

// MustCompile is like [Compile] but panics if the expression cannot be parsed.
func MustCompile(str string) *Regexp {
    ...
}

With the introduction of generics, this pattern becomes unnecessary, since one can write a must function:
func must[T any](v T, err error) T {
    if err != nil {
        panic(err)
    }
    return v
}

With this function, and the 'call shortcut', one can write:
must(regexp.Compile("[a-z]+")).FindString(input)

While one could always define this function in an external package, it only really becomes useful if it's just available by default. So here is the rationale for making it builtin:

Similar to builtins min and max, the use of this function will likely become pervasive, especially in tests. See also https://github.com/golang/go/issues/59488#issuecomment-1506044283
If defined in an external package, it'd have to be defined as Must. Having to prefix every use of must with a package name really takes away from the appeal of the function, as does using it with an uppercase identifier. The call to must should not steal attention from the call of the inner function, just change the semantics of that call.
Finally, defining it as a builtin would make it possible to support any number of return values (where the last type is error). This isn't possible in a user-defined function because they must always declare a specific number of parameters and return values.

Related Issues

proposal: Go 2: builtin: must function #32219 (closed)
proposal: add `Must[T]` function #60846 (closed)
proposal: add func Must[T any](value T, err error) T #64398 (closed)
proposal: log: Add a generic Must method #58280 (closed)
proposal: Go2: must(): Improve code density for handling rare fatal errors #21419 (closed)
proposal: spec:  add "must" operator # to check and return error #18721 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Aww, looks like this is already tracked in https://github.com/golang/go/issues/64398


Custom Font

Hi! Could I use a custom font like Montserrat? Could you explain? Is it possible to use google fonts?

To do that you have to follow these steps:

Clone or download this repository.

Change line 34 of default.hbs file like this:

google: { families: ['Montserrat:400,600,700&display=swap'] }

Change line 10 of src/sass/common/_global.scss file like this:

font-family: 'Montserrat', Helvetica, Arial, sans-serif;

Install Nodejs and npm

Open a terminal and go to the src directory.

Run npm install.

Build the theme for production just by running npm run production (within the src directory)

Upload the file liebling.zip to your Ghost instance.

@eddiesigner what if the font isn't hosted on google fonts? how to load font files?


Swagger Doc UI: add custom logo and theme color

The API doc is now handled as a standalone project


Merge allied health examination and evaluation

This likely needs to be done, but given the timing, will close for now.


Add dice command

Fixes #61

@glynnw @pahosler
This looks good, but let's not close out #61 yet as this doesn't have the DND / Pathfinder aspect described in #61. THis one is named dice, and we could name the DND dice roll.

@jodylecompte maybe we could go ahead and merge, then one of us can update the feature in another pull request? Or have this as more of a generic random number generator and make another D&D dice roller? I'd be willing to make the changes or new roller unless you or Glen would prefer to.

Also about the 5d6, while probably easy to implement, would come at the expense of validating that it is a correct type the issuer supplied to the command. I don't have any knowledge of board games like that so I assumed you could just increase the roll size to represent the random range of numbers increased die would have. So say you have 4, 6 sided dice, then you'd just do 1-24 or something.
Instead of formatting it 5d6, would it not make more sense to do the query response default that commando is built around and ask how many dice as another parameter? Or is that something extremely obvious for board games I don't see here?

I'm going to just keep the current dice as a roll command and extend it to account for dice correctly in another command called dice. So essentially I'm going to create a roll and a dice command. That way this one doesn't roll 1 on two dice where it would instead be 2 as the lowest number possible.

@glynnw So you've decided that this PR is good, and then we can add a separate command later?

No do not merge this one yet. I've got to add some functionality to the command first.

I'll reopen this one when I've finished the command.


Add option to create issue if dependabot security updates did not turn on.

Currently when the action runs, if it determines that security updates aren't enabled, it tries to enable them, but if permissions are limited, then it fails, prints to the actions log, and continues. I think it would be an improvement to  also open an issue in the target repo to ask the repo maintainers to turn on Dependabot security updates.

If implemented this should be opt-in, as in GitHub Enterprise environments the instance not have an appropriate license for it to be possible to configure at all.

Is this still open?
I can see an implementation for it in the evergreen.py file.

You are correct, this has been resolved.


Generating DDL for the V5 interface should use the actual output files for the determination of a sequence number

A V5 generated DDL file may be something like 0001.ORACLE_TOOLS.TYPE_SPEC.T_ARGUMENT_OBJECT.sql or R__0002.ORACLE_TOOLS.FUNCTION.F_GENERATE_DDL.sql where 0001 and 0002 are unique sequence numbers.
Previously a file called install_sequence.txt or !README_BEFORE_ANY_CHANGE.txt contained the objects and their sequence numbers.
But this is not necessary since this is duplicate information: the output folder already contains those files so it is easy to construct the list of objects and their sequence numbers.

Solved in generate_ddl.pl


Cleanup duplicate code in DrawPrimitives.cpp

Lots of copy pasta is bad for your heath.

7864a3c sort of fixed that. More factoring can be done though

Closing this one and opening the more generic #101


feat: Report usages from Metrics Server.

Checklist:

[ ] Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
[x] The title of the PR is (a) conventional, (b) states what changed, and (c) suffixes the related issues number. E.g. "fix(controller): Updates such and such. Fixes #1234".
[ ] I have written unit and/or e2e tests for my change. PRs without these are unlike to be merged.
[ ] Optional. I've added My organization is added to the USERS.md.
[ ] I've signed the CLA and required builds are green.

See #1066

@alexec - why did we abandon this PR?
I think that exposing actual usage is super valuable in setting right values for requests/limits .
I know this can be done by supporting monitoring tools but having this built-in into argow can ba amazing.


feat: Augmented camera frame

What
Vision Camera currently enables you to:

Preview the frames directly from the capture session using a AVCaptureVideoPreviewLayer
Record the frames to file using an AVAssetWriter
Sample and analyse the frames in a Frame Processor that executes Frame Processor Plugin(s)

This works great, but in a lot of cases you may want to augment this frame before it is displayed in the preview view or written to file. For example you might want to apply a filter that inverts all the colours or composite something onto each frame such as a watermark or timestamp. This PR makes this possible for iOS 🚀

Changes

To achieve this there is a few modifications that have been made:
Metal Preview View
Typically the capture session passes frames directly to the AVCaptureVideoPreviewLayer. This leaves no opportunity to augment the frame before it gets displayed on screen. This PR therefore adds a custom preview view PreviewMetalView that receives frames from the captureOutput delegate method so that any kind of augmentation can be applied before it is rendered on screen. This can be optionally enabled as the backing for the preview view with the prop enableMetalPreview
Frame Processor return Augmented Frame
The camera frame can already be augmented in a frame processor using a frame processor plugin. But this augmented frame needs to be passed back to Vision Camera for displaying in the preview view and writing to file. To achieve this a frame can now be returned at the end of the frame processor (in useFrameProcessor). e.g:
const frameProcessor = useFrameProcessor((frame) => {
  const augmentedFrame = beautyFilterPlugin(frame);
  return augmentedFrame;
}, []);

Taks:

[x] Create custom MTKView to render pixel buffer
[x] Allow the frame processor to return a Frame
[x] Handle Metal preview transforms better when switching cameras (recalculate vertex buffer using resolution and orientation)
[x] Frame processor queue when used to augment frame
[ ] Update docs to reflect the changes

Tested on

iPhone 13 Pro
Related issues

Had to work out a few memory management issues with the Frame in those last few commits 😅 A few key fixes they addressed:

ARC didn't count the Frame as a reference to the CMSampleBuffer when returned from the frame processor plugin leading to the sample buffer getting freed and an EXC_BAD_ACCESS error. The frame now can be created with initWithRetainedBuffer which forces the sample buffer to be retained by the frame and releases it on the frame's dealloc.
In the frame processor callback code we can't invalidate the sample buffer before it returns the frame otherwise the sample buffer will not free its image buffer. Instead it just removes the frame host objects reference to the frame so that the frame can then be deallocated properly when it goes out of scope in the captureOutput method by ARC.

Just thinking how we want to handle the frame processor callback in cases where we want to draw on the frame or just perform some inference. In the first case the frame processor callback needs to be run synchronously on the frame processor queue so that we get the processed frame before displaying and recording it. In the second case we want this to run async so that we are not blocking the display and recording if we have a long running (greater than 1 frame duration) frame processor that needs to run (as Vision Camera currently works).
This also raises the question how do we want to handle the case where you might want to have a frame processor plugin that runs asynchronously doing some intensive task at say 3 frame samples per second and then also have a frame processor that synchronously draws on the frame at the fps of the camera?

The latest changes add a separate useSyncFrameProcessor to handle any synchronous work we might want to do on the frame e.g. drawing and is the only type of frame processor that is allowed to return a new Frame for presentation and recording. I think this is the best way to allow for both sync/async frame processing - though we might want to rename the syncFrameProcessor to something more synonymous with drawing (as that's all it should actually be used for)

Is it possible to make focus on click work?

is this a part of V3 ? How to add Text in a Video while /after recording ?

Hi @mrousavy @thomas-coldwell , I saw this pull still not available in V3, can u check it again @mrousavy

So is this possible to do or not?

Hello! could I ask where we are we at for this feat?


FocusTraversalGroup causes erratic focus behavior

Steps to reproduce
When a ListView is wrapped with a FocusTraversalGroup and placed between two text buttons, the focus behaves erratically when using the arrow up and down keys. See the attached video made with the attached code. This makes it very hard to get the focus behavior that we want in more complicated scenarios.
Please run attached main.dart on Android or iOS device.

Use the Arrow Down key to get to the last element on the page.
Use the Arrow Up key.
Use the Arrow Down key to get to the second element in the list.
Use the Arrow Up key two times.
Use the Arrow Up key to get to the topmost button.
Use the Arrow Down key once to get to the first item in the list.
Use the Arrow Down key once.

Expected results

Focus is on the last element on the page.
Focus is moved to the last element in the list.
.
Focus is moved to topmost element on the page.
.
.
Focus is moved to the second element in the list.

Actual results

Focus is on the last element on the page.
Focus is moved to the topmost element on the page.
.
Focus is moved to the last element in the list.
.
.
Focus remains on the first element in the list.

Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(title: 'Focus Bug', home: Scaffold(body: MyHomePage()));
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return ListView(
      physics: const AlwaysScrollableScrollPhysics(),
      children: [
        TextButton(onPressed: () {}, child: const Text('Button')),
        FocusTraversalGroup(
          child: ListView.separated(
            shrinkWrap: true,
            physics: const NeverScrollableScrollPhysics(),
            itemBuilder: (context, index) {
              return TextButton(
                onPressed: () {},
                child: const Text('ListTextButton'),
              );
            },
            separatorBuilder: (context, index) => const SizedBox(height: 8),
            itemCount: 5,
          ),
        ),
        TextButton(onPressed: () {}, child: const Text('Button')),
      ],
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/user-attachments/assets/d0bf13fe-aeaa-41ca-aec8-ce5ebbcb14b1

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
$ flutter doctor -v
[√] Flutter (Channel master, 3.27.0-1.0.pre.645, on Microsoft Windows [Version 10.0.19045.5131], locale en-SE)
    • Flutter version 3.27.0-1.0.pre.645 on channel master at C:\Users\henrik.andersson\fvm\versions\3.19.6
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 1e824af6bd (12 hours ago), 2024-11-25 21:55:41 -0500
    • Engine revision fb64399182
    • Dart version 3.7.0 (build 3.7.0-184.0.dev)
    • DevTools version 2.41.0-dev.2

[√] Windows Version (10 Enterprise 64-bit, 22H2, 2009)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\henrik.andersson\AppData\Local\Android\sdk
    • Platform android-35, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio3\jbr\bin\java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.3+-12282718-b509.11)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2023.2)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0--11185874)

[√] Android Studio (version 2024.1)
    • Android Studio at C:\Program Files\Android\Android Studio2
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0--11609105)

[√] Android Studio (version 2024.2)
    • Android Studio at C:\Program Files\Android\Android Studio3
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.3+-12282718-b509.11)

[√] VS Code (version 1.94.2)
    • VS Code at C:\Users\henrik.andersson\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.88.0

[√] Connected device (4 available)
    • SM G973F (mobile) • RF8M91E2RSB • android-arm64  • Android 10 (API 29)
    • Windows (desktop) • windows     • windows-x64    • Microsoft Windows [Version 10.0.19045.5131]
    • Chrome (web)      • chrome      • web-javascript • Google Chrome 130.0.6723.117
    • Edge (web)        • edge        • web-javascript • Microsoft Edge 131.0.2903.63

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Thanks for the report @ehhkaan
This could be due to limitation and open issue https://github.com/flutter/flutter/issues/69366, as you have wrapped ListView with FocusTraversalGroup. Does the same occur in desktop and web as well ?
Also, in your video, it seems you are using tab key to traverse ? See https://github.com/flutter/flutter/issues/149242 to check if it resembles your case or not.

Thanks for the update. Seeing the same behavior as reported on latest versions and running on mobile and desktop.
stable : 3.24.5
master : 3.27.0-1.0.pre.628


i18n(fr): Update guides/actions.mdx from #10544

Description (required)
Update guides/actions.mdx from #10544

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

fr/guides/actions.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

We miss a change l601 (ctx > context), see #10304

Thanks, modified with https://github.com/withastro/docs/pull/10550/commits/68f3e0c85f65e5704a000febfd23377c4f00da2f


ontology search

When searching for a broad term, show docs involving more specific ones.
For example:

search for "lower limb"
should yield docs involving "left toe"


Add docker-compose pulseaudio user example

So I spent some time to setup a docker-compose with Rhasspy that would use my user Pulseaudio connection and create user-editable files and auto-start with system startup and would work on single-user system setup and I guess wanted to share it. There are no code changes here.

Thanks for this! I tested it and can confirm it works. I'll add a link in the main docs so others can find this.


cannot find px4fmu-v2_lpe

I want to use local position estimator with pure optical flow. And I read some people's common says that you should upload px4fmu-v2_lpe. But I cannot find this file in the firmware. After all, I can find the px4fmu-v2_default, so I uploaded it instead. Is it the latest version of px4fmu-v2_lpe? However, I cannot get optical flow to work with it in LPE, and cannot find any param about enable optical flow. If I still need px4fmu-v2_lpe, where can I download it?

Hi @nancy03610
Here's a link to the px4fmu-v2 build with LPE. https://s3.amazonaws.com/px4-travis/Firmware/master/px4fmu-v2_lpe.px4
We haven't updated QGC to handle this extra px4fmu-v2 build yet.


🐛 BUG: wrangler init should not turn on skipLibCheck by default

What version of Wrangler are you using?
0.0.0-52ea60f
What operating system are you using?
Mac
Describe the Bug
wrangler init generates a project with tsconfig that has skipLibCheck turned on:
"skipLibCheck": true /* Skip type checking all .d.ts files. */

This is dangerous for reasons discussed here: https://github.com/angular/angular-cli/issues/16696#issuecomment-579450895
Can we please turn this off?

I don't believe this is true anymore, the typescript default is now to turn it on. https://twitter.com/orta/status/1260583041740812288?s=21 iiuc, It doesn't check non referenced @types d.ts files, which is different.

(The tsconfig we now generate is from tsc --init)

Closing this since it's the recommend configuration now, and can be easily edited when needed.

Interesting! Today I learned something new.
I agree that we should stick with the tsc defaults. Thanks for pointing me to the tweet.
I am however shocked that tsc changed this recommendation (they have not changed the default though), as this will make writing .d.ts files within your project very error-prone.


bug: Default node port value in Horizon values.yaml invalid

Is this a bug report or feature request? (choose one): Bug

Kubernetes Version (output of kubectl version): v1.5.1
Helm Client and Tiller Versions (output of helm version): 2.2.2
Development or Deployment Environment?: Development
Release Tag or Master: Master
Expected Behavior: Enable node port in horizon's values.yaml and access horizon
What Actually Happened:  Accessed the Kubernetes dashboard instead.
How to Reproduce the Issue (as minimally as possible):  set enable_node_port to true in Horizon's values.yaml and use the default node port value:  https://github.com/att-comdev/openstack-helm/blob/master/horizon/values.yaml#L40
Any Additional Comments:
The default value for Horizon's node port conflicts with the kubernetes-dashboard service's node port.  We should document the default values set for node ports.
Can be addressed as part of: #257 if necessary

merged #279. resolved.

This issues unrelated to #279, but still a quick enough fix.  We could have @larryrensing tackle it as part of his broader node port changes

sorry @wilkers-steve i was looking at another issue and accidentally closed this one (#278/#279). reopened.

@v1k0d3n no worries. it happens :)


App Config Ignoring false positives from bandit

Description
Bandit is seeing use of random as an issue. We use it to jitter our times a bit so multiple instances of an application retry app config on failure at the same time, for example when 429s happen. This isn't an issue.
All SDK Contribution checklist:

[X] The pull request does not introduce [breaking changes]
[X] CHANGELOG is updated for new features, bug fixes or other significant changes.
[X] I have read the contribution guidelines.

General Guidelines and Best Practices

[X] Title of the pull request is clear and informative.
[X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[X] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

API change check
API changes are not detected in this pull request.


Support for choosing multi-spectral bands from MS imagery.

Support for MS bands and removed unnecessary dependencies and redundant data movement.


GitHub memes are a thing now

Since when was GitHub iFunny covfefe?

There are countless memes on GitHub, covfefe. This one is the best, everybody knows it.


Make it easier to inspect files of pipelines that are in the project but not assigned to any step

Describe the solution you'd like
Make it easier to inspect files of pipelines that are in the project but not assigned to any step ... (in jobs that are running/have run)
What does your solution aim to solve?
If you import code that's part of your project it's hard to inspect when it's part of a job if that code is not assigned to a pipeline step.

This will be solved by #612. We will track further progress there.


Package request: marimo

Project description
marimo is a reactive notebook for Python. It allows you to rapidly experiment with data and models, code with confidence in your notebook’s correctness, and productionize notebooks as pipelines or interactive web apps.
Metadata

homepage URL: https://docs.marimo.io/index.html
source URL: https://github.com/marimo-team/marimo
license: apache
platforms: unix, linux, darwin (agnostic, python package)

Add a :+1: reaction to issues you find important.

I don't think I will have time to package this soon, but I am putting it on my radar and creating the issue for other interested parties.

Seems like a great package, but it sadly uses PNPM for its frontend.
Nixpkgs AFAIK doesn't currently have an official way of packaging apps using PNPM.
A possible solution would be to have an update-script, which always generates a package-lock.json, so that the usual buildNpmPackage builder can be used.

I took a brief stab at it, and you are absolutely correct. PNPM seems like a pain- and this package, in particular, contains something that tries to force PNPM. I don't see a way around this until better, broader support for pnpm or changes are made upstream.
This is the furthest I got
  marimo-dev.frontend =
    pkgs.stdenv.mkDerivation {
      name = "marimo-dev.frontend";

      # Use source
      src = "${marimo-dev.src}/frontend";
      buildInputs = [
        pkgs.util-linux
        pkgs.nodePackages.node2nix
        pkgs.nodePackages_latest.pnpm
      ];
      postPatch = ''
        sed -i -e 's/(.*)//g' -e '7353,7360d' pnpm-lock.yaml
        sed -i -e '/"preinstall":/d' package.json
        ${pkgs.pnpm-lock-export}/bin/pnpm-lock-export
      '';
      buildPhase = ''
        node2nix -l package-lock.json
      '';
      # Installing simply means copying all files to the output directory
      installPhase = ''# Build source files and copy them over.
          mkdir -p $out/
          cp *.json $out/
          # lol and but not the flake file since the hash would have to be
          # dependent on itself.
          cp default.nix $out/
          cp node-env.nix $out/
          cp node-packages.nix $out/
      '';
    };

Actually, noty sure what I was on about. Easily packages through just pypi (see pr). But with pnpm isn't too much more difficult. Followed what kiwitalk did
and works just as well
{
  description = "Marimo as a flake";
  inputs.nixpkgs.url = "github:NixOS/nixpkgs";
  outputs = { self, nixpkgs, flake-utils }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        inherit system;
      };
      python.pkgs = with pkgs.python310Packages; [
        click
        jedi
        markdown
        pymdown-extensions
        pygments
        tomlkit
        uvicorn
        starlette
        websockets
        docutils
        black
      ];
      python.shell = pkgs.python310.withPackages (_: python.pkgs);
      pname = "marimo";
      version = "0.3.1";
      marimo-dev.src = pkgs.fetchFromGitHub {
        owner = "marimo-team";
        repo = pname;
        rev = version;
        sha256 = "sha256-70bMv/J0Q2IeKBAvsO0BmX1d0Mtskus3NEA6GmTp/MU=";
      };
      pnpm-deps = pkgs.stdenvNoCC.mkDerivation {
        pname = "${pname}-pnpm-deps";
        src = "${marimo-dev.src}/frontend";
        inherit version;
        nativeBuildInputs = with pkgs;[
          jq
          moreutils
          nodePackages.pnpm
          cacert
        ];
        installPhase = ''
          export HOME=$(mktemp -d)
          pnpm config set store-dir $out
          pnpm install --frozen-lockfile --ignore-script
          # Remove timestamp and sort the json files.
          rm -rf $out/v3/tmp
          for f in $(find $out -name "*.json"); do
            sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
            jq --sort-keys . $f | sponge $f
          done
        '';
        dontBuild = true;
        dontFixup = true;
        outputHashMode = "recursive";
        outputHash = {
          x86_64-linux = "sha256-ZdSxMluQBKUxZIP3dMuJEv8GSTUuQrZ18LX2F8HskFM=";
        }.${pkgs.stdenv.system} or (throw "Unsupported system: ${pkgs.stdenv.system}");
      };
    in
    {
      # A Nix environment with your specified packages
      devShell = pkgs.mkShell {
        buildInputs = [ python.shell ];
      };
      packages."${system}" = rec {
        marimo = pkgs.python310Packages.buildPythonApplication rec {
          inherit pname version;
          format = "pyproject";
          nativeBuildInputs = with pkgs.python310Packages; [
            setuptools
            pkgs.util-linux
            pkgs.nodePackages.pnpm
          ];
          propagatedBuildInputs = python.pkgs;
          preBuild = ''
            export HOME=$(mktemp -d)
            cd frontend
            pnpm config set store-dir ${pnpm-deps}
            pnpm install --offline --frozen-lockfile --ignore-script
            pnpm build
            mkdir -p ../marimo/_lsp/
            cp -R dist/* ../marimo/_lsp/
            mkdir -p ../marimo/_static/
            cp -R dist/* ../marimo/_static/
            cd ..
          '';
          src = marimo-dev.src;
        };
        default = marimo;
      };
    };
}


Can't generate AWS token

Hello everyone,
Thank you for the awesome work with Canary token.
I manage to install this docker version on an AWS EC2 instance and the SMTP configuration works fine.
I can generate a custom image or fast redirect and it works, but when I try to generate AWS keys, I get stuck in the inactive form and the credentials layer doesn't show.
I get no relevant logs from docker-compose logs and the only I get is in return from HTTP get call to /generate, I get :
Error_Message: "Failed to retrieve AWS API keys. Please contact<EMAIL_ADDRESS>I won't contact<EMAIL_ADDRESS>because I don't pay for thinkst services.
How could I get more logs about this situation?
Thanks a lot in advance.
Adrien

Hi @adrienpessu,
Thanks for giving it a spin and I hope we can get it up and running for you as soon as possible.
In terms of checking some logs; a useful way will be to get into the docker container (say switchboard), and check the switchboard.log in there. You can do this by:
docker exec -ti switchboard /bin/bash which will take you into the container, and then maybe tailing the switchboard.log using tail -f switchboard.log. Go to your browser, try generate an AWS API Key Canarytoken and see what those logs say.
In trying to get this sorted, would you mind telling me a little more about your setup?
Let me know,
Jay

Hello @jayjb ,
I have checked that switchboard.log without any luck. It seems that in the output of the command docker-compose logs, we can find the content of the switchboard.log file.
About my setup, I have created a EC2 instance from AMI linux 2. I have installed docker and docker-compose. I have checkout the repository canarytokens-docker.
My switchboard.env looks like this :
CANARY_PUBLIC_IP=<IP_ADDRESS>
CANARY_PUBLIC_DOMAIN=ec2-<IP_ADDRESS>.eu-west-1.compute.amazonaws.com

<EMAIL_ADDRESS>CANARY_ALERT_EMAIL_FROM_DISPLAY="Security"
CANARY_ALERT_EMAIL_SUBJECT="[SECURITY] honeypot"
CANARY_SMTP_SERVER=smtp.server
CANARY_SMTP_PORT=587
<EMAIL_ADDRESS>CANARY_SMTP_PASSWORD=changeme
CANARY_TOKEN_RETURN=fortune
CANARY_WEB_IMAGE_UPLOAD_PATH=/uploads
LOG_FILE=switchboard.log

and my frontend.env looks like this :
CANARY_DOMAINS=ec2-<IP_ADDRESS>.eu-west-1.compute.amazonaws.com
CANARY_WEB_IMAGE_UPLOAD_PATH=/uploads
CANARY_MAX_UPLOAD_SIZE=10485760
LOG_FILE=frontend.log

Thank you so much for your help,
Best regards,
Adrien

Hi @adrienpessu,
Thanks for getting back to me so fast; ah thats useful to note about the logs, thank you.
So the next step, I think, would be to see if you can hit the AWS API Key Canarytoken endpoint from that server. So once you are ssh'ed into ec2-<IP_ADDRESS>.eu-west-1.compute.amazonaws.com (assuming thats a fake address); you could try pinging or curling the endpoint to see that your server has access.
Something like:
curl -kis "https://1luncdvp6l.execute-api.us-east-2.amazonaws.com/prod/CreateUserAPITokens" just to check that you can hit it.
Let me know how it goes.
Kind regards,
Jay

@jayjb
From my well named server ec2-<IP_ADDRESS>.eu-west-1.compute.amazonaws.com,
I get :
curl -kis "https://1luncdvp6l.execute-api.us-east-2.amazonaws.com/prod/CreateUserAPITokens"
HTTP/2 502
content-type: application/json
content-length: 36
date: Wed, 25 Mar 2020 13:34:46 GMT
x-amzn-requestid: 0835b7a4-4614-42d5-a2dc-319868b6446c
x-amzn-errortype: InternalServerErrorException
x-amz-apigw-id: J8uecEvhCYcFkyA=
x-cache: Error from cloudfront
via: 1.1 003bc9225f430357abb8eb4b34f6dc20.cloudfront.net (CloudFront)
x-amz-cf-pop: DUB2-C1
x-amz-cf-id: KNEIfYEPvBzZdyLUD5_HHm9TokftFNBzBurPY0kX3FWuZfN0vIXgFw==

{"message": "Internal server error"}

I get the same result if I put the url https://1luncdvp6l.execute-api.us-east-2.amazonaws.com/prod/CreateUserAPITokens in my browser.
Best regards,
Adrien

@adrienpessu,
Thanks for testing that. Just trying to cancel out places that may be the issue (also thanks for the output, I saw that request hit the endpoint and have made some changes to return a more useful message).
So looking through the code a bit, I see we have a limit on the domain name size (when trying AWS API Key Canarytoken. Since we append the domain name and the canarytoken together, your domain name size can be a maximum of 39 characters (which would mean your example domain above would not be accepted).
I notice that this isn't clear anywhere; so ill add it to the documentation for future use. Let me know if that makes sense.
Kind regards,
Jay

Thank you very much for your help.
I will try to get a hand on a shorter domain name, I will get back to you shortly to inform you of the success.
Have a nice day,
Adrien

Hello again,
With a shorter domain name, I was able to generate AWS credentials.
Thank you a lot.
But when I test it, I don't get the email.
To test, I do aws s3 ls --profile honey
I have a [honey] profile in my credentials file with the all the information generated by the canary token.
Did I miss something in the configuration?
Best regards,
Adrien

Hi @adrienpessu,
Thanks for getting back to me with more info. So i have checked the logs and see both your created canarytokens and the triggering of them. The issue here is that the triggering mechanism relies on triggering a DNS canarytoken.
Would you mind ensuring that DNS Canarytokens are working on your new setup please?
In terms of getting the DNS working correctly; you will need to add more than just a A record. If your public IP is <IP_ADDRESS> and your canarytokens domain is ns.test.com, you would generally need something like this:
test.com A <IP_ADDRESS>
ns.test.com. NS test.com
pdf.test.com NS test.com
Using the above, you could use the pdf.test.com as your NX domain.
Please let me know if this works out.

@jayjb
I changed my DNS records, and it takes a few minutes to propagate.
To be closer to your last message, I use a domain instead of a subdomain
I guess you could see it in your logs.
But, it still doesn't work with AWS token. I have checked, it still works with "slow redirect"
I feel I am close to success.
If you think it is a good idea, I could make a PR to enrich the readme.md file, to avoid people falling into the same mistakes I made. (Or at least a medium post with a step by step)

@adrienpessu,
ah awesome, lets see how that goes with the updated DNS records.
With regards to the "slow redirect", is that it is an HTTP token. The AWS API Key Canarytoken uses the DNS channel; which can be test by creating a DNS Canarytoken and running:
host <canarytoken>.<your domain>
So as an example, I created a DNS Canarytoken on canarytokens.org and copied the Canarytoken. I can trigger it by:
 host hx332u91x6gdf7eaqhmzpnx6q.canarytokens.com
This is the same channel of beaconing/alerting that the AWS API key Canarytoken uses.
Haha, I feel like you are very close to success too. Keep at it! We'll get it working soon. I think either (or both would be great). I can help you with either of those if you need any input.

@jayjb
I guess the DNS is updated.
I tried :
host 8xqxlets30dgqtgn4r4l3bf5w.test.com
8xqxlets30dgqtgn4r4l3bf5w.test.com has address <IP_ADDRESS>

I didn't get the email.
I also tried to generate a DNS token on canarytokens.com and there, it's work.
I don't know what I am missing. 🤔

@adrienpessu,
Just to be clear; so that i have a clear picture in my mind.
You did the following steps:

created a DNS Canarytoken (8xqxlets30dgqtgn4r4l3bf5w) on test.com.
run host 8xqxlets30dgqtgn4r4l3bf5w.test.com and got the response 8xqxlets30dgqtgn4r4l3bf5w.test.com has address <IP_ADDRESS>.
didn't receive an email or notification that the Canarytoken triggered?

But when you created a DNS Canarytoken on canarytokens.org, and triggered it, it worked?

Yes, this exactly that.
(Sorry, my previous message wasn't clear)

@adrienpessu,
Sorry for the delay. So i think the steps forward now to determine where the break is:
a) not receiving the DNS request on your Canarytokens server? (Try triggering the DNS Canarytoken and tailing the switchboard.log to ensure the request is hitting your server)
b) if receiving, does the triggered DNS Canarytoken show up in the "Manage this Token" screen. (So once you create the DNS Canarytoken, you will notice a "Manage" link in the top right; after we confirm the DNS request is hitting the server, lets see if the Canarytoken is getting triggered?)
c) if it is being triggered (i.e. showing up in that "Manage" screen), then lets log into our mail server and check whether the mail is reaching there or getting further? (also check your Spam folder, ive been fooled by that a couple times recently)
Please let me know how these steps go.

@jayjb
It's a, there is nothing new in switchboard.log when I trigger DNS request host 8xqxlets30dgqtgn4r4l3bf5w.test.com

@adrienpessu,
I thinking it may be a DNS issue then. Could paste your DNS zone file here? (obfuscating info as necessary). We should be seeing any DNS queries for test.com coming through to your test.com Canarytokens server. Please make sure that your test.com server is the authoritative DNS server for test.com.

Sure, I am not 100% confident in my DNS zone file, to it can be it :
@ 10800 IN SOA ns1.provider.net. hostmaster.provider.net.<PHONE_NUMBER> 10800 3600<PHONE_NUMBER>0
* 10800 IN A <IP_ADDRESS>
@ 10800 IN A <IP_ADDRESS>
@ 10800 IN MX 10 spool.mail.provider.net.
@ 10800 IN MX 50 fb.mail.provider.net.
some 10800 IN CNAME some-site-3dd78f.netlify.com.
home 10800 IN A <IP_ADDRESS>
ns 1800 IN NS test.com
pdf 1800 IN NS test.com
pop 10800 IN CNAME access.mail.provider.net.
smtp 10800 IN CNAME relay.mail.provider.net.
webmail 10800 IN CNAME webmail.provider.net.

So the one thing I notice there is that you haven't added the NS records for this zone. The NS records (or Name Server records) are responsible for telling us which DNS server is our authoritative for that domain. For looking at your zone, you would need to add:
@ 10800 IN NS ns1.provider.net @ 10800 IN NS ns2.provider.net
Something like that. Basically an NS record pointing test.com at the value in your SOA (ns1.provider.net).. You can also drop the TTLs on records for testing purposes.

Thank you. Now, I think I have something in the log that will give us another clue :
'Error in render GET: No Canarytoken found in /hub/msmint/purgecache'
I have regenerated DNS token and AWS token just to be sure that it should exist.

@adrienpessu,
I can see you triggering the AWS API key Canarytoken; but it is failing the lookup. If i try lookup that domain, it also fails for me.

So, as it turns out, my domain's name provider has trouble with setting NS records directly in the zone. It is seen as external. 🤷♂
So I tried with another domain that I have in google domains and google don't want me to add NS records when I use google DNS. I guess google will add it automagically
nslookup test.com seems to work and nslookup 6am6xml3cxmovmzqx2aq5ovdh.test.com too

Hi @adrienpessu,
How has the debugging going? Let me know if I can help you anywhere again

Hi @jayjb
I didn't successed yet. And to be honest, I don't know what to try. I am not sure to know how it works. Correct me, if I am wrong. When someone run : host 8xqxlets30dgqtgn4r4l3bf5w.test.com, the DNS server should should resolve this and send the request to honeypot switchboard, because the DNS record @ 10800 IN A <IP_ADDRESS>. I don't know what is the purpose of  ns 1800 IN NS test.com.
Thank you very very much for your help.

Hi @adrienpessu,
So i would say in terms of testing, run the tests along side the canarytokens.org site. This would give you an accurate account of what your should be seeing.

Generate DNS token on canarytokens.org and run host xxxxxxxxx.canarytokens.org and make not of the results (email received and response from the server)
Generate DNS token on your sever and run host xxxxxxxxx.test.com and compare the results.

The NS records are indicators of which DNS server is authoritative for that domain. As an example for AWS's Route53 DNS provider (and often its similar on other DNS providers too) if we have the domain test.com; AWS will tell you the nameservers responsible for test.com and these will be your NS records for test.com. In the same zone file for test.com, you will have an A records pointing towards the IP of your server.
Please let me know what is still going wrong and we can attack that specifically.