PreProcessing with VBA

[x] 1. Create a Template sheet with Product (vertical) and Factory (horizontal).
[x] 2. Create a sub to copy the template file, then delete the template file
[x] 3. Sort the Product/Factory list before generating template
[ ] 4. Check that the number of constraints is valid (not 0, so basically just verify input and loop until the user put something valid in)
[ ] 5. Check that all the products are mentioned in constraints (Verify Constraints button)
[x] 6. Demand Volume and Outbound Cost file (sorted)
[x] 7. Delete blank rows in Product and Factory List
[ ] 8. Button to return the worksheet to the original form
[ ] 9. MsgBox when the user click on the box, it will ask them if they want to generate the format
[x] 10. Lock Product and Factory List sheets

For task 1, the list of name to copy to is as follow

Factory Per Product
Inbound Cost Per Product
Outbound Cost Per Product
Efficiency Per product

The rest of the sheets are

Outbound Cost Per Product
Capacity Constraints
Supply Constraints
Capacity Volume
Demand Volume

Now I finished 2, 3, 4
I still need to do 1, 5

Tomorrow I need to

[ ] Sort the Product/Factory list before generating template

[ ] Check that the number of constraints is valid

[ ] Check that all the products are mentioned in constraints (Verify Constraints button)

[ ] Demand Volume and Outbound Cost file (sorted)

I was thinking we would also need a button to just return the whole worksheet to original format with just product and factory

I'm also thinking about a message before the user run that ask them if they want to run the template. (9.)
And also tell them about the option to reset the workbook to before (8.)
Also I need to find out how to lock the product list / factory list sheets (10.)

 Think of a way to make all the macros more accessible

Added macros to quick access toolbar

For 4 I just make it so that if the input is invalid or cancel or close, then number of constraints is 1 and the user have to input the data manually

For 11 I think this could includes the stuff in User Guide and additionally, what kind of inputs we would like for each sheet


Feature request: improved keyboard control

I.e. the arrows move the scrollbar of gists, rather than switching between them. Ideally also supporting j/k for up/down ala gmail/vim would be a nice touch as well.

I have to admit the key bindings in Lepton is pre-mature at this moment. The binding mechanism in Electron is confusing, and I need some time for experiment.
Applying the vim style key binding sounds like a great idea. I'll try to implement that in the future release.


Sales Price Bug Fix

Fixed:

Resolved sales price bug.

Task linked: CU-86drrdm13 Product Bundle sale_price


Modify cursor_put so it matches dbi_put.

dbi_put return false if it cannot insert a duplicate
value because of MDB_NODUPDATA or MDB_NOOVERWRITE,
while cursor_put will raise an exception.
This patch modifies cursor_put so it has the same
behavior as dbi_put.

This breaks backwards compatibility, so I understand if the PR cannot be accepted.

Thanks--I'll have a look this week and get back to you.

Bump.

closing old PRs


Is there a way to open window frameless ?

Hi !
is there a way to open screen frameless ? In this case, How can we minimize or close it ?

Hi,
No, Ebiten doesn't have such feature. I don't think this is not so useful since, as you expected, it would be hard to close the window. Do you really want that?

Yeah It could be a nice feature. Some games have a frameless mode, but we must have access to it. Goal of this future is to create desired UI / UX for window
here is an exemple of what we can do :

Ah, I understood. Thank you for elaborating (the image is very helpful to me to understand what you want). Let me consider to implement that.

In this case (just to create a launcher), we should use another technical solution as golang-nw. Can you consider to implement

Hm, in the current stable GLFW version 3.2, glfwSetWindowAttrib is not introduced yet http://www.glfw.org/docs/3.3/group__window.html#gace2afda29b4116ec012e410a6819033e. This means that borderless property must be defined before the game starts and Ebiten can't have SetDecorated function that can be called anywhere. Hmm...

Implemented SetWindowDecorated and IsWindowDecorated. SetWindowDecorated must be called before Run so far. I'll fix this problem after GLFW is updated.


[Fanbox] serviceProvider error

Prerequisites

[x] Did you read FAQ section in readme.md?
[x] Did you test with the latest releases or commit ?
[x] Did you search for existing issues in Issues?

Description
There might be a new type of embed in Fanbox? This post certainly looks different than any I've encountered. Thankfully a lot of "all users" posts for the yuichihiiragi account. The post in question that seems to fail is this one.
EDIT: Issue may be related to #1133 but I was not 100% confident to post this there.
Steps to Reproduce

Download by yuichihiiragi Fanbox artist (f2)
Should fail reaching this post

Expected behavior:
Continue to other posts
Actual behavior:
Failure
Log file:
pixivutil-31-07-22-fanbox.log
And console output: fanbox-error.log
Versions
Latest commit 19525f03ac537be2ee808aa2e917a3140a387fba

I just started getting this error on posts that have embedded links, using the latest release.

do you have log file? might need to update https://github.com/Nandaka/PixivUtil2/blob/master/content_provider.json

Sure, one sec

It's happening to me as well. I'll go ahead and attach a log too in case more sample sizes can help since it seems to be happening with multiple artists.
pixivutil.log

Can you try this: https://github.com/Nandaka/PixivUtil2/releases/tag/v20220825
It should be fixed on latest release

Yup, it's fixed now! Thanks a lot Nandaka!


add support for plaintext (unencrypted) passwords

This would also allow logging in with the hashed password which defeats the purpose of hashing passwords.
Plaintext passwords are not something we want to support because of the security concerns you mentioned in #22.

The way the if statements are structured, plaintext check is last so it shouldn't allow the behaviour you mentioned. I included tests to cover such a case as well.
Unfortunately, this is intrinsic knowledge and not captured in the commit as a comment currently. It would be nice to have it in as an option, along with appropriate warnings.


Client is stuck and instance is shut down while running vacuum full

Extracted from https://github.com/zenithdb/zenith/issues/1215
Repro:

pgbench init with scale 500 with no vacuum
vacuum full

Result:
client is stuck without returning the result
instance is shutdown
Now I see this error in compute logs:
2022-02-21 17:04:45.376 GMT [35] ERROR:  could not extend file because cluster size limit (10000 MB) has been exceeded
2022-02-21 17:04:45.376 GMT [35] HINT:  This limit is defined by zenith.max_cluster_size GUC
2022-02-21 17:04:45.376 GMT [35] STATEMENT:  VACUUM FULL;

And this error is not propagated to client. After some time instance is shut down

Can't reproduce it now: error is  delivered to the client.
postgres=# vacuum full;
ERROR:  could not extend file because cluster size limit (10000 MB) has been exceeded
HINT:  This limit is defined by zenith.max_cluster_size GUC

I tried it with scale 500 and now it is larger than the limit used in our clusters by default so I cannot use exactly the same steps to reproduce the error. @ololobus is there a way to allow larger instances for particular users?

@LizardWizzard you can do it with Edit button on the cluster page in admin, e.g.: https://console.zenith.tech/admin/clusters/lively-dream-771350
It shows some weird wording and wrong units, also max_cluster_size isn't updated on the admin page, but units are MB and if you change it, max_cluster_size seems to be updated and limit will be changed on the public cluster page
cc @seymourisdead

@ololobus It seems that I can reproduce this even without cluster size change. Steps:

I filled cluster with data up to 97%
Did SELECT count(*) FROM foo;
And after some time cluster is shown as Idle without any updates to the client

cc @funbringer
It reproduces consistently, so I can give access to the cluster

* Did `SELECT count(*) FROM foo;`

* And after some time cluster is shown as Idle without any updates to the client

Did  the select query hang or cluster marked as idle in console UX? Do you see same behavior if you run select in psql?

Both :)
I've run a select query through psql, and after some time, the cluster becomes idle in console UI, and the query hangs.
I had a chat with @funbringer, and he suggested that AWS timeouts might be taking place. The PR above tries to address that. I'll check whether the PR fixed the issue or not.

@funbringer That didn't work for me. Intuitively I think that this is the right direction of thinking, but something is missing

@LizardWizzard thanks, it didn't help me either. I'm starting to think we have to tune tcp_keepalive_time. I've already asked for @cicdteam's help.

Fixed by enabling keep-alive and corresponding config changes


Jekyll 3.x support

[ ]  Switch to Rouge as highlighter
[ ]  Add jekyll-paginate as dependency
[ ]  Check relative permalinks have 3.x support
[ ]  Test on Github Pages

Hi,
I really like your theme. I'm using it at dave.harris.org.nz.
I have some textile posts which I will need to re-write as Github pages isn't supporting them past 1st May 2106. I was hoping to upgrade my Jekyll to v3.0 at the same time.
Any idea when you would be complete with this?
Thanks,
Dave

Hey Dave,
I just updated the theme in 121022cd6a060ca959828d7ab959d95492233df6 to use Jekyll 3.0. Glad you like the theme!


Invalid UTF-8 in dashboard runs

When generating the dashboard I got the following error:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: InvalidData, message: "stream did not contain valid UTF-8" }', src/tools/dashboard/src/util.rs:135:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

command did not execute successfully: "/Users/accorell/rmc-dash/build/x86_64-apple-darwin/stage1/bin/dashboard"
expected success, got: exit status: 101

1 command(s) did not execute successfully:

  - "/Users/accorell/rmc-dash/build/x86_64-apple-darwin/stage1/bin/dashboard"

Build completed unsuccessfully in 0:02:52

Got it in the context of #492, after adding a couple of new .props files.
Found out why this is happening. Turns out the code tries to read all files (not only .props or .diff). In this case it was trying to read a not staged .goto file. We should better handle this error or restrict it to operate on .props and .diff files only.


Support Detail maps in StandardMaterial

What problem does this solve or what need does it fill?
Detail maps (also known as Secondary maps) are a common technique in video games used to give materials higher detail when viewed at close distances.
From Unreal Engine

Detail texturing allows you to give the illusion of more detail in a texture by bringing in a more highly repeated diffuse and normal map combination which layers over the original diffuse and normal for an object. This gives the illusion of greater detail at close range.

On the left side (labeled 1), the Material uses a detail texture to add additional high-frequency details to the surface. On the right side (labeled 2) the Material does not use a detail texture. Note that the image on the left appears sharper and more detailed than the image on the right.

What solution would you like?
StandardMaterial should support optional diffuse and normal map inputs which contribute to the rendering of the material. Additional inputs such as a mask, scale controls, intensity, blend mode, tiling, and offset could impact the exact way the detail map is applied.
What alternative(s) have you considered?
Custom shader or ExtendedMaterial.
Additional context
Surveying the "big 3" shows details maps as being supported in the base "standard material" in both Unity and Godot, while Unreal moves this responsibility to a "Texturing Function" in their node based material workflow.

An issue we're going to run into, we're already running right up against the min-spec texture binding limits.


.tar.gz PowerShell issues fix.

Pull Request: Update install.bat for Compatibility with .tar.gz Extension in PowerShell
Overview
This pull request addresses a compatibility issue with the .tar.gz extension in PowerShell. It incorporates the fix from issue #234 in a more streamlined manner.
Details
The install.bat file has been updated to prevent compatibility issues with the .tar.gz extension when using PowerShell. This change enhances the user experience by preventing potential errors during the installation process.
Conclusion
This pull request provides a necessary update to the install.bat file, improving compatibility with PowerShell.

Yeah I will check that!

Thank you for the contribution @MauroDruwel
However, I have tried to run the new install.bat file but cannot call nitro directly from the terminal (powershell and cmd). Could you have a look as well.
The part for mkdir and tar is good

Yeah, I will check that!

Hi @hiro-v, I think I fixed it :) Atleast, it works on my pc. Could you try it? The problem was that the extracting was not saving the files in the %AppData%\nitro folder. But now it works :)


Add pixels for upsell

Task/Issue URL: https://app.asana.com/0/0/1207152602150364/f
Description
See attached task description
Steps to test this PR
https://app.asana.com/0/0/1208182688782600/f

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4957  👈
#4953
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @karlenDimla and the rest of your teammates on  Graphite


Will it affect the integrity of the data while writing the same dexie.js table at the same time?

My project is to use the timer and version number to achieve the unification of dexiejs and server database
The problem now is that it doesn't go wrong in the case of small concurrency, but when the high point occurs, the statistics are inconsistent

Could you explain a little more? I'm having problems understanding what you are trying to achieve.

Also interested in how Dexie handles concurrency, mainly in transactions.
Say I have a transaction A that takes maybe 10ms. Then within the window of 1ms of time, transaction A is called 5 times. Does Dexie queue these transactions somehow? I see there is Dexie.currentTransaction prop which is Transaction type rather than an array of them, so that seems to indicate only one can be going on at any time (not counting spawned parallel transactions)?
Had major issues with concurrency like this with other IndexedDB wrapping libs. Some have implemented queues to manage concurrent requests, others we've written queues around the interface to make sure IndexedDB doesn't mess up its data. (though we probably were not using IndexedDB very well)
What did you end up doing for your concurrency issues @xuxiaozhou ?

@poltak Dexie supports parallell transactions the same way as IndexedDB does it. Dexie.currentTransaction is a property local to your zone. However, IndexedDB will do table-locking for readwrite-transactions so if you have 5 simultanious readwrite-transactions with same table included, they will in practice affect the DB sequencially.

@dfahlander Is transactions safe between multiple tabs? So, i have open a transaction in TAB A and one in TAB B on the same db and table, the second TAB wait for the first transaction on TAB A was finished before to start?

@dfahlander Is transactions safe between multiple tabs? So, i have open a transaction in TAB A and one in TAB B on the same db and table, the second TAB wait for the first transaction on TAB A was finished before to start?

Yes, they are safe between tabs and also between windows and workers.

@dfahlander Thank you! I have another question. Why my transaction fail always? This is the code.

Read all data from table
Send data to api endpoint with http angular return observable rxjs, then convert it to Promise and wait until it is resolved;
Clear all data from db ( i send all data to api so i need to delete all for not send again this data next cycle time)

db.transaction('rw', db.activity, async () => {
  // 1) Read all data from table
  const data = await db.activity.toArray();
  2) Send data to api endpoint with http angular return observable rxjs, then convert it to Promise and wait until it is resolved;
   await lastValueFrom(this.send(data)); // Wait for promise resolution ( reject if http.post fail otherwise resolve)
  3) Clear all data from db ( i send all data to api so i need to delete all for not send again this data next cycle time)
  await db.activity.clear();
  })
  .then(() => {
    console.log('Transaction committed');
  })
  .catch((err) => {
    console.error(err.stack);
  });
});

 private send(data: MyClassItems[]) {
    const toSend = {
      version: 1,
      events: data
    };

    return this.http.post(`http://localhost:3000/api/log`, toSend, {
      headers: this.headers
    });
  }

After 2)
await lastValueFrom(this.send(data)); // Wait for promise resolution ( reject if http.post fail otherwise resolve)
i see transaction active property always false.  Where i wrong?

Yes, they are safe between tabs and also between windows and workers.

As far as I understand it, LeveledDB writes are not safe across tabs, and so you need to perform cross-tab locking. Is Dexie doing this underneath?


Add Partial listing of files in listStatus

Remake of https://github.com/Alluxio/alluxio/pull/15193
What changes are proposed in this pull request?
This allows calling the listing of files in multiple calls (partial listing) vs in a single call using the new RPC call ListStatusPartial.
The idea is that at the beginning of each partial listing following the initial one, the call will include either the Inode ID or the path of the last file returned in the previous call to start the next listing from. Like the current implementation of listStatus, the listing is not atomic. Furthermore, if the Inode id is removed or moved to a different path the listing may throw an error, thus using the path is recommended when possible. Partial listing is preferred to normal listing when performing long running calls over the results at the client when listing large directories.
This PR also adds the option to only list items with a given prefix, and to list items starting after a given path (given that the items are sorted in lexicographical order). This will be faster than manually filtering prefixes or items as it will use the properties of the underlying data structures (rocksDB/skip list) to do this efficiently.
Note that the implementation currently needs entries of directories to be ordered so that the traversal can be continued. If rocksDB is used the elements are already sorted, so it just iterates normally. Previously, if the inodes were stored in the heap then they were in a concurrent hash table, iteration without sorting would not be valid because if the hash table is resized then the iteration is changed as the elements are put in new buckets. This PR changes the in memory children data structure from a hash table to a skip list.
This pull request only adds the functionality, none of the client APIs to access this (described below) have been implemented. This and further functionality such as filtering and refining as in https://github.com/Alluxio/alluxio/issues/10038 or filter HDFS will be added in following pull requests.
Note:
This PR makes a small change to the way a directory is listed. Currently if the owner of a directory does not have read permission of a contained directory, the contained directory will not be added to the results. After this PR, the contained directory will be included (the contents of the contained directory still will not be visible). This is more consistent with POSIX behavior.
Why are the changes needed?
These changes can be used to add compatibility with other partial listing operations in file systems:

Using S3 ListObjectsV2 continuation token. https://github.com/Alluxio/alluxio/blob/9f51b06a3986ccf030f8d416e70dfd23fab344c9/core/server/proxy/src/main/java/alluxio/proxy/s3/S3RestServiceHandler.java#L207
Using fuse readdir offset.
https://github.com/Alluxio/alluxio/blob/47cfde7c0e26d9063c0ca31673bb58b474e7ac95/integration/fuse/src/main/java/alluxio/fuse/AlluxioJniFuseFileSystem.java#L323
HDFS listStatusBatch using token.

It should also be used in the web ui which lists files one page at a time.
Does this PR introduce any user facing changes?
A new Protobuf type is added ListStatusPRequest for partial listing that includes the following fields:

One of the following offset choices

startAfter (string): Start listing after the given path (given that the items are sorted in lexicographical order).
offsetId (int64): The InodeId from which to start listing.
offsetCount: Start listing only after offsetCount items have been passed in the listing

batchSize (int32): the maximum number of items to include in the returned batch
prefix (string): Only list items that match the prefix

Each of the 3 offset choices has different advantages.

startAfter - this is generally the preferred option. In case modifications in between listing calls, items won't be listing twice, and concurrently added items may or may not be listed (i.e. this should be POSIX compatible and is similar to the S3 start after option).
offsetId - this is similar to startAfter, but has the disadvantage of if the Inode Id of the offset is deleted or moved (renamed) then the results may not ensure the above properties. It can be used when offset must only be a long and not a string.
offsetCount - this is generally more suited for applications that are concerned with the most recent offset index and not the contents in case of concurrent modifications. For example a page based UI may use this to show the most up to date items at a page offset. Of course across calls there is no guarantee of items being listed multiple time or not at all, so it is probably least suited for POSIX type usages. Furthermore it is the mostly costly as instead of directly traversing the Skiplist to the offset (O log n), it must count the elements (O n)until the offset is found.

A new Protobuf type is added ListStatusPResponse for the return of partial listing calls with the following fields:

IsTruncated (boolean) - true if the listing was truncated due to more results remaining than the batch size.
fileCount (int64) - the total number of files in the directory being listed (or -1 for recursive listings)

A new RPC is added for partial listings as follows:
rpc ListStatusPartial(ListStatusPartialPRequest) returns (ListStatusPartialPResponse);

alluxio-bot, merge this please


Standardise files with files in sous-chefs/repo-management

Signed-off-by: Dan Webb<EMAIL_ADDRESS>

Released as: 4.2.2


Jitpack support as AAR distribution

Hi
this https://jitpack.io/#AmniX/MaterialPatternllockView could work or you may need a setup like this one https://github.com/jitpack/gradle-simple

Use it like follows
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
compile 'com.github.AmniX:MaterialPatternllockView:7a45dcaa79'
}


?onfail=cache says there's no results, even though I was getting new results recently.

One of my lookups for the OMAA ICAO responded with this error:
https://avwx.rest/api/metar/omaa

"Report Lookup Error: Unable to fetch report from NOAA. You might wish to use '?onfail=cache' to return the most recent report even if it's not up-to-date"

A few minutes prior to the lookup that caused this, I had been getting metar information just fine. I decided to add the ?onfail=cache to the request, since I'd rather get some out of date info instead of no info, and then I got this response:
https://avwx.rest/api/metar/omaa?onfail=cache

"No report or cache was found for the requested station"

Something seems odd because I had been getting responses back previously. Unless the cache got dropped for some reason, or I'm misunderstanding the feature.

I’ve noticed that the NOAA servers have been unpredictable lately. However, the cache option should still return data if available. I need to check if there’s a TTL on the cache table.
As for the NOAA issue, there’s not much I can do if their servers go down, but I can add more regional data sources to lessen the lid on NOAA. Is there a best source for UAE airports?

I'm not sure unfortunately, we've only been using AVWX for these and not any other services.
I'm not too worried about issues with the source, I understand there's not much you can do on your end about them. I just wanted to bring the onfail issue up since it doesn't behave as expected.

So I checked out the code here: https://github.com/avwx-rest/AVWX-API/blob/3c58312abe7175793f32c3dff1a3be469e298da7/avwx_api/handle/metar.py#L62 for the METAR handling which I'm using.
It looks like the initial lookup is done via the cache too. I'm not sure if the nofail=cache makes sense in this context then, since if the initial check doesn't give you a valid return then we would not expect one the next time we check the cache. If anything appears in between the first and second calls, then it would be new data.
I'm not sure what to suggest to improve this. It's not clear from this block of code (and I'm not great at python) where the cache is being set from, but the second cache lookup on line 84 when nofail is specified seems redundant and won't actually come up with the older data.

I found a bug where the second call to the cache was not forcing the data to be returned. I've refactored the code to force the cache to return on the first call and keep it in memory during handling removing the second call. The fix has been pushed. I've also changed the default onfail value to "cache"


Android

https://www.figma.com/file/FKKSf4OC4kSkQbOPWJ2jsj?type=whiteboard

Hi! Please follow the issue template when filing issues, and be sure you're using MWC on the web. This is not the place to file issues for Material figma files.


Don't require MilitaryOverlay until user wants to add to map?

The current behavior of checking for the military overlay FGDB on addin startup is somewhat disruptive when not using the Addin.  Should/can we change the sequence a bit so this FGDB isn't checked until absolutely needed (perhaps on "Add to Map?" - this may also help debug #49 )

I think the new behavior - prompting to add the lpk if not Military OverLay Info Model (MOLIM?) if not found - works well enough that we can close this


Add flag to rangeFromLineNumber to highlight the whole line

Occasionally it would still be desirable to highlight the entire rest of the line, even if a word can be determined (see https://github.com/AtomLinter/linter-pyflakes/pull/38#issuecomment-228419569).
Add a flag to rangeFromLineNumber making it behave as it did in the previous version.

Hmmm, it might even be a good idea to use this behavior if no column is specified. Otherwise we could be highlighting a word that has little relation to what caused the error, other than being on the same line.
I would say that being less specific, but accurate is better than being too specific, and wrong. For example in this file the tag is highlighted, but the error is talking about class:. The linter only provides a line in its messages.

It's just wrong from a UX perspective to highlight an entire line, and show a tooltip whenever a user clicks anywhere in that line. As a user of linter-eslint myself, my heart beat used to go up because it used to highlight the entire text, and smart IDEs like PhpStorm only highlight the first char if the entire line is full of whitespaces to indicate that because they know that it gets the point across

Right now though we are highlighting ranges that are entirely wrong in some cases, so something needs to be done to fix it. If you don't want to go back to the old behavior of the entire line, what do you propose?

From discussion with @Arcanemagus, we both agree that we would bump a major version and make linter only highlight characters if column is provided in rangeFromLineNumber


Remove dendrite skips in history visibility tests

as https://github.com/matrix-org/dendrite/issues/617 has been resolved

No, though this could either mean a problem with complement test, or a problem in dendrite's implementation of history visibility, I have it on a todo item to look at this later, but in the meantime i'll cc @neilalexander if he also wants to take a look at this.

I've investigated the issue, looked at the tests again, and tested this PR against the dendrite main branch. The only conclusion I can pull is that https://github.com/matrix-org/dendrite/issues/617 is not resolved after all, as I can't see a commit or PR at the time that merges the functionality in dendrite.


The thread pool can't drain

I wan't drain all the task, but can't find the method, could you add the drain method?

btw, add a method which is used to get task number of the pool.

I'm afraid it is not possible to implement these 2 features in this thread pool. Here we pay for high performance with lack of control over execution process. If you need more control, you probably need another thread pool implementation.


Reduce Escrow gas usage

Fixes #197.

Ok so just to be clear, the first time they store a chunk it updates the URL? Then we update the data under the hood. And as a final step we set the final hash value?

Yes!

Yes.

Cool I'll try it out


Scheduler eventually stops queueing tasks

There are DAGs supposed to be running

But the scheduler isn't doing its job:
● airflow.service
   Loaded: loaded (/usr/lib/systemd/system/airflow.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-02-08 09:06:56 UTC; 2 days ago
 Main PID: 3283 (/usr/bin/python)
   CGroup: /system.slice/airflow.service
           ├─3283 /usr/bin/python3 /usr/local/bin/airflow scheduler
           └─8169 /usr/bin/python3 /usr/local/bin/airflow scheduler

Feb 10 19:37:37 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:37,380] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:39 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:39,382] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:41 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:41,384] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:43 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:43,386] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:45 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:45,388] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:47 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:47,390] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:49 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:49,392] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:51 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:51,394] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:53 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:53,397] {jobs.py:1559} INFO - Harvesting DAG parsing results
Feb 10 19:37:55 ip-10-0-0-119.ec2.internal turbine[3283]: [2019-02-10 19:37:55,399] {jobs.py:1559} INFO - Harvesting DAG parsing results

It seems that there are two scheduler processes. Strangely, issuing a systemd restart airflow makes another one spawn:
● airflow.service
   Loaded: loaded (/usr/lib/systemd/system/airflow.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-02-10 19:41:48 UTC; 9s ago
 Main PID: 13549 (/usr/bin/python)
   CGroup: /system.slice/airflow.service
           ├─13549 /usr/bin/python3 /usr/local/bin/airflow scheduler
           ├─13555 /usr/bin/python3 /usr/local/bin/airflow scheduler
           └─13582 /usr/bin/python3 /usr/local/bin/airflow scheduler

Probably this is due the Airflow service configuration to KillMode=mixed. The scheduler, webserver and worker services probably should have different unit files.

It was very likely a scheduling problem with execution dates getting messed up after changing the start date of the DAG. Will close as invalid until I'm able to reproduce it.


Adds more key management. Moves arrow key handler for calibration can…

…vas into react hook that uses progressive movement. Changes the colors of the canvas corners to follow rainbow (a precursor for rotation support). Updates tab handler to use tabIndex, eg. allows all buttons on the page to receive tab focus before tabbing to grid. Once in focus, tab will infinitely select corners. Pressing the escape key will defocus the calibration grid. Removed default pointToModify corner, as tabIndex should go through all the buttons first before selecting a corner.

Also allows for modification of the "sensitivity" of progressive arrow translation. The  reason for this is the calibration grid corner translation needs to be less sensitive than PDF translation.


Fix #104: php 7.2 handle ini_set() when session already started

Provide a narrative description of what you are trying to accomplish:

[x] Are you fixing a bug?

[x] Detail how the bug is invoked currently.
We can't call ini_set() when session already started
[x] Detail the original, incorrect behavior.
When it called, it got error : "ini_set(): A session is active. You cannot change the session module's ini settings at this time"
[x] Detail the new, expected behavior.
It call session_write_close() first, then start the session again
[x] Base your feature on the master branch, and submit against that branch.
[x] Add a regression test that demonstrates the bug, and proves the fix.
[x] Add a CHANGELOG.md entry for the fix.

as suggested https://github.com/zendframework/zend-session/issues/104#issuecomment-361046136
i made change for zf2 (attached file). can someone add into repository please.
sorry, .php not supported to upload. so i'm creating txt file of Zend\Session\Config\SessionConfig.php
session-config.txt


Add runtime logging for execute

What is the expected enhancement?
Similar to as was added for the transpiler's PassManager in #2782, qiskit.execute should log progress and runtimes. Possible logging locations: total transpile time, parameter binding, qobj assembly, scheduling (post-#3792), backend job submission.

I'd like to give this one a go :)

Hi @kdk I've started working on this, so far I have added runtime logs for transpile, assemble and schedule. I'm a bit unsure about what other logs would be appropriate (as I'm still not super experienced with the codebase). Could you please provide a bit more guidance on this, maybe an example or 2? Thanks in advance :)

What you have is great. The other place I would add timing is around job submission (the line backend.run(qobj, **run_config) in execute.py).

Closing as #3922 has merged.


Feature request: nested transaction

Will Bolt support nested transaction (which is available in LMDB)?

There's no plans to support nested transactions. It seems to be a relatively little used feature (in LMDB and other DBs) and I haven't seen enough of a demand to warrant the development, support, and additional complexity.


"Delete Permanently" has misguiding description

Does this issue occur when all extensions are disabled?: Yes

VS Code Version:
Version: 1.83.0
Commit: e7e037083ff4455cf320e344325dacb480062c3c
Date: 2023-10-03T16:11:49.843Z
Electron: 25.8.4
ElectronBuildId: 24154031
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.15.0-84-generic snap

OS Version:
Ubuntu 22.04.3 LTS

Steps to Reproduce:

Create a project with any file
Try to delete this file permanently (with shift being pressed)

Obviously, a file can't be restored after permanent deletion.
However, the operation is described properly for permanent deletion of a folder.

Hi @oxcened
Yes, I see now that I can restore files even after "Delete Permanently".
However! This is only true for small ones. As soon as I permanently delete a file with a size of a couple of gigabytes, I can't undo this action.
I'm seeing the same behavior both on MacOS and Linux.
Mainly, I work on a remote Linux machine. And the problem is that "Delete Permanently" is the only option for deletion during a remote session. And in this scenario, this message becomes quite dangerous and misguiding.


Security risk of seeing "secret key" after the seed is originally inserted

A originally simple question on the telegram: "Hi, just wanted to ask a couple questions... First, is there a way to see my private seed of Hiro Wallet? And,  if I am already stacking, how can add more STX to the pool? Cheers"
Link to chat convo: https://t.me/StacksChat/312656
Then you can just scroll down to see the full convo between Gustavo and Jw.

This question turned into a legitimate question around critical security vulnerability of the current Hiro wallet feature.

I quote the chat: "I don't think one should be able to see his seed by using the wallet program/extension after the seed is originally inserted. Yet on Hiro you have the option to see your "secret key". I think this possibility should be removed altogether from the extension"

Pls verify can you verify if above is true? If it is the case, sounds like it might be worth addressing quickly in light of the recent Solana wallet hack, all users in crypto are very sensitive about wallet security, including Stackers I see many conversations around Stacks ecosystem.

CC: @sjwhitely
Shout out to Gustavo for bringing this to light.

The wallet requires your password to display the Secret Key upon selecting "View Secret Key" in the app nav:

Is the concern here that someone might get your password then use this feature to get the Secret Key?

Yes.
Although we do know that if someone knows your wallet password AND has access to your file system he will be able to decrypt the private keys using the wallet password this feature.
Although possibly useful for an uncaring user who forgot to take note of his seed phrase upon wallet creation (a HUGE mistake, obviously), does represent an additional layer of vulnerability to the wallet, for a hacker could get access to all of your addresses if he gets to know your seed phrase.

There is also the concern of a compromised machine with a screen reader or keylogger, not to mention how the seed phrase is stored on the device for later retrieval.
Passwords, particularly on a local machine, can be cracked using dictionary based attacks - and depending on how the seed phrase is retrieved/displayed, it could be possible to get the plain-text seed phrase from memory.

Thanks for the extra input here. The particular attack scenarios of concern appear to be:

Someone has your password, accesses your file system and uses it to decrypt your Secret Key
Someone maliciously installs password-cracking software (e.g. dictionary attack) that decrypts your Secret Key (as encrypted and stored in your file system)
Someone maliciously installs snooping software that waits for the wallet to decrypt the Secret Key in memory
Someone maliciously installs a screen reader / key logger on your machine and snoops on your Secret Key upon viewed in the wallet after password entry

To resolve scenario #1 or #2, we'd have to remove passwords from the wallet in general and simply ask for users to re-enter their Secret Key every time they want to unlock the wallet. This is similar to how the Stacks Wallet for desktop used to work (in Stacks 1.0 days) and risks adding UX friction if users generally have an easier time reentering passwords rather than 12- or 24-word keys.
However, there's an argument to make here that many users simply copy and paste their passwords from password managers these days anyway, since our password criteria are very tough (and make memorization difficult). So the UX friction may not be substantially different.
That said, for scenario #1 we'd need to believe that users are more likely to expose their passwords to others vs. their Secret Keys. And for scenario #2, we'd need to believe that the encrypted key is indeed possible to get cracked in a usefully short amount of time.
To resolve #3 or #4, the user would have to use a hardware wallet (e.g. Ledger) even if passwords were removed. Since presumably the user would have to enter their Secret Key each time they want to sign a transaction or message in lieu of storing it in memory (encrypted with password or otherwise). Otherwise, the snooping software or screen reader is going to capture the Secret Key in software mode / sans hardware device whenever the wallet needs it at the moment of signing (either as typed or unencrypted for usage).
@kyranjamie may have some additional thoughts here, particularly as they concern our current password encryption scheme re: scenario #2

I don't think one should be able to see his seed by using the wallet program/extension after the seed is originally inserted. Yet on Hiro you have the option to see your "secret key". I think this possibility should be removed altogether from the extension

It's important to understand that, in order to sign transactions and actually use the wallet, the wallet needs the private key. Whether or not we allow the user to view it later, it's still there. Disabling this feature offers virtually no additional security, and puts users who've lost their seed at risk.
It is not a critical security vulnerability. Metamask, among many other wallets, support this, and it's an in demand feature for the desktop wallet.

if someone knows your wallet password AND has access to your file system he will be able to decrypt the private keys using the wallet password this feature

Absolutely true. If an attacker has these things I'd be extremely concerned. There's very little we can do to prevent loss at this point. But I see little relation between this and the issue in question.
Keylogger/screen reader
If a user's machine has either a keylogger or screen reader installed, it can be considered compromised. Is the concern that if a user has both of these, but not quite full disk access/remote code execution, then if they happened to view their key then, their key could be stolen? @wileyj
It seems far-fetched to me that by not allowing a user to see their seed phrase, there'd be any additional protection for a compromised machine.
Passwords on a local machine
This seems unrelated to the view seed phrase concern. But we use zxcvbn to prevent low entropy passwords, and Argon2 with strong settings to make brute force attacks infeasible on the most powerful hardware.
I'm going to close this as it's a non issue. There's a precedent for this feature.
Always open to chat about general wallet security. There's a discussion here with some ideas to keep the in memory key more isolated from other script contexts. If there are other security concerns, open a new issue to discuss there.

@kyranjamie @markmhx awesome responses, thanks!
the details really help clarify how this works, but also how it works - I agree that the scenarios i proposed are edge-cases, but this issue arose from some concern in the community that you could see the seed phrase in the wallet.
figured it was better to ask the source vs making assumptions as to why/how it's an option.
again, awesome response/explanation - thanks again

I relayed the messages to the community member who made the comments in TG originally. He said, "Keplr does not offer this option among others. I do think it's not ideal from a security point of view. But I guess they have to take into consideration the fact that some people lose their seeds or fail to take note of it upon wallet creation. So it's a trade-off I guess"

I just checked MetaMask, in MM you can view your seeds from using a password.

Separately, I did a quick search on Twitter on related subject, came across a tweet from a supposedly Cyber security PhD student at RHUL, https://twitter.com/simonb03jan2009/status/1442505315203829762?t=hvSABv7NEWMv6lY8cKG3lw&s=19
He suggested 2FA as a method. Just putting this separate security option out there as a thought. (will add this comment on the general wallet security thread too)

Thanks guys.


360* Media icon

I Kindly request a 360 Media icon  :D Much appreciated

Do you have a reference?

I saw some icons online

But i don't know if they are appropiate for the editorjs design.
I want to use the icon for Adding a 360 media file
Maybe i would need one too for when i am rotating the image in the editor


[vim] handle SwapExists

The SwapExists dialog prevents multiple files from being opening if the
dialog occurs before all files are opened. Opening the files is more
important than showing the dialog, so choose "readonly" automatically
and continue opening files.
This problem exists in neovim and Vim 7.3. Not sure about others. To test, choose multiple files in the :FZF prompt; if a swap-exists dialog appears before all files are opened, those remaining files will not be opened.

Thanks, makes good sense.
How about if we do this only when multiple files are selected?
(I need to apply this patch to fzf.vim project as well.)

only when multiple files are selected?

Is that a matter of checking the length of a:lines?
I would lean towards it being consistent in both cases--otherwise users will be confused that the dialog sometimes appears and sometimes doesn't, when using FZF.

Yeah I see your point and I also don't like the inconsistency. But what I'm thinking is that considering that :FZF is mostly (no proof) used to open a single file (and I believe that many users aren't even aware that it can select multiple entries especially since it requires extra -m option), it makes sense to make it consistent with the default behavior of Vim just in that case even if it means introducing some inconsistency.

:+1:

Alright, could you update your commit? Simply surrounding autocmd with if len(a:lines) > 1 statement will do.

Merged, thanks.


Setup failed for custom integration 'gruenbeck_cloud'

System Health details
System Information

version
core-2024.10.1

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.12.4

os_name
Linux

os_version
6.6.46-haos

arch
x86_64

timezone
Europe/Berlin

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

GitHub API Calls Remaining
4906

Installed Version
1.34.0

Stage
running

Available Repositories
1422

Downloaded Repositories
6

Home Assistant Cloud

logged_in
false

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 13.1

update_channel
stable

supervisor_version
supervisor-2024.09.1

agent_version
1.6.0

docker_version
26.1.4

disk_total
30.8 GB

disk_used
25.7 GB

healthy
true

supported
true

host_connectivity
true

supervisor_connectivity
true

ntp_synchronized
true

virtualization
vmware

board
ova

supervisor_api
ok

version_api
ok

installed_addons
ESPHome (2024.9.1), Terminal & SSH (9.15.0), Advanced SSH & Web Terminal (19.0.0), File editor (5.8.0), ZeroTier One (0.18.0), Home Assistant Google Drive Backup (0.112.1)

Dashboards

dashboards
8

resources
3

views
7

mode
storage

Recorder

oldest_recorder_run
September 24, 2024 at 08:35

current_recorder_run
October 4, 2024 at 23:03

estimated_db_size
961.26 MiB

database_engine
sqlite

database_version
3.45.3

Checklist

[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of any previous issues..

Describe the issue
After upgrading HA to 2024.10.1 and this integration to 0.2.0 it wont load any more. I get this error message:
Unable to install package pygruenbeck_cloud==0.2.0: × No solution found when resolving dependencies: ╰─▶ Because pygruenbeck-cloud==0.2.0 depends on yarl>=1.9.4,<1.13.0 and yarl==1.13.1, we can conclude that pygruenbeck-cloud==0.2.0 cannot be used. And because you require pygruenbeck-cloud==0.2.0, we can conclude that your requirements are unsatisfiable.
Reproduction steps

Upgrade HA to 2024.10.1
Restart HA

Debug logs
2024-10-04 23:03:03.274 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration gruenbeck_cloud which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-10-04 23:03:05.254 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pygruenbeck_cloud==0.2.0: × No solution found when resolving dependencies:
2024-10-04 23:03:05.704 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pygruenbeck_cloud==0.2.0: × No solution found when resolving dependencies:
2024-10-04 23:03:06.082 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pygruenbeck_cloud==0.2.0: × No solution found when resolving dependencies:
2024-10-04 23:03:06.086 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'gruenbeck_cloud': Requirements for gruenbeck_cloud not found: ['pygruenbeck_cloud==0.2.0'].

Diagnostics dump
No response

Issue is already fixed and in testing. See #129


Add ability to set custom source directory

Currently I cannot use this plugin with custom value of srcDir option in Astro config:
https://docs.astro.build/en/reference/configuration-reference/#srcdir
At this moment I get the following error:
 error   Path: /Users/azat/Developer/project/src/pages doesn't exist.
ReferenceError: Path: /Users/azat/Developer/project/src/pages doesn't exist.

Hope this PR will fix this issue 🙏

Try with the new version, if it doesn't work tell me I'll implement it.


Test the uwuification

Fixes #10

suggestion: add pytest to install-dev

suggestion: add pytest to install-dev

It already is, it's provided by the dev extra.

hm yes very good 🚀 merge now robin


Remove redundant serialization of OOMExitPaths

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Merging of 22a1616 and c354aaf resulted in redundant serialization of the OOMExitPaths field.
Special notes for your reviewer:
Both commits introduced the OOMExitPaths field and added serialization code.
Does this PR introduce a user-facing change?
None

Codecov Report

Merging #1441 (2087e1d) into main (3df0d88) will increase coverage by 0.52%.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1441      +/-   ##
==========================================
+ Coverage   34.00%   34.53%   +0.52%
==========================================
  Files          13       13
  Lines        1135     1135
  Branches      392      393       +1
==========================================
+ Hits          386      392       +6
+ Misses        493      483      -10
- Partials      256      260       +4


[PE-D][Tester C] Mismatch in type of file exported by export command using the real application compared to as specified in the UG

The file exported by typing export command is of type json instead of txt as specified in the UG. Might be a typo in the UG.

Labels: type.DocumentationBug severity.VeryLow
original: KSSWSept20/ped#26

Woops


Hanging up a call before it connects throws an error (workaround found?)

Describe the bug
When you initiate a call, if you hang it up before you actually connect to the other party in real time or connect to their voicemail, an error is thrown at rtc_session.dart line ~710
_TypeError (type 'Null' is not a subtype of type 'String' of 'reason')
        // Check Session Status.
        if (_status == C.STATUS_NULL || _status == C.STATUS_INVITE_SENT) {
          _is_canceled = true;
          _cancel_reason = cancel_reason;
        } else if (_status == C.STATUS_1XX_RECEIVED) {
          _request.cancel(cancel_reason); // <--- erroring line
        }

The issue seems to be that cancel_reason is not actually set when the logic reaches that else if.
Looking further up, you can see that the option status_code is not being set in the manual hangup call activeCall!.hangup(); which is causing the code to reach that else if without ever setting status_code.
Solution / Workaround?
You're able to pass data through options in the hangup function, so you just have passed the expected Map through to the hangup function.
Ex:
Map<String, Object>? hangupStatusCode = {'status_code': 200};
activeCall!.hangup(hangupStatusCode);

However, I'm not sure where we should be getting the actual status_code from. As a temporary solution, I'm setting it to 200 manually when hanging up before a connection happens, but I was hoping to learn the proper status_code value we should be setting, or if maybe there should just be a default value set in the package?
To Reproduce

Initiate an outbound call from the client
while the call is ringing, but the person youre calling hasnt answered, hang up the call. It should throw the above error. The call will continue to ring at the destination.

Expected behavior
The call should end on the client, and the destination should stop ringing.
System Infomation()
Flutter SDK Version: 2.5.3
Target OS and Version: iOS 12+ & Android Sdk min21 target30+
Host OS and Version: macOS 12.0.1 Apple Silicon

I think _request.cancel(cancel_reason) needs to add nullable support.
https://github.com/flutter-webrtc/dart-sip-ua/blob/master/lib/src/transactions/invite_client.dart#L115
void cancel(String reason) {

to
void cancel(String? reason) {

Thanks for checking it out @cloudwebrtc!
I went in and modified invite_client in my pub-cache and it didn't seem to fix it, I was still getting the same error, tried all the various ways of restart/ flutter cleaning, so i went digging a bit.
It looks like there's another cancel function inside sip_message, found at
https://github.com/flutter-webrtc/dart-sip-ua/blob/5758d2f65bf4ce823bab2fe4ecc38070c7003a8c/lib/src/sip_message.dart#L313
Adding the nullable support to that function, as well as the invite_client.dart function you provided at
https://github.com/flutter-webrtc/dart-sip-ua/blob/5758d2f65bf4ce823bab2fe4ecc38070c7003a8c/lib/src/transactions/invite_client.dart#L115
fixes the error. It had to be both functions during my testing, just one or the other wouldn't resolve the issue.

You are right, these two functions are related and should need to be modified at the same time.

hi, i have same problem is this fixed?

Same Issue. Hangup is not working for incoming (not yet answered) calls.

@cloudwebrtc
can you please create a new release version with this fix?


Zod ext error

Deno 1.40.4

I found that this problem also occurs when I use "npm:zod"

For me when I tried this I only got the issue when importing zod from deno.land/x, not when using npm:zod. I'm also on Deno 1.40.4. I think this is very likely due to the Deno extension/linter not being updated for jsr imports yet. One of the maintainers mentioned in the Discord that it would take them a few days to get it working.

Thank you for answering my question. I will close this issue when the problem is solved😊

I can confirm it seems to be fixed using the npm:zod package with latest deno update ;)

Yes, this issue can now be fixed using npm:zod 👌


Bluetooth: Host: Add API to clean BT settings

See commits message.
Fixes https://github.com/zephyrproject-rtos/zephyr/issues/55475.

Shouldn't the Bluetooth subsystem do this automatically upon init? Introducing an explicit public API creates the need for applications to figure out when to call it, not to mention that the inconsistency in storage might not be the application's fault at all. It also seems arbitrary to leave mesh  of the scope. What's the solution for inconsistent storage for mesh, or for non-Bluetooth related data for that matter?

Shouldn't the Bluetooth subsystem do this automatically upon init? Introducing an explicit public API creates the need for applications to figure out when to call it, not to mention that the inconsistency in storage might not be the application's fault at all. It also seems arbitrary to leave mesh of the scope. What's the solution for inconsistent storage for mesh, or for non-Bluetooth related data for that matter?

The problem might be that this will take too much time - writing to flash - at an infortunate time. That's why we thought it'd be better for the app to decide when to do GC.

It also seems arbitrary to leave mesh of the scope. What's the solution for inconsistent storage for mesh, or for non-Bluetooth related data for that matter?

I discussed it with @PavelVPV, they might do it differently with their own settings layer.

The test fails if I add these:
	settings_save_one("bt/irk", &dummy_value, sizeof(dummy_value));
	settings_save_one("bt/irk/", &dummy_value, sizeof(dummy_value));
	settings_save_one("bt/irk/foo", &dummy_value, sizeof(dummy_value));

Should this be handled?


fatal error: unexpected signal during runtime execution

Hi guys,
It's me again. Seems that #36 was fixed, because I was able to use 0.1.1 for several days without any issues, but today during "terragrunt plan" it crashed:
https://gist.github.com/antonbabenko/9eae6e5ded37633307d78894e1b6c833
Rerun fixes the problem and I continue.
Any ideas ?

Wow, this one is even weirder!
The stack trace is from this line in Terragrunt:
bytes, err := ioutil.ReadFile(configPath)

The docs for ReadFile don't mention any possibility of a panic. Digging further into the stack trace, it turns out the error is in the call to make in the readAll method of ioutil.go:
buf := bytes.NewBuffer(make([]byte, 0, capacity))

In other words, it's failing to allocate memory. Is it possible you were out of memory on your computer?
Other than that, it just seems like a bug in Go itself...

It is rather unlikely that my mac was out of memory that moment, but I will keep using it and see if problem persists.

@antonbabenko I did notice you had a /home/ubuntu path, but you say you're on a mac. Are your running terragrunt inside a container? Or in a VM?
Josh

Yeah, this is strange. I run it without container, no VM. Just downloaded release and placed it as /usr/local/bin/terragrunt

New fatal - https://gist.github.com/antonbabenko/4b1dff65695fb73065f090c71929bfc3
I am not sure if it is related, but last time I was running "apply" command 12 hours ago and it worked, but today it didn't work from the first attempt, but rerun worked as expected.
Also, does anyone know why there is /home/ubuntu in the error? I always use Mac OS.

We cross-compile all the binaries on CircleCI. That /home/ubuntu path most likely gets baked in from the CircleCI servers, somehow. I'm guessing it's just a red herring: i.e. those paths are baked into the binary to make reading stack traces easier, but the paths themselves aren't actually used, since you're not running the code from those source files anyway.

I'm having a similar problem actually. https://gist.github.com/cultavix/bcbda8d985e1618397df0678b2430757
I am using Terragrunt v0.1.1, so I will update and let you know if it still happens.

Hm, I'm stumped. What OS are you on?

Ok, now I've gotten this, too. Here's my output:
josh@Joshs-MacBook-Pro /r/g/d/i/m/vpc> terragrunt apply
[terragrunt] 2016/11/04 15:50:33 Remote state is already configured for backend s3
[terragrunt] 2016/11/04 15:50:33 Attempting to acquire lock for state file vpc-mgmt in DynamoDB
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0xb01dfacedebac1e pc=0xef1b]

runtime stack:
runtime.throw(0x72dfe0, 0x2a)
	/usr/local/go/src/runtime/panic.go:547 +0x90
runtime.sigpanic()
	/usr/local/go/src/runtime/sigpanic_unix.go:12 +0x5a
runtime.unlock(0x9b1560)
	/usr/local/go/src/runtime/lock_sema.go:107 +0x14b
runtime.(*mheap).alloc_m(0x9b1560, 0x20, 0x100000000, 0xb85208)
	/usr/local/go/src/runtime/mheap.go:492 +0x314
runtime.(*mheap).alloc.func1()
	/usr/local/go/src/runtime/mheap.go:502 +0x41
runtime.systemstack(0xc82005fee0)
	/usr/local/go/src/runtime/asm_amd64.s:307 +0xab
runtime.(*mheap).alloc(0x9b1560, 0x20, 0x10100000000, 0x20)
	/usr/local/go/src/runtime/mheap.go:503 +0x63
runtime.largeAlloc(0x3fe00, 0xc800000001, 0xc82002d4e8)
	/usr/local/go/src/runtime/malloc.go:766 +0xb3
runtime.mallocgc.func3()
	/usr/local/go/src/runtime/malloc.go:664 +0x33
runtime.systemstack(0xc82001b500)
	/usr/local/go/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
	/usr/local/go/src/runtime/proc.go:1051

goroutine 12 [running]:
runtime.systemstack_switch()
	/usr/local/go/src/runtime/asm_amd64.s:245 fp=0xc82002d380 sp=0xc82002d378
runtime.mallocgc(0x3fe00, 0x497d40, 0xc800000001, 0x3e00)
	/usr/local/go/src/runtime/malloc.go:665 +0x9eb fp=0xc82002d458 sp=0xc82002d380
runtime.newarray(0x497d40, 0x3fe00, 0xc82002d4f8)
	/usr/local/go/src/runtime/malloc.go:798 +0xc9 fp=0xc82002d498 sp=0xc82002d458
runtime.makeslice(0x486ae0, 0x3fe00, 0x3fe00, 0x0, 0x0, 0x0)
	/usr/local/go/src/runtime/slice.go:32 +0x165 fp=0xc82002d4e8 sp=0xc82002d498
bytes.makeSlice(0x3fe00, 0x0, 0x0, 0x0)
	/usr/local/go/src/bytes/buffer.go:198 +0x64 fp=0xc82002d538 sp=0xc82002d4e8
bytes.(*Buffer).ReadFrom(0xc82010b030, 0xb09b60, 0xc82002e1f0, 0x1fe00, 0x0, 0x0)
	/usr/local/go/src/bytes/buffer.go:170 +0xd3 fp=0xc82002d5e8 sp=0xc82002d538
io.copyBuffer(0xb0b588, 0xc82010b030, 0xb09b60, 0xc82002e1f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/io/io.go:374 +0x180 fp=0xc82002d6a8 sp=0xc82002d5e8
io.Copy(0xb0b588, 0xc82010b030, 0xb09b60, 0xc82002e1f0, 0x34e54c, 0x0, 0x0)
	/usr/local/go/src/io/io.go:350 +0x64 fp=0xc82002d700 sp=0xc82002d6a8
os/exec.(*Cmd).writerDescriptor.func1(0x0, 0x0)
	/usr/local/go/src/os/exec/exec.go:236 +0x8b fp=0xc82002d780 sp=0xc82002d700
os/exec.(*Cmd).Start.func1(0xc82014f400, 0xc820199160)
	/usr/local/go/src/os/exec/exec.go:344 +0x1d fp=0xc82002d7b0 sp=0xc82002d780
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc82002d7b8 sp=0xc82002d7b0
created by os/exec.(*Cmd).Start
	/usr/local/go/src/os/exec/exec.go:345 +0x967

goroutine 1 [select]:
net/http.(*Transport).getConn(0xc8200cc000, 0xc8200ce380, 0x0, 0xc820134e10, 0x5, 0xc8201359e0, 0x24, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/transport.go:711 +0x4ef
net/http.(*Transport).RoundTrip(0xc8200cc000, 0xc8200ce380, 0xc8200cc000, 0x0, 0x0)
	/usr/local/go/src/net/http/transport.go:311 +0x7e9
net/http.send(0xc8200ce380, 0xb09528, 0xc8200cc000, 0x0, 0x0, 0x0, 0xc8201358f0, 0x0, 0x0)
	/usr/local/go/src/net/http/client.go:260 +0x6b7
net/http.(*Client).send(0x9abe00, 0xc8200ce380, 0x0, 0x0, 0x0, 0x6b, 0x0, 0x0)
	/usr/local/go/src/net/http/client.go:155 +0x185
net/http.(*Client).doFollowingRedirects(0x9abe00, 0xc8200ce380, 0x780bf8, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/client.go:475 +0x8a4
net/http.(*Client).Do(0x9abe00, 0xc8200ce380, 0x6730e0, 0x0, 0x0)
	/usr/local/go/src/net/http/client.go:191 +0x1e4
github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/corehandlers.glob.func2(0xc820144000)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go:73 +0x55
github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc820144168, 0xc820144000)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go:136 +0xc3
github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc820144000, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/aws/request/request.go:271 +0x560
github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/service/dynamodb.(*DynamoDB).DescribeTable(0xc82002e188, 0xc82002e190, 0x9c9480, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/aws/aws-sdk-go/service/dynamodb/api.go:438 +0x4f
github.com/gruntwork-io/terragrunt/dynamodb.lockTableExistsAndIsActive(0x6dd830, 0x10, 0xc82002e188, 0xc82008ac60, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/dynamodb/dynamo_lock_table.go:30 +0xb9
github.com/gruntwork-io/terragrunt/dynamodb.createLockTableIfNecessary(0x6dd830, 0x10, 0xc82002e188, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/dynamodb/dynamo_lock_table.go:15 +0x5c
github.com/gruntwork-io/terragrunt/dynamodb.DynamoDbLock.AcquireLock(0xc820017901, 0x8, 0x681fe0, 0x9, 0x6dd830, 0x10, 0x168, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/dynamodb/dynamo_lock.go:55 +0x192
github.com/gruntwork-io/terragrunt/dynamodb.(*DynamoDbLock).AcquireLock(0xc820011580, 0x0, 0x0)
	<autogenerated>:1 +0xa4
github.com/gruntwork-io/terragrunt/locks.WithLock(0xb09dd0, 0xc820011580, 0xc8201074c8, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/locks/lock.go:24 +0x55
github.com/gruntwork-io/terragrunt/cli.runTerraformCommandWithLock(0xc820012dc0, 0xb09dd0, 0xc820011580, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:153 +0x1a0
github.com/gruntwork-io/terragrunt/cli.runApp(0xc820012dc0, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:92 +0x28f
reflect.Value.call(0x4c97c0, 0x780608, 0x13, 0x6691f0, 0x4, 0xc820107b70, 0x1, 0x1, 0x0, 0x0, ...)
	/usr/local/go/src/reflect/value.go:435 +0x120d
reflect.Value.Call(0x4c97c0, 0x780608, 0x13, 0xc820107b70, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/go/src/reflect/value.go:303 +0xb1
github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli.HandleAction(0x4c97c0, 0x780608, 0xc820012dc0, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:480 +0x2ee
github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli.(*App).Run(0xc820000f00, 0xc82000a1e0, 0x2, 0x2, 0x0, 0x0)
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:241 +0xb05
main.main()
	/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/main.go:19 +0x8e

goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
	/usr/local/go/src/runtime/sigqueue.go:116 +0x132
os/signal.loop()
	/usr/local/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
	/usr/local/go/src/os/signal/signal_unix.go:28 +0x37

goroutine 6 [chan receive]:
net/http.(*Transport).dialConn(0xc8200cc000, 0x0, 0xc820134e10, 0x5, 0xc8201359e0, 0x24, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/transport.go:834 +0x9c2
net/http.(*Transport).getConn.func4(0xc8200cc000, 0x0, 0xc820134e10, 0x5, 0xc8201359e0, 0x24, 0xc820069c20)
	/usr/local/go/src/net/http/transport.go:706 +0x66
created by net/http.(*Transport).getConn
	/usr/local/go/src/net/http/transport.go:708 +0x262

goroutine 11 [syscall]:
syscall.Syscall6(0x7, 0x3fc6, 0xc820102d04, 0x0, 0xc8200973b0, 0x0, 0x0, 0xc820102ce0, 0x51600, 0xc820102cd8)
	/usr/local/go/src/syscall/asm_darwin_amd64.s:41 +0x5
syscall.wait4(0x3fc6, 0xc820102d04, 0x0, 0xc8200973b0, 0x90, 0x0, 0x0)
	/usr/local/go/src/syscall/zsyscall_darwin_amd64.go:34 +0x7f
syscall.Wait4(0x3fc6, 0xc820102d4c, 0x0, 0xc8200973b0, 0xc82002e210, 0x0, 0x0)
	/usr/local/go/src/syscall/syscall_bsd.go:129 +0x55
os.(*Process).wait(0xc820199440, 0x1e, 0x0, 0x0)
	/usr/local/go/src/os/exec_unix.go:22 +0x105
os.(*Process).Wait(0xc820199440, 0x0, 0x0, 0x0)
	/usr/local/go/src/os/doc.go:49 +0x2d
os/exec.(*Cmd).Wait(0xc82014f400, 0x0, 0x0)
	/usr/local/go/src/os/exec/exec.go:396 +0x211
os/exec.(*Cmd).Run(0xc82014f400, 0x0, 0x0)
	/usr/local/go/src/os/exec/exec.go:262 +0x64
os/exec.(*Cmd).Output(0xc82014f400, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/os/exec/exec.go:432 +0x26c
crypto/x509.execSecurityRoots(0x8e725, 0x0, 0x0)
	/usr/local/go/src/crypto/x509/root_darwin.go:17 +0xe9
crypto/x509.initSystemRoots()
	/usr/local/go/src/crypto/x509/root_nocgo_darwin.go:10 +0x18
sync.(*Once).Do(0x9c94f8, 0x780400)
	/usr/local/go/src/sync/once.go:44 +0xe4
crypto/x509.systemRootsPool(0x0)
	/usr/local/go/src/crypto/x509/root.go:15 +0x2f
crypto/x509.(*Certificate).Verify(0xc820132480, 0xc8201359e0, 0x20, 0xc82018a8d0, 0x0, 0xecfaf07b9, 0x2e88cf0b, 0x9abf60, 0x0, 0x0, ...)
	/usr/local/go/src/crypto/x509/verify.go:241 +0x1de
crypto/tls.(*clientHandshakeState).doFullHandshake(0xc820103e48, 0x0, 0x0)
	/usr/local/go/src/crypto/tls/handshake_client.go:278 +0x6e9
crypto/tls.(*Conn).clientHandshake(0xc82018c000, 0x0, 0x0)
	/usr/local/go/src/crypto/tls/handshake_client.go:213 +0x1737
crypto/tls.(*Conn).Handshake(0xc82018c000, 0x0, 0x0)
	/usr/local/go/src/crypto/tls/conn.go:1033 +0xec
net/http.(*Transport).dialConn.func3(0xc82018c000, 0xc820150240, 0xc820160060)
	/usr/local/go/src/net/http/transport.go:828 +0x21
created by net/http.(*Transport).dialConn
	/usr/local/go/src/net/http/transport.go:833 +0x986

goroutine 13 [syscall]:
syscall.Syscall(0x3, 0x9, 0xc8201a4000, 0x8000, 0xb85000, 0x0, 0x1ea00000000)
	/usr/local/go/src/syscall/asm_darwin_amd64.s:16 +0x5
syscall.read(0x9, 0xc8201a4000, 0x8000, 0x8000, 0x5d7368, 0x0, 0x0)
	/usr/local/go/src/syscall/zsyscall_darwin_amd64.go:972 +0x5f
syscall.Read(0x9, 0xc8201a4000, 0x8000, 0x8000, 0xc8201a4000, 0x0, 0x0)
	/usr/local/go/src/syscall/syscall_unix.go:161 +0x4d
os.(*File).read(0xc82002e208, 0xc8201a4000, 0x8000, 0x8000, 0x1, 0x0, 0x0)
	/usr/local/go/src/os/file_unix.go:228 +0x75
os.(*File).Read(0xc82002e208, 0xc8201a4000, 0x8000, 0x8000, 0x8000, 0x0, 0x0)
	/usr/local/go/src/os/file.go:95 +0x8a
io.copyBuffer(0xb0b5b0, 0xc820196780, 0xb09b60, 0xc82002e208, 0xc8201a4000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
	/usr/local/go/src/io/io.go:380 +0x247
io.Copy(0xb0b5b0, 0xc820196780, 0xb09b60, 0xc82002e208, 0x0, 0x0, 0x0)
	/usr/local/go/src/io/io.go:350 +0x64
os/exec.(*Cmd).writerDescriptor.func1(0x0, 0x0)
	/usr/local/go/src/os/exec/exec.go:236 +0x8b
os/exec.(*Cmd).Start.func1(0xc82014f400, 0xc8201991e0)
	/usr/local/go/src/os/exec/exec.go:344 +0x1d
created by os/exec.(*Cmd).Start
	/usr/local/go/src/os/exec/exec.go:345 +0x967

I do notice that it happens intermittently and that if I run terragrunt apply again, the issue is resolved. I'm still not sure why this is happening, though.

I'm getting this everytime I run terragrunt now, after upgrading to 0.3.0.
https://gist.github.com/cultavix/18a1e11abf6c6a52a00a33c02a504f64
OS: Linux (16.04 Xubuntu), Linux (14.10 Ubuntu Server) and macOS (latest)

@cultavix Does that happen for every Terragrunt command (e.g. terragrunt plan, terragrunt apply, etc)? Could you share your .terragrunt file? Is the terraform executable still in your PATH?
I just ran v0.3.0 on my own (OS X) computer and didn't get an issue...

@brikis98 ok, so it's a fairly detailed answer..
`.terragrunt. file:
 cat <<EOF > .terragrunt
lock = {
  backend = "dynamodb"
  config {
    state_file_id = "${TF_VAR_remote_states_bucket}_${terraform_state_key}"
    aws_region = "${TF_VAR_remote_states_region}"
    table_name = "terragrunt_locks"
  }
}

remote_state = {
  backend = "s3"
  config {
    encrypt = "true"
    bucket = "${TF_VAR_remote_states_bucket}"
    key = "${terraform_state_key}"
    region = "${TF_VAR_remote_states_region}"
  }
}
EOF

As for running it, it's embedded into a script which does a number of things to organise our terraform code/infrastructure. But essentially, like this:
    $refresh \
    $destroy \
    -input=false \
    $detailed_exitcode \
    $infrastructure_layer_var_file \
    $region_infrastructure_layer_var_file \
    $arguments \
    $LAYER_WORK_DIR

@cultavix Terragrunt does not support interpolation (${...}) or env vars at the moment, so the .terragrunt file you have will not work. I'm working on adding basic support for interpolation now for #26.
I'm still not sure why you got such a weird error though, so that's something we should fix.

@cultavix @brikis98 - All ${TF_VAR_*} are replaced, so that produced file .terragrunt does not have any interpolation.

Who replaces the TF_VAR values? Terraform does that for .tf files, but nothing is doing that for .terragrunt...

Yes, I know. We replace those when we create .terragrunt file ( @cultavix copied source code from shell script instead of produced file, which exists before calling terragrunt). Here is the complete file:
lock = {
  backend = "dynamodb"
  config {
    state_file_id = "tf-states-dev_us-west-2_layer"
    aws_region = "eu-west-1"
    table_name = "terragrunt_locks"
  }
}

remote_state = {
  backend = "s3"
  config {
    encrypt = "true"
    bucket = "tf-states-dev"
    key = "us-west-2_layer"
    region = "eu-west-1"
  }
}

Ah, I see. So if you take that static file, put it into /tmp/.terragrunt, and run terragrunt apply with v0.3.0, you get a crash every time?

It works fine, it just gives you that error :)

It works fine, it just gives you that error

Sorry, I'm still confused :)
So if you run terragrunt plan on that completely static file that @antonbabenko pasted above, the command succeeds (i.e. shows you a plan), but also shows you an error message?

Let me assume, it fails with an error message at first run and then it works on second run. Same as I have been experiencing and reporting before.
My assumption is based on the fact that I have been working on the same project with @cultavix and we talked about it multiple times.
PS: I am using hub, which is also written in Go (source repo) and there I have similar weird crashes once every 2-3 days. Maybe there is something wrong with my/our installation of Go and/or brew on the Mac? Not sure how to investigate even.

@antonbabenko It could be environmental or even an issue with Go itself. That said, @cultavix earlier said:

I'm getting this everytime I run terragrunt now, after upgrading to 0.3.0.

Which doesn't sound like the intermittent issue you're experience...

You are right, I have missed word "everytime".

New crash.log from me https://gist.github.com/antonbabenko/ec2e1873ed4b7d50a27586e278018013

I posted a question on the go-nuts mailing list asking for help: https://groups.google.com/d/msg/golang-nuts/4OJz3jprF84/c8BdI0bkCwAJ

OK, it looks like the most likely explanation for this issue is that our CI job was building binaries with Go 1.6.x, and apparently, those binaries will not work with the latest version of OS X. I'm not on the latest OS X yet, which explains why I haven't seen these crashes!
We just updated the CI job to use Go 1.7.3. I've cut a new release and the binaries for it should be there in a few minutes: https://github.com/gruntwork-io/terragrunt/releases/tag/v0.7.0. Please try it out and let me know if it works better for you!

Great! I will be able to try this in couple weeks only.

Thanks, I'll update/test tomorrow :)


[Issue]: using .save instead of .create and .update is triggering @BeforeInsert and @AfterInsert subscriber

Hello once again, as always, thank you for the amazing work and swift response!
After some digging around, i found out that typeorm .save method going to always trigger the @BeforeInsert @AfterInsert hooks, so i was wondering if you can modify the crud.service to use .create and .update methods respectively.
If you guys see this modification fits the repo, i can submit a PR

Hi, @chihabhajji
That's the intended behavior.
Whenever an entity changes, @BeforeInsert @AfterInsert should be triggered.

id like to disagree because by convention AfterCreate semnatically means after creating a new entity that didnt exist, and AfterUpdate means post updating an existing entity, think about seperating logic for creating a slug once that shouldnt change since it will be used as id, and update a user password using password both on BeforeCreate and BeforeUpdate.
If you guys still think that is the intended behavior, can i get a suggestion for seperating listeners

hi, @chihabhajji
I understood that you have services implemented through listeners, and that the crud library expects these listeners not to be triggered. Is right?
There is options for listeners and subscribers in saveOptions. link
I can add new option(listeners?: boolean)' by method in the 'decorator' to make it controllable, what do you think?
e.g)
@Crud({
    entity: TestEntity,
    routes: { [Method.DELETE]: { listeners: false } },
})

https://github.com/woowabros/nestjs-library-crud/pull/448

thank you ^^


Manage models through code

Motivation
Why is this feature required? What problems does it solve?
Managing the same models across multiple projects can become cumbersome utilizing the Kontent UI Dashboard. For example if I wanted to have a "Image" model that I will use for 3 projects I need to go into those 3 projects individually and add all the same fields 3 times. The data-ops tool somewhat solves this issue by having a JSON representation of models in code you can use. The problem I have is that using JSON to construct models is error prone to typos or missing required fields.
Proposed solution
An ideal solution for the above problems.
I would love to see some sort of typescript library that can be used to manage your content model through code. This way i could easily just copy the code snippets for the models between different codebases and bootstrap kontent projects very quickly. My models would also be tracked through source control and i would get autocompletion when creating fields.
export const ImageModel = Kontent.model({
    image: Kontent.media().allowedTypes(['jpg', 'png']).required(),
    caption: Kontent.richText(),
    alt: Kontent.text().required(),
    width: Kontent.number().required(),
    height: Kontent.number().required(),
})

export const PostModel = Kontent.model({
    title: Kontent.text().default('This is a Post title').required(),
    description: Kontent.richText(),
    completed: Kontent.multipleChoice(['true','false']).default('true').required()
})

Additional context
Add any other context, screenshots, or reference links about the feature request here.
Some inspiration came from using popular ORM libraries like Prisma, Drizzle.
Also some inspiration from AWS Amplify https://docs.amplify.aws/react/build-a-backend/data/set-up-data/

Hey @joshpalmeroc, thank you for your issue.
We were also exploring the idea of a "Model as Code" approach and may incorporate it in the future. However, we chose the JSON structure for now, as it is better documented and thoroughly explained in our Learn Portal.
On the other side, we have exposed the types that are used by sync functionality (on lines 14-24). You can use those types to create a transformer that converts code into the folder structure with JSON files required by the sync function. For instance, you could define objects for the model using those types and then implement a function that serializes these objects into JSON and generates the corresponding files. While this approach might not directly resolve the issue between the codebases, it could be a workable solution with some creative adjustments.
Regarding the library request, I might propose it for prioritization in the new year. However, I can't guarantee that it will be a priority at this time. :/

Thanks for the reply back! Ill take a look at using this transformer approach you mentioned. I look forward to future improvements.


Unclear on what to do when oauthRedirectMethod is web

I am testing external OAuth provider Adobe ID and I'm getting to step 6 and the oauthRedirectMethod is "web".  How do I proceed using this method, not deeplink?
Here are more details about my problem: https://stackoverflow.com/questions/75304660/why-isnt-app-initailzation-working-in-my-teams-add-in-oauth-flow
[Enter feedback here]

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

ID: b608448b-3dd7-d5be-128c-da2859067140
Version Independent ID: b608448b-3dd7-d5be-128c-da2859067140
Content: Use external OAuth providers - Teams
Content Source: msteams-platform/tabs/how-to/authentication/auth-oauth-provider.md
Service: msteams
GitHub Login: @surbhigupta
Microsoft Alias: lajanuar

@mscherotter - As mentioned in Step-8, Teams calls the success callback and sends the result (auth code) to the 3P app. The 3P app receives the code in the success callback and use the code to retrieve the token, then the user information and update the user interface.
Please refer this: https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/9256085cd1ddea0f9234b3409143b2b7e340ad96/samples/account-linking/csharp/Source/wwwroot/authEnd.js#L16

Do you have a full sample that shows how to authenticate when oauthRedirectMethod is web?
the problem that I am having is that the app.initialize() function times out without connecting to teams so I cannot notify of success.

@mscherotter - For now this is what's available.
https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/9256085cd1ddea0f9234b3409143b2b7e340ad96/samples/account-linking

When I use Teams on the web via team.microsoft.com,
I use the app.authenticate() to authenticate against my site at /teams/login.
I find that the {oauthRedirectMethod} is replaces with "web" when I get the request on my server but the {authId} is not replaced it stays "{authId}"
When I use the Windows Teams desktop app for the same add-in neither the {oauthRedirectMethod} or {authId} are replaced.
Please advise.  Here is my exact code
Thanks,
Michael
        const parameters: authentication.AuthenticatePopUpParameters = {             url:${window.location.origin}/teams/login?oauthRedirectMethod={oauthRedirectMethod}&authId={authId}`,
isExternal: true
};
    const result = await authentication.authenticate(parameters);

`

@mscherotter - Could you please share the sample you are referring to?


Modernize tim1_complementary_outputs example

I realized that there were now Arduino-style #defines for the PINs. This commit changes the pin initialization in my example to use them.

Wonderful!


Update overview.md

Update to note exclusion of SQL FCI as per PG update on IcM 336227961.

Docs Build status updates of commit b5c0ab4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/sql-server/azure-arc/overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@anosov1960
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

#sign-off

#sign-off

#sign-off


When the player is rotated 90 degrees, the control flashes

中文用户请注意：请尽量用英文描述你的 issue，这样能够让尽可能多的人帮到你。
If you want to report a bug, please provide the following information:

The steps to reproduce.
A minimal demo of the problem via https://jsfiddle.net or http://codepen.io/pen if possible.
Which versions of DPlayer, and which browser / OS are affected by this issue?

It cannot be rotated


Add useDebugValue to show the data label in the React DevTools

close #574
With this PR, it will look like this in the React DevTools:

I'm not sure if we need to show undefined when the data is not returned as expected? like this:

Thank you for working on this! I think it's fine to show "undefined" there when the data is not ready or errored.


AJ-769: activity logging

Enables activity logging for all write operations, as part of control M1 for production readiness. I end up with log entries like this:
2023-05-17 15:25:31,925 INFO  [a50716bb-eb7b-4003-b571-26ee004d52cf] org.databiosphere.workspacedataservice.activitylog.ActivityLogger: user<PHONE_NUMBER>45703434599 created 1 instance(s) with id(s) [b0a945bd-a737-4017-a519-786392023a0d]
2023-05-17 15:25:58,307 INFO  [eee6fd6f-b108-4db9-8844-b8ae0b92ba83] org.databiosphere.workspacedataservice.activitylog.ActivityLogger: user<PHONE_NUMBER>45703434599 created 1 record(s) of type mytype with id(s) [123]
2023-05-17 15:26:05,042 INFO  [db12c397-3b56-412c-8846-6670f3358970] org.databiosphere.workspacedataservice.activitylog.ActivityLogger: user<PHONE_NUMBER>45703434599 deleted 1 record(s) of type mytype with id(s) [123]

The implementation in this PR is a bit extra and over-designed. I am looking ahead to a time when we are also saving activity log entries to a db and eventually expose them to end users, so end users can see the history/provenance of their data. It's overkill for now, when all we need is log entries.
Additional changes in this PR:

Changed logging such that responses from Sam aren't logged unless we turn on trace-level logging. Sam responses can and do contain user email addresses, and we don't want to log those.
Updated SamDaos to include the call to resolve a token to a userid
Added a cache for resolving tokens to Sam userids, so we're not continually pinging Sam for this info.
Moved the snapshot-import implementation out of DataRepoController and into a new DataRepoService, because this matches the design for our other controllers.

ATTENTION REVIEWER: I suggest reviewing this "top down" - that is, read the unit tests in LogStatementTest as a specification of what this code is supposed to do; then read the changes in InstanceService, DataRepoService, and RecordOrchestratorService to see how methods add entries to the activity log; then, read the files in the org.databiosphere.workspacedataservice.activitylog package and the Sam changes to see how it's all implemented under the covers.

I am curious why we need to have the user id in the log statements vs just tracking the workspace id for activities that are happening in those workspaces and generalizing the users? since the user id is not human readable at this time (i.e. I cant easily associate it with me doing the action) - or is it expected that users can translate user id to actual username if they do need to? Basically seems like having that layer for logging is overly complicated and I am unsure of the benefit of it.
otherwise LGTM!

@yuliadub

I am curious why we need to have the user id in the log statements vs just tracking the workspace id for activities that are happening in those workspaces and generalizing the users? since the user id is not human readable at this time (i.e. I cant easily associate it with me doing the action) - or is it expected that users can translate user id to actual username if they do need to? Basically seems like having that layer for logging is overly complicated and I am unsure of the benefit of it.

For AJ-769, the purpose of this logging is to assist US - or other admins/auditors. In the event of a hack or security breach, we want audit logs that track all the writes, so we can see who did what. If we find anything suspicious, WE can take that Sam user id and correlate it back to a human identity. The extra layer of indirection - logging the userid instead of an email address - means we aren't logging PII (because email addresses count as PII), and that relieves oversight burden.
If/when we decide to expose these activity logs to end users, we'll definitely want to reconsider showing userids vs. email addresses.


expose setting kademlia replication factor through node CLI

What does it do?
Exposes setting Kademlia replication factor through node's CLI.
Why?
Default Kademlia replication factor is 20. In environments (testing for example) with less than 20 nodes AuthorityDiscovery fails to publish DHT records containing node's Multiaddrs. So to make AuthorityDiscovery work in test environments it's  useful to have option to manually adjust Kademlia replication factor.

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2996759

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2996877

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2999450


[solidjs] How to use createResource or createAsync to load default values

Hi all!
as the title says, is it possible to "watch" createResource/createAsync to load initial values of the form in an async way?
Relying on createEffect to set them using setValues surely works, but for example, in a solid start application interferes with the form submission, firing before the actual form is submitted.
Thanks in advance!

I think in this case the best thing to do is to use createEffect with our reset method. https://modularforms.dev/solid/api/reset

Brilliant. It works.
Its a bit counterintuitive to use reset to load data, but nothing a good comment could make it future proof.
Thanks Fabian!

In my mind, resetting just restore a previous state of the form. Data loading should define the initial state, until the next submit, which create a new state to rollback.
I've not digged through the code of your brilliant library, so I'm completely ignorant of the process behind: is it difficult to make the createForm's initiaValues signal aware? This would make compatible with both createAsync and createResource.

Thank you for your feedback and recommendation. I will think about it! I agree that it can improve the DX a lot in these cases.

Hey Fabian!
I've found a case when the reset way of filing the form does not work: when a FieldArray is present. It shows the correct number of elements, but no values in them.
I've tried to JSON.stringify the field property returned by the Field component:
this is the content passed with reset {"name":"variants.0.code","error":"","active":true,"touched":false,"dirty":false}
while this is what it pass when using setValues {"name":"variants.0.code","value":"CO400","error":"","active":true,"touched":true,"dirty":true}

I know, and I am sorry. This is a known bug. There should already be an open issue. I hope to find some time one day to fix such problems.

It probably will feel "more Solid" if the form options can be made reactive like createForm(()=>options).
 creates the node before the data is resolved, if options are not reactive, it'll be too late when the data is resolved.


[bug] planets spinning EXTREMELY fast

as title suggests just made new save spawn on planet spinning soo fast u can move and speed of planet spinning keep getting faster

screen ? seed ? config ?