Base Model: use transactions by default

We are using database transactions in a lot of places in Ghost already.
IMO the most important resources in Ghost are:

posts
users
tags

These are the reasons i can think of right now, why we should use transactions for add/update/delete by default:

a resource has relations, we need multiple queries for an update action (if one of those queries fails, we need to undo all queries, otherwise your database is in an inconsistent state)
with #9865, it will be possible that multiple clients write on the same resource (even on multiple api versions) (database locking)

We should ensure that the basic and most important actions are transactional.
NOTE: The update action for our Post Model is already transactional and makes use of the FOR UPDATE database feature.
IMO this feature should live in the base model.

[ ] double check the post model and figure out if we have to refactor anything before making this possible (i know that some implementations don't use the base model at all)
[ ] double check the tag model and figure out if we have to refactor anything before making this possible (i know that some implementations don't use the base model at all)
[ ] double check the user model and figure out if we have to refactor anything before making this possible (i know that some implementations don't use the base model at all)
[ ] transactional: edit
[ ] transactional: delete
[ ] transactional: add

I would like to work on this!

Is the end goal being able to do something like this?
From:
https://github.com/TryGhost/Ghost/blob/3d7b4dc0f52b4cd3c9f1cc9ece4d2ef781b2a001/core/test/integration/model/model_posts_spec.js#L419
            it('[failure] multiple edits in one transaction', function () {
                const options = _.cloneDeep(context),
                    data = {
                        status: 'published'
                    };

                return models.Post.edit(data, _.merge({id: testUtils.DataGenerator.Content.posts[3].id}, options))
                    .then(function ({transaction}) {
                        const optionsTwo = Object.assign({transaction}, options);
                        return models.Post.edit(data, _.merge({id: testUtils.DataGenerator.Content.posts[5].id}, optionsTwo));
                    })
                    .then(function () {
                        // force rollback
                        throw new Error();
                    })
                    .catch(function () {
                    // txn was rolled back
                    Object.keys(eventsTriggered).length.should.eql(0);
                });
            });

I'm not sure what you meant by "use transactions by default" in the base model.

So currently, the post model is the only model which runs database requests by default through a transaction. See reasoning on top.
Any model should use the base model for the main actions: edit, add, destroy.
Not all of the models use the base model currently - that's why the first tasks exist (see tasks on top). This needs solving first.
The base model should run any query through a transaction by default (for edit, add, destroy). If a transaction exists already (you pass a txn from outside, options.transacting), you skip, if not you create a transaction (see post model for reference)
I hope that helps - thanks for your time & help :) If you have any further questions, don't hesitate to ask 👍

@kirrg001

The base model should run any query through a transaction by default (for edit, add, destroy). If a transaction exists already (you pass a txn from outside, options.transacting), you skip, if not you create a transaction (see post model for reference)

I've done this here.
I'm not sure starting a transaction from the base model method would do anything, since you cannot pull the created options.transacting out of it, which means in the edit method of the post model still needs to create a transaction.
And there's only one database action inside the base edit method.

I'm not sure starting a transaction from the base model method would do anything, since you cannot pull the created options.transacting out of it, which means in the edit method of the post model still needs to create a transaction.

Could you expand this statement? I am not sure i understand what you mean :) Sorry for late response!


Vectorize node_type

node_type can be vectorized to achieve performance increases.

Requires update from @kieranricardo
High risk and a lower priority for landing v1.0 ?


As a content editor, I need to view and edit partial dates for borrowing events so that I can see and record whatever portion of the date is available when the exact date is not known.

Notes for testing
See comment from @thatbudakguy below: https://github.com/Princeton-CDH/mep-django/issues/87#issuecomment-384338557
Notes for development

Supported date formats will be: YYYY-MM-DD, YYYY-MM, YYYY; and --MM-DD for month/day with no year; see https://en.wikipedia.org/wiki/ISO_8601

Current thought is a single date entry field that requires one of these formats; internally we will store as a datetime field with a precision field documenting which portions of the date are known.

[x] Add validation to require one of these formats (possibly could adapt/refine existing date precision regex)

[x] Use partial date display format to populate edit form field

[x] Add logic to set precision properly when the form is submitted. We'll have to set a date value for no year; current logic is 1 for unknown month and day; perhaps stick with existing 1900 convention for the project?

[x] make sure logic works properly when clearing out an existing value

testing notes

when editing a borrowing event, try entering the following forms for a start and/or end date:

yyyy-mm-dd, e.g. 1934-02-07 (full precision)
yyyy-mm, e.g. 1934-02 (year and month only)
--mm-dd, e.g. --02-07 (month and day only - note the two initial dashes)
yyyy, e.g. 1924 (year only)

confirm that you can save your changes without error and that they "stick" (viewing the event again shows the changes).

when editing a borrowing event, try deleting the start and/or end date and leaving the box empty.

confirm that you can save your changes without error and that they "stick" (viewing the event again shows the changes).

when editing a borrowing event, try entering an incorrect start and/or end date:

yyyy--dd, e.g. 1934--07 (year and day)
mm or dd, e.g. 02 or 07 (month only or day only)
some gibberish text or random values

confirm that attempting to save the event triggers a validation error and highlights the date box to show you the problem. does the error message makes sense?

OK I seem to find that #1 doesn't work but #2 and #3 does. When I do #1 this happens:

@clmahoney the partial date support is currently only for borrowing events, but from your screenshot it looks like you are testing a subscription.

I've been playing around with the borrowing event dates, and it seems to be working well.  I was able to add a year-less date, and a day-less month and year, but not a year with a day.  Typing random garbage (or trying to get fancy, like "1929----03" for a year with a day) results in a "not a valid date" message.
Entering a day that isn't in a month, like 8-34, results in this different error message, which is equally clear though:

@clmahoney I think Nick's testing suggestions here are pretty good, you just need to be in the borrowing event editor instead of the subscription editor.  The borrowing event editor is at the bottom of the "library accounts" menu, do you have access?:

Yes this looks good!

Thanks for posting the screenshot - that's an uncaught error and won't actually be visible in production when we're not running in debug mode, so we need to fix it.  You should see an error message displayed on the form similar to the other validation error messages you saw.
@thatbudakguy would you add logic to catch the ValueError and raise a ValidationError?

Looks great!


Heterogeneous Vec (MixedVec)

As discussed with @jackkoenig, this implements the action items which fell out of our discussion in #844.
This PR creates a new HeterogeneousVec type inspired by rocket-chip's HeterogeneousBag or HetVec from dsptools. This is a dynamically indexable type like Vec but supports different underlying types - e.g. myVec(0) could return a UInt(8.W) while myVec(1) could return UInt(16.W), which is not supported by Vec, and as shown in #844 we cannot use the Seq alternative in Bundle construction as we can in Module construction.
Additionally, as discussed in #844, this PR also adds an (optionally-overridable) warning when public Seq[Data] members are present so that users can get a better error message than the current one. The ability to have non-Chisel Data Seqs are unaffected. (along with unit test demonstrating this)
As for the name, HVec is ambiguous (can be confused for Haskell HList or in VLSI can be confused for hierarchical) as noted in #844. HetVec is another option as noted in #844 as well but seems strange as a user (what is "Het"?). Another option that seems reasonable and short is MixedVec, which seems preferable.
For now the compromise is to make the class name HeterogeneousVec and add shorter aliases for HetVec and MixedVec. In addition, rocket-chip has been using the longer name HeterogeneousBag without much issue.

Type of change: bug report | feature request

Impact: API addition (no impact on existing code)

Development Phase:  implementation
Release Notes

Add a new dynamically indexable sequence like Vec that supports different underlying widths/types.

I think MixedVec is pretty clear :o
On Thu, Jul 12, 2018 at 3:19 PM, edwardcwang<EMAIL_ADDRESS>wrote:

@edwardcwang commented on this pull request.
In src/main/scala/chisel3/util/util.scala
https://github.com/freechipsproject/chisel3/pull/850#discussion_r202196339
:

@@ -11,5 +11,6 @@ package object util {
type ValidIO[+T <: Data] = chisel3.util.Valid[T]
val ValidIO = chisel3.util.Valid
val DecoupledIO = chisel3.util.Decoupled

val MixedVec = chisel3.util.HeterogeneousVec
val HetVec = chisel3.util.HeterogeneousVec

Sure. I'm personally partial to MixedVec. I agree with you that HVec is
overloaded and can be confusing, and HetVec still requires me as a user
to stop and think about what is a "Het".
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/freechipsproject/chisel3/pull/850#discussion_r202196339,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGTTFonLXf9Q3XgT0BwKF7DLM47K6T-Sks5uF8t1gaJpZM4VG2CS
.

@jackkoenig Renaming, removal of aliases, and comments all addressed.

TODO from meeting: Edward to add varargs API as well

Varargs API added and tested; will merge this PR as soon as the status checks pass.


Removes padded-blocks from .eslintrc

Also needs removed from the .eslintrc file itself. In the configurations folder.


Fix error reporting and infinite loops in util.decode

There are two deficiencies in our decoder.
The first is that we have not been checking the Charset decoder results.  When they are a character coding error, we need to raise that into the pull.  We have tried to size out buffers to avoid any chance of overflow, but we should also raise a bug in this case.
The second is that we are consing leftover bytes onto the stream instead of incoporating them into the next chunk.  When we have a valid, incomplete chunk, this sends us into an infinite loop, repeatedly attempting to decode the incomplete input.  We need to carry it over so it can be combined with the next chunk, or fed to the decoder as a final chunk.
Fixes #3453.

I think we can deprecate our way out of this in a way that doesn't throw willy nilly.


Figure out chromadb slowness issues

At some point after loading a certain number of sources simple metadata/peek operations start going incredibly slowly
Even curategpt collections list takes ~1m
This causes the UI to slow down too
I am pretty sure this is something in the chromadb layer, not something we are doing on top. In the metadata extraction

Will be fixed when we do #37


updated cloudfoundry-cli (6.10.0)

Closes #10024.

It does not seem to work on my Mac...
$ brew cask update
$ brew cask cleanup
$ brew cask doctor
$ brew cask install --upgrade cloudfoundry-cli

==> Caveats
Cask cloudfoundry-cli installs files under "/usr/local".  The presence of such
files can cause warnings when running "brew doctor", which is considered
to be a bug in homebrew-cask.

==> Downloading https://cli.run.pivotal.io/stable?release=macosx64&version=6.10.0&source=github-rel
######################################################################## 100.0%
==> Running installer for cloudfoundry-cli; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Error: pkg source file not found: '/opt/homebrew-cask/Caskroom/cloudfoundry-cli/6.10.0/installer-osx-amd64.pkg'

Should be fixed. Some notes, though:
$ brew cask cleanup
$ brew cask doctor

Those are not needed. --upgrade is also not a valid flag. We don’t yet have upgrade functionality (and when we do, it’ll probably just work without --.


incorrect model_max_length

I don't understand why the default model_max_length is set to 512, and the example training bash script on the main readme doesn't pass in an argument for that as 2048 (the context size for llama). What's going on here? Thanks.

Not sure if maybe this is in action:
"When the tokenizer is loaded with from_pretrained, this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)). no associated max_length can be found in max_model_input_sizes."
However, it seems odd that this happens and at the same time, the tokenizer in train.py is specified as:
tokenizer = transformers.LlamaTokenizer.from_pretrained(
model_args.model_name_or_path,
cache_dir=training_args.cache_dir,
model_max_length=training_args.model_max_length,
padding_side="right",
use_fast=False,
)
Specifically using traning_args.model_max_length not any model attribute.


[sw/dif] Flash_ctrl DIF, change word count check for erase operations

When doing an erase operation the transaction is setup to use a word_count of 0 as the erase does not read/write data to/from the FIFOs. The current code checks that word_count is not zero in "dif_flash_ctrl_start" and fails with kDifBadArg if that is the case.
Setting the word_count for the erase operation to >0 does not provide a solution as the subsequent call to "dif_flash_ctrl_end" never sees the count decrease to zero and will never end.
I propose a possible solution in "dif_flash_ctrl_start":
dif_flash_ctrl.c line 389
  const uint32_t max_word_count = FLASH_CTRL_CONTROL_NUM_MASK;
  if ((transaction.op != kDifFlashCtrlOpPageErase) &&
      (transaction.op != kDifFlashCtrlOpBankErase)) {
    if (transaction.word_count - 1 > max_word_count ||
        transaction.word_count == 0)
      return kDifBadArg;
  }

this checks if the operation is an erase and if so skips the word_count checks.
Does this seem like a good solution?

Yes, that behavior totally makes sense, and the solution you proposed is perfect. Thanks for finding the bug.
It looks like we don't describe how to do erase operations in the doc, so we might want to add that too

Actually, small tweak: We'd probably want to force word_count to be zero when the operation is an erase, so the check would have an "else" clause.


integrate json-server with express server

I'm trying to create a JSON-Server with express server where my entity models in JSON file.
any full example to help me with this?
// app.js file

var jsonServer = require('json-server');

// Returns an Express server
var server = jsonServer.create();

// Set default middlewares (logger, static, cors and no-cache)
server.use(jsonServer.defaults());

// Add custom routes
// server.get('/custom', function (req, res) { res.json({ msg: 'hello' }) })

// Returns an Express router
var router = jsonServer.router('db.json');

server.use(router);

server.listen(3000);

and running with
node app.js

Sure, here's how you can integrate it with Express:
var express = require('express');
var jsonServer = require('json-server');

var server = express();
// ...

// You may want to mount JSON Server on a specific end-point, for example /api
// Optiona,l except if you want to have JSON Server defaults
// server.use('/api', jsonServer.defaults());
server.use('/api', jsonServer.router('db.json'));

server.listen(3000);

Let me know if it helped.

this is awesome thanks :+1:

very useful, thks! :+1:

But how about to add a custom router file for json-server (routes.json) in express app, not using express native router definition? I saw the routes file can be only use in CLI, did I miss anything?

Hello @mytharcher ,
I met the similar situation, have you already resolved the issue and if yes, could you pls kindly tell how to do?
Any help is highly appreciated!
Best regards, Jason

@xeoshow It has been a so long time and I totally forgot that. I think I didn't find a solution for that. And I hardly use json-server for mocking now. Because in most of our projects we are practicing full-stack developing, then we forget the troubles for mocking.

@mytharcher Thanks so much as well!

If you what to see landing page from json-server
import express from 'express'
const app = express()

const db = genDB() // <- this is simple Object
app.use('/api', jsonServer.defaults(), jsonServer.router(db));

Suggest you tu use absolute path jsonServer.router(path.join(__dirname, 'db.json'))

this is awesome man thanks 👍

Im not able to deploy the code though. It works on localhost but not heroku. Any clue?

Hi, hope useful.
https://github.com/Leonardo-Ferreira-costa/fake-backend-full


Default props behavior changed between v3 and v4

The behavior of how defaultProps are handled has changed between s-c v3 and v4, I'm not exactly sure if this change was intentional but it was not apparent in the changelog, so that's why I'm filing it :).
Anyways, in v3 I could have a Text component with some default props such as the font. I could then create a Heading component which is based on Text but may provide some different default props. In v3, the following example works fine and both the Heading and Text components always have a default font prop. In v4 however, the defaultProps of the Heading overwrites all the default props of Text. If I don't define any defaultProps for Heading it seems to work fine.
const Text = styled.span`
  font-family: ${({ font }) => {
    if (!font) console.error('FONT PROP NOT FOUND!')
    return font
  }};
`

Text.defaultProps = {
  font: 'sans-serif'
}

const Heading = styled(Text)`
  display: block;
  font-size: 38px;
`

Heading.defaultProps = {}

Environment

npx envinfo --system --binaries --npmPackages styled-components,babel-plugin-styled-components --markdown --clipboard
N/A, see reproduction.
Reproduction

https://www.webpackbin.com/bins/-KeeZCr0xKfutOfOujxN
https://codesandbox.io/s/rkmNRByE4
The exact same demo in two different versions of Styled Components:
s-c v3, Heading and Text are both using sans-serif: https://codesandbox.io/s/6wmwk9l8kk
s-c v4, the font-family for Heading is undefined because the font prop is undefined: https://codesandbox.io/s/9jlw0zq5yo
Steps to reproduce
Expected Behavior
The Heading component should inherit the defaultProps from the Text component like it did in v3. I think in v3 the defaultProps would be merged?

Actual Behavior
The defaultProps of Heading overwrites the defaultProps of the Text component even though Heading is based on the Text component.

So I think what's happening here is we don't attempt to fold the defaultProps together. In v3 each styled component layer was actually rendered separately, whereas in v4 there is only 1 component rendered no matter how many styled override layers there might be.
I'm open to changing this, the only edge case would probably be style which has special handling rules. In general though, it's probably better to use attrs over defaultProps as those do get merged appropriately.

cc @styled-components/core

I'm also looking for a way to define attrs or defaults props that are overridable by the end user and/or a styled parent.
defaultProps nor attrs handle this case:
const Box = styled(X).attrs({
  display: 'block'
})``
// Here display is not overridable

const Box = styled(X).attrs({
  display: props => props.display || 'block'
})``
const Flex = styled(Box).attrs({
  display: props => props.display || 'flex'
})``
// Here it is, but Flex is display 'block' or props.display, it's never 'flex'.

You can see an example here: https://codesandbox.io/embed/ylz0jwq1v

I made more tests, dynamic attrs works as I would expect with 4.1.1 but doesn't with 4.1.2.
I used the .attrs(props => ({})) way this time.
Codesandbox demo (same code):

4.1.1
4.1.2

I guess this change was introduced by #2210
please don't mind my dynamic function, it transforms display: block into display: props.display || 'block'

It looks like this loop overrides anything you have in props with whatever was in attrs while evaluating the styles: https://github.com/styled-components/styled-components/blob/a41dfd0537f96b2a8572409382faedcdc936849e/src/models/StyledComponent.js#L212-L213
attrs does correctly behave like defaultProps but only for passing props down to the children; when evaluating the styles it's currently overriding props.

Do we have a path forward here? Default prop folding is important for me as well while using styled-system. Default props should work the same as props, only they're being defined at build time instead of runtime.

I've made a PR to close this issue https://github.com/styled-components/styled-components/pull/2260 and bring back defaultProps folding. I'm still waiting for feedback, but IMO it LGTM.
ps: They are not being defined at built time, even in React.

Haha I deleted it before I say your reply because I found your PR : )

Hey, the problem this issue broke us in production. :sob:  Unfortunately there is no warning to be found in the release notes or the README to warn future upgrade.
Anyhow is there anyway we can help to get #2260  merged?

@clentfort same for us in production :(
@probablyup & @oomathias #2260 has been stuck in review for several months, would you be able to revisit this please, and let us know if there's anyway we can help to move along?

@njsfield I'm also waiting. It's a sensitive merge and the core team is missing time to review these kinds of PR.
If any of you had the chance to test #2260, giving feedback would help.

Released in v4.3.0


Add to contributors

Added contributor page
Updated contributors and profile page to show content
Updated styles to reflect normal font style on pages

@shirishgoyal  thank you for the PR. Everything looks great!
At present the names are added in order new members update the file rather than alphabetical order. Could you make that small change in the home.html
Thank you!

@neilthemathguy thanks for the feedback. corrected the order now.


Module not found: Can’t resolve es.json/pt_BR.json

After upgrading our "create-volto-app" project to latest a19, we got an error:
><EMAIL_ADDRESS>> Module not found: Can’t resolve ‘../../../../locales/es.json’ in ‘/Users/timo/workspace/brh-internet/node_modules/@plone/volto/src’
><EMAIL_ADDRESS>> Module not found: Can’t resolve ‘../../../../locales/pt_BR.json’ in ‘/Users/timo/workspace/brh-internet/node_modules/@plone/volto/src’

We had to copy over those translation files from volto core to make it work. I guess @robgietema or @sneridagh can come up with a better solution. :)

@tisto @robgietema yeah, I know. In fact, those files should be empty like in: https://github.com/plone/volto-starter-kit/tree/master/locales
We should amend the i18n script to create them if missing.


how to use my own openai proxy?

Thank you for the author's contribution in creating such an excellent project. I would like to ask how I can replace OpenAI's API with my own OpenAI proxy?

In the config.tsx just update this key to your OpenAI Proxy
nonOllamaBaseURL: 'https://api.groq.com/openai/v1', //Groq: https://api.groq.com/openai/v1 // OpenAI: https://api.openai.com/v1


engage: use fetchFromGitLab and update URLs

Description of changes

Switches to fetchFromGitLab since that works now and updates URLs since the domain name changed. Doesn't actually affect the package itself.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 310494 run on x86_64-linux 1

1 package built:

engage


First effects draft

WIP
The checkbox is animating. However it seems that the keyframes animations
is not attached to the correct HTML element.
Description
This PR aims at improving the checkbox behaviours with the same animations that antd.
Screenshots
please add as many screenshots as deemed appropriate
Action Items

[x ] I have read the CONTRIBUTING doc
[ x] This PR is as small as it can be, and only implements one thing (not many)
[ ] I have manually tested my feature
[ ] I have written a "good" amount of tests (including visual and unit tests)

Hey @alexisdurieux,
Just wanted to check in here and see how you're doing.
I see that the PR still has the WIP heading, which is why I have refrained from really digging into it.
Are you looking for my feedback thus far? Let me know how I can help.

Hello, I started with this implementation but going further in the changes I refactored the HTML and the CSS. Right now I am struggling a bit with the CSS implementation.
I didn't have time to work on this for a few days but I will try this week-end.
In case I have strong issues with the CSS, I might push an intermediate commit to have your input.
Is that ok for you ?
Thanks !

In case I have strong issues with the CSS, I might push an intermediate commit to have your input.

Sounds good!
Also I would recommend that you rebase against my master branch since several large commits have been pushed.

Hey @supermacro. This is still a WIP but it shows the direction I am taking. I believe I will have time to get to the bottom of it before the end of next week.
If you want, let me know maybe if you have any remarks already so that I can take them into account.

Just to let you know that I am still planning to finish it ! Sorry for the delay !

Hey @alexisdurieux, no problem! Thanks for letting me know.

Hey @supermacro. I started fresh again on this issue. Holidays and end of the year have kept me busy. I probably underestimated the refactoring size. Any ideas on the animation shadow. I am trying to figure out how antd is performing it but I am having a hard time understanding all the CSS.
Thanks

Hey @supermacro. I started fresh again on this issue. Holidays and end of the year have kept me busy. I probably underestimated the refactoring size. Any ideas on the animation shadow. I am trying to figure out how antd is performing it but I am having a hard time understanding all the CSS.
Thanks

Hey @supermacro , I think my PR is good to go. Please let me know if I need to change anything !

Hey @alexisdurieux Sorry for the incredibly late reply. First of all, this is amazing! 😃
I did notice what seems to be a small regression:

Notice how the font is not the standard Antd font? Do you have any idea what might be causing this?


Property inline code block is wrong / invalid

Problem description
For resource property descriptions that have inline code blocks, the rendered code block is wrong / meaningless.
Example: https://www.pulumi.com/docs/reference/pkg/gcp/logging/projectsink/#inputs

This is true in the API-style documentation too - https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/gcp/logging/#ProjectSink-destination.

I can no longer repro this - I believe it has been fixed.


Add secp256k1

Implement EcdsaSecp256k1Signature2019, including for did:key
Implement EcdsaSecp256k1RecoveryMethod2020, including for did:tz:tz2
Added caip10 module for parsing the blockchainAccount property according to CAIP-10.
Changed type signature of jws::sign_bytes
Various fixes

Notes:

The added proof types and tz2 derivation have not been yet tested with external test cases.
Additional JSON-LD context is needed for EcdsaSecp256k1RecoveryMethod2020 proofs; this is added internally to the proof object now, until it can be added to the official context for that proof type: https://github.com/decentralized-identity/EcdsaSecp256k1RecoverySignature2020/pull/9
secp256k1 is optional via features and not enabled by default

Thanks for the review, @wyc

Bitcoin today largely has depreciated today anything except for the compressed form.


Node version required in this repo to be sunset

Has this been tested with a newer version of Node.js? The version currently required for this package has been sunset and security patches will no longer be available after November.

Thanks, this has now been updated to Node 16.


athena-nvim-config-1.0.0-2-any.pkg.tar.zst 404

❯ sudo pacman -S athena-nvim-config
[sudo] password for lilian:
resolving dependencies...
looking for conflicting packages...
Package (1)                New Version  Net Change  Download Size
athena/athena-nvim-config  1.0.0-2       26.57 MiB       5.19 MiB
Total Download Size:    5.19 MiB
Total Installed Size:  26.57 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
athena-nvim-config-1.0.0-2-any.pkg.tar.zst failed to download
error: failed retrieving file 'athena-nvim-config-1.0.0-2-any.pkg.tar.zst' from hub.athenaos.org : The requested URL returned error: 404
warning: failed to retrieve some files
error: failed to commit transaction (failed to retrieve some files)
Errors occurred, no packages were upgraded.

No need to install neovim when install nvchad-git. Btw it is already preinstalled in Athena OS


ISSUE-27: Patch Loki to use newer docker image

Description for #27
Patches loki to enable usage of newer chrome docker image.
📋 Acceptance Criteria

Checked off by the PR Assignee(s)

[x] Patches loki on post install
[x] Remedies cross-platform bugs

👩🔬 Test Instructions

Run npm ci
Run npm run test:visual
All works as expected

🔎 Reviewer Checklist

Checked off by the PR Reviewers

Required

These always need to be checked

[ ] Merge destination is correct
[ ] Code is correct as understood and conforms to quality standards
[ ] Tests have been added where appropriate (unit, visual, end-to-end)
[ ] Acceptance Criteria have been met

Roles & Responsibilities
👨💻 Assignee

Initiator of this PR (be sure to set in GitHub UI)
Addresses feedback and change requests
Merges PR once approved (usually deletes branch unless develop or release)

👩💻 Reviewer

Invited to review PR by Assignee (via GitHub UI)
Is expected to complete a review and address followup

Codecov Report

Merging #32 into develop will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           develop    #32   +/-   ##
======================================
  Coverage      100%   100%
======================================
  Files            3      3
  Lines            5      5
======================================
  Hits             5      5

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 9635ba8...34b224e. Read the comment docs.


Text Summarization Model

Description
I added a Text Summarizer Model
Name: Ankan
Github: Peart-Guy
Participant role: GSSOC-24 EXTD , Hacktoberfest
Issue Resolved
#139
Changes Made
I added a new model which summarizes long texts that enhances understanding and speed up learning—perfect for students and professionals alike.
Screenshots or Videos
https://github.com/user-attachments/assets/5b00cfe0-2dff-4790-b88b-7cc1647f0460
Additional Details

Checklist

[x] My code follows the current project structure
[x] I have thoroughly reviewed and updated the requirements.txt file to include any new packages
[ ] The predict.py file includes a properly implemented model_details() function, or the notebook contains this function to print a detailed model report. The model will not be accepted without this function, as it is essential for generating the necessary model details.
[x] I have added relevant tests (if necessary).
[x] I have added comments in the code where needed.
[x] This PR is submitted under Hacktoberfest.
[x] This PR is submitted under GirlScript Summer of Code (GSSoC-Extd).

@yashasvini121  I have done my work. Kindly check it out and give GSSOC-24 EXTD, Hacktoberfest and Level 3. It will be an honor

Your work in not in the correct project structure. Please refer docs/

Since my program is a NLP model so it is done in a single file and it does not need any separate code file to train or a separate code file to run or a separate file of data sets @yashasvini121

Feel free to reach out if you have any questions regarding the expected changes.

Feel free to reach out if you have any questions regarding the expected changes.

@yashasvini121
Since my project comes with the built in UI so it is completed in one single file. My project does not need separate predict.py file or separate UI file. It will completely run by the Text Summarizer.py in the pages folder
I hope I was able to explain everything clearly.  Would you like any further adjustments?

Feel free to reach out if you have any questions regarding the expected changes.

@yashasvini121 Since my project comes with the built in UI so it is completed in one single file. My project does not need separate predict.py file or separate UI file. It will completely run by the Text Summarizer.py in the pages folder
I hope I was able to explain everything clearly. Would you like any further adjustments?

Your project works fine, but please note that the PR checklist specifies that the required project structure must be followed. If not, your PR will only receive a Level 1 rating.

Feel free to reach out if you have any questions regarding the expected changes.

@yashasvini121 Since my project comes with the built in UI so it is completed in one single file. My project does not need separate predict.py file or separate UI file. It will completely run by the Text Summarizer.py in the pages folder
I hope I was able to explain everything clearly. Would you like any further adjustments?

Your project works fine, but please note that the PR checklist specifies that the required project structure must be followed. If not, your PR will only receive a Level 1 rating.

@yashasvini121
But I don't have extra files to add ,to maintain the project structure.
Kindly understand that  my project is designed to be simple and efficient, requiring only a single file to function perfectly. This streamlined approach reflects my preference for minimalistic programming, ensuring both ease of maintenance and clarity in structure.
I trust that I have clearly explained the issue, and I am confident that you will understand my perspective.
Thank You

Feel free to reach out if you have any questions regarding the expected changes.

@yashasvini121 Since my project comes with the built in UI so it is completed in one single file. My project does not need separate predict.py file or separate UI file. It will completely run by the Text Summarizer.py in the pages folder
I hope I was able to explain everything clearly. Would you like any further adjustments?

Your project works fine, but please note that the PR checklist specifies that the required project structure must be followed. If not, your PR will only receive a Level 1 rating.

@yashasvini121 But I don't have extra files to add ,to maintain the project structure. Kindly understand that my project is designed to be simple and efficient, requiring only a single file to function perfectly. This streamlined approach reflects my preference for minimalistic programming, ensuring both ease of maintenance and clarity in structure. I trust that I have clearly explained the issue, and I am confident that you will understand my perspective. Thank You

@yashasvini121 I hope you understood. Will be waiting for your reply
Thank You

@yashasvini121  Thank You for Understanding. It was pleasure working with you.


added x-amz-request-id and x-amz-id-2 in GetObjectResult(S3) #554

These flies are generated by code generator based on service model. You will need to dive deep in dir code-generator.

Thanks @singku I have made the required changes. Could you please review it again ?

I have fixed merge conflicts can you please review the changes ?
@JonathanHenson

@trevorrowe @amaneureka Source files under s3/model are auto generated based on api-description, you don't have to modify them. We have two ways to work this out:
1: modify the api-description files, but this is auto-generated from our internal c2j service
2: adjust the code-generator for S3 here

This request is going to be provided and merged shortly after code review.


Installer Generator (metroctl install genusb) is slow

Because of some shenanigants with go-diskfs we're generating the installer image annoyingly slowly (one physical block at a time).
We should fix this and make it fast. At least temporarily we should let the user know that things are happening: a progress bar, or even a log entry noting that the subsequent operation is slow.

(whether we fix go-diskfs, fork go-disk-fs or write something totally independent is a decision left to the implementor)

Fixed in ad131883747f73e51526dd6f163df23b913f69ed


Help Wanted: Pre-Package Windows 10 Release

I can make macOS and Linux releases just fine, but I'd like some help getting the Windows release (requires compiled node modules).

Obsoleted with https://github.com/Daplie/node-pokemap/issues/7


1501 Docker implementation of federated iRODS zones for HydroShare

Implement federated iRODS servers in Docker space for HydroShare

replicates hydroshareZone and hydroshareuserZone
follows the same workflow as found in production
enabled by running one additional script prior to using hsctl
see README.md for usage details

@hyi Can you review this?

@mjstealey I have pulled this branch to my local environment and tested the whole workflow and everything works as expected. Nice work! +1 to merge. Once this work is merged into develop, I can start to work on adding unit tests for federation-related functionalities using this federated irods docker containers as the irods test environment.


Use latest release instead of a hard-coded TAG

IIUC, sublime pulls in a particular release which is hard-coded in the plugin's source code. Generally, there are no breaking changes in Marksman from release to release; rather bug fixes and new features. Pulling the latest released binary would probably give a better experience overall (especially because I release pretty often).
Would it be possible to do that? Also, I'm curious if sublime LSP is able to check whether there's a newer release and suggest updating the binary?

Yeah, we've decided to have a convention for LSP-* packages where the server version is pinned and updated together with new package version.
That way we can also tie upgrading to normal Package Control upgrading mechanism rather than asking user to upgrade or doing update checks before every start (as @jfcherng said).
The process is not optimal as for npm-based packages. For those we can set up automatic new-version notifications and make dependabot auto-create PRs to update them. Here we can miss updates easily unless we find some helpful github action or write one ourselves.

Thanks @rchl @jfcherng, it makes sense. It seems that a GH action that would auto bump the version here when a new Marksman is released would be ideal.

I couldn't find any github actions that could track and ping on new GitHub releases. Also tools like Renovate don't seem to support it.
I guess that either someone can find a github action for this or there is also an option for setting up a workflow on marksman repo that would notify this repo on new releases. That way it shouldn't be that hard.

setting up a workflow on marksman repo that would notify this repo on new releases

@rchl do you have any pointers as to how I could set up such a workflow?

I think you could set up the https://github.com/marketplace/actions/repository-dispatch action on your side and this repo would need to set up a repository_dispatch workflow. And we would need to create an access token that you would use in your action.
Our workflow could automatically create a PR with the change if your workflow would send the new tag. An related example is here: https://github.com/sublimelsp/repository/blob/ccc25996a2ee05d70457344219a6dd62130ad2ac/.github/workflows/on-new-release.yml


Update route53-vpn.yaml

Updated route53 configuration.

Closing this PR since it has been fixed here: https://github.com/CiscoDevNet/sfcn/pull/11


Support reboot in guest

If I run reboot in a guest, it will be halted. What can I do to keep the guest alive?
Excerpt from /usr/share/examples/bhyve/vmrun.sh:
bhyve returns the following status codes:
	0 - VM has been reset
	1 - VM has been powered off
	2 - VM has been halted
	3 - VM generated a triple fault
	all other non-zero status codes are errors

Which OS do you observe this behaviour? What OS is the host?
I have too experienced similar results.
If loader=bhyve-load

Rebooting from inside the guest are handled fine.
[ ] I have observed this with FreeBSD 10.3 and pfSense 2.3 guests.

If loader=grub-bhyve && persist=1

Running reboot from inside the guest brings down the bhyve process but the vmm remains.
    If iohyve start grub-guest is then ran, problems arise. Error messages get dumped to the screen until you start manually killing processes. The error message is mostly "bhyve: could not activate CPU 0: Device busy" but other messages do display if you let it sit long enough.
    OR if iohyve destroy grub-guest is then ran instead, the guest reboots as expected.
[ ] I have observed this with RHEL 7 guests and Debian 8 guests.

If loader=grub-bhyve && persist=2

Running reboot from inside the guest brings down the bhyve process and also the vmm instance.
[ ] I have observed this with RHEL 7 guests and Debian 8 guests.

Host and guest are both FreeBSD 10.3. I use the defaults loader=bhyveload and persist=1.

I have to correct my last response: loader=bhyveload and persist=1 works for me.

Automatic restarting of guests does happen to be wonky from time to time.
This will need to be looked at for simplicity sake, and also documented for clarity.
I will add this to the roadmap as a reminder to work on it.
Since this seems to be working for you now, I am closing the issue.


VIH-10184 refactor health check

JIRA link (if applicable)
VIH-10184
Change description
Refactor health checks
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

/azp run


Consider allowing applications to go fullscreen

This is one form of user interaction we may consider, since it doesn't allow the user to "escape" the application.

Whoops, this was supposed to be auto-closed by 2669c80803da97ff06b1621436be26a5aed02955, but I used the wrong issue number there.


How do I get my angular application to work with b2c “revoke session” button which I can press in the Azure portal

Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[X]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[X]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
My use case is to be able to forcibly require users to log in again both from a lost device/account compromised situation but also to update their cached user account which we enrich with additional information in our Angular app.
In Azure B2C I have available several administration buttons including the [Revoke Sessions]. Behind the scenes this calls the graph function as described here (which my API can call programmatically later):- https://docs.microsoft.com/en-us/graph/api/user-revokesigninsessions?view=graph-rest-1.0&tabs=csharp

In my Angular application, I cannot get this to force my user to log in again on subsequent calls for secured resources. I am expecting that when I make any call after pressing this button, it would send back a failure code that I could trap in an interceptor or similar.
The documentation is not clear & I am not even sure if I am misinterpreting how the action works. I have looked at various stack overflow answers including one about skewing time and customising the basic SUSI flow but that seems excessive for something which should be a common use case.
I am using your msal-angular-v2/angular11-b2c-sample with changes to point it to my B2C area. This area has standard flows configured as shown below. The issue occurs with the my existing MSAL 1 and your new 2 code - neither seem to work for this.

Using this code with my settings, I am able to sign into B2C using the with a created account, edit my profile and view my example secured api.
Within the B2C environment I press the revoke session button. On the client I can edit my profile and call my API again and it just calls it as before without sending me to the login page.
I suspect the change has to go into this part of app.component.ts sample:-
    this.msalBroadcastService.msalSubject$
      .pipe(
        filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_FAILURE || msg.eventType === EventType.ACQUIRE_TOKEN_FAILURE),
        takeUntil(this._destroying$)
      )
      .subscribe((result: EventMessage) => {
        console.log(result);
        if (result.error instanceof AuthError) {
          // Check for forgot password error
          // Learn more about AAD error codes at https://docs.microsoft.com/azure/active-directory/develop/reference-aadsts-error-codes
          if (result.error.message.includes('AADB2C90118')) {

            // login request with reset authority
            let resetPasswordFlowRequest = {
              scopes: ["openid"],
              authority: this.policies.authorities.forgotPassword.authority,
            }

            this.login(resetPasswordFlowRequest);
          }
        }
      });

The documentation with that sample points you to here for other events:- https://docs.microsoft.com/en-gb/azure/active-directory/develop/reference-aadsts-error-codes but again there is nothing mentioned about what to expect from revoke or what I might need to trap to do a force login again.
What am I missing and how can I get the sample application to force someone to log in again when they try to access a protected resource after that button has been pressed?
Thank you
Source

[ ] Internal (Microsoft)
[X] Customer request

@nickgmicrosoft Do you have any insight?

@nickgmicrosoft Do you have any insight?

Unfortunately, this "revoke sessions" is only for Azure AD refresh tokens/cookie revocation.
When you ran the "Edit Profile" button, it used the Session Cookies, therefore are not prompted to login again.
For Azure AD B2C, users, it only evaluates the RefreshTokensValidFromDateTime user attribute in User Flows. Custom policies can do that, with further configuration also.
If you delete the Access Token in your Session Data (in the browser), hit the 'Revoke Session' button or call the API, then in the App run AcquireTokenSilent() ->
MSAL 2.x

That should throw an error trying to the RT, and revert to a redirect/popup, which will use the Session Cookies (which may give you SSO if they haven't expired). The error is in the hidden iframe, so monitor the network trace to see it.

MSAL 1.x

No effect as it doesn't use RT's.

Due to this, you would want to make your Web Session (cookie) lifetime pretty small, and Refresh token lifetime as long as possible. In the case of MSAL.js 2.x, currently RT lifetime is fixed at 24 hours for SPA's.

Unfortunately, this "revoke sessions" is only for Azure AD refresh tokens/cookie revocation.
When you ran the "Edit Profile" button, it used the Session Cookies, therefore are not prompted to login again.
For Azure AD B2C, users, it only evaluates the RefreshTokensValidFromDateTime user attribute in User Flows. Custom policies can do that, with further configuration also.
If you delete the Access Token in your Session Data (in the browser), hit the 'Revoke Session' button or call the API, then in the App run AcquireTokenSilent() ->
MSAL 2.x

That should throw an error trying to the RT, and revert to a redirect/popup, which will use the Session Cookies (which may give you SSO if they haven't expired). The error is in the hidden iframe, so monitor the network trace to see it.

MSAL 1.x

No effect as it doesn't use RT's.

Due to this, you would want to make your Web Session (cookie) lifetime pretty small, and Refresh token lifetime as long as possible. In the case of MSAL.js 2.x, currently RT lifetime is fixed at 24 hours for SPA's.

@JasSuri @jo-arroyo  thank you for that - Do you have any good guidance suggestions for this & how to trap/respond to it from my code/the samples here given it is in the iframe generated by msal?  Is it something that you could broadcast potentially?
I am also in the process of setting up our custom flows at the moment because we want to be able to generate an account with a temporary password which the user has to change on first login without the verify email part (as we have already done that to send them a one time password). I would appreciate a hint/any links about which specific flow parts I should change to make this work.
Thank you for your time & the work you are doing on this

@JasSuri @jo-arroyo  thank you for that - Do you have any good guidance suggestions for this & how to trap/respond to it from my code/the samples here given it is in the iframe generated by msal?  Is it something that you could broadcast potentially?
I am also in the process of setting up our custom flows at the moment because we want to be able to generate an account with a temporary password which the user has to change on first login without the verify email part (as we have already done that to send them a one time password). I would appreciate a hint/any links about which specific flow parts I should change to make this work.
Thank you for your time & the work you are doing on this

The usual approach is to handle the normal errors coming back from AAD B2C that are generated by users. Eg

User clicked forgot password
User cancelled MFA
User cancelled a page

Now a specific error will be introduced by RT revocation, and you might want to handle it explicitly.
Based on the same logic of catching the "User has forgotten their password" error, you can add another catch statement for AADB2C90129 | The provided grant has been revoked. Please reauthenticate and try again. See the example here. All errors are documented here.
Then any other error should simply have a global response, eg, redirect the user to the Home Page, or maybe back to Sign In.

The usual approach is to handle the normal errors coming back from AAD B2C that are generated by users. Eg

User clicked forgot password
User cancelled MFA
User cancelled a page

Now a specific error will be introduced by RT revocation, and you might want to handle it explicitly.
Based on the same logic of catching the "User has forgotten their password" error, you can add another catch statement for AADB2C90129 | The provided grant has been revoked. Please reauthenticate and try again. See the example here. All errors are documented here.
Then any other error should simply have a global response, eg, redirect the user to the Home Page, or maybe back to Sign In.

Hi @JasSuri ,
I added the following to my code in the app.component.ts area listed at the start of this question in order to see if there are any events I am missing and after running it.
    // Just take all the messages apart from the success one to see if the revoke appears anywhere
    this.msalBroadcastService.msalSubject$
      .pipe(
        filter((msg: EventMessage) => msg.eventType !== EventType.LOGIN_SUCCESS),
        takeUntil(this._destroying$) )
        .subscribe((result: EventMessage) => {
          console.log('all messages - event type and message', result.eventType, result);
        });

Below is the trace.  I have commented on it the point that I pressed the revoke button.  I can't see an error - I have tried to log everything.

Adding the error to where the password reset code is trapped doesn't do anything but I would expect it to be hit - I changed the eventType filter to be more permissive and am trapping everything as above just in case I missed something. Am I misinterpreting how these should be trapped or just doing something stupid? :-D

Kind regards

Hi @JasSuri ,
I added the following to my code in the app.component.ts area listed at the start of this question in order to see if there are any events I am missing and after running it.
    // Just take all the messages apart from the success one to see if the revoke appears anywhere
    this.msalBroadcastService.msalSubject$
      .pipe(
        filter((msg: EventMessage) => msg.eventType !== EventType.LOGIN_SUCCESS),
        takeUntil(this._destroying$) )
        .subscribe((result: EventMessage) => {
          console.log('all messages - event type and message', result.eventType, result);
        });

Below is the trace.  I have commented on it the point that I pressed the revoke button.  I can't see an error - I have tried to log everything.

Adding the error to where the password reset code is trapped doesn't do anything but I would expect it to be hit - I changed the eventType filter to be more permissive and am trapping everything as above just in case I missed something. Am I misinterpreting how these should be trapped or just doing something stupid? :-D

Kind regards

I am using MSAL 2 btw and the v2 flows - the rest is just the published sample with changes to point to my b2c environment

I am using MSAL 2 btw and the v2 flows - the rest is just the published sample with changes to point to my b2c environment

Hi, this is still an issue for me - is there any solution or an indication of what I am doing wrong in my last comments?

You added this to acquireTokenSilent()? That is where your logic needs to sit.


Feature request: promise API?

With async/await it would be useful it winston exposed a promise API (this could be done in a backwards compatible way).
const doSomething = async () => {
  // this doesn't block
  logger.error('some error', new Error('foo'))
  // this blocks
  await logger.error('some error', new Error('foo'))
  // get sentry ID
  const sentryErrorId = await logger.error('some error', new Error('foo'))
}

doSomething()

@rcollette that specific use case (AWS lambda) is discussed in https://github.com/winstonjs/winston/issues/1250. It's largely unrelated to async/await and Promise and more related to _final and finish events in the Node.js streams API.

Thanks for the feedback.  Issue can be closed.  Will monitor the other issue.

It's still a valid feature request – if more folks 👍 we'll consider it. Just wanted to be clear that the lack of it is not causing any problems nor the source of any defects.

Still a valid feature request. I've run into a scenario where I really need this, actually, in order to avoid making my code a total mess with callbacks.

@indexzero Please re-consider this.

+1

Still a much-needed feature.

Anyone motivated enough to provide a development grant or PR?

Is this the same issue as writing a custom logger where log is async? As in:
async log(info, callback) {
    setImmediate(() => {
      this.emit('logged', info);
    });
    await superSlowDbCall();
    // Perform the writing to the remote service
    callback();
  }

Otherwise how would I achieve this? Would we do this?
log(info, callback) {
    setImmediate(() => {
      this.emit('logged', info);
    });
    superSlowDbCall().then(callback);
  }

Any updates on this? I need to be able to use Async/Await for my custom transport

This feels like it would need to be a pretty big rewrite or PR for winston (and possibly winston-transport, and logform).  Definitely open to it, but would need to be a community-driven effort to actually write that code.  There may be some simpler workaround like wrapping your logger code in some async/await functions, or maybe we can just mark every function in winston or the logger class as async so that your transport would be happy?  (Would that be a harmless change, as long as we don't use promises anywhere else in the winston call chain?)
Open to thoughts and definitely open to contributions here.

@DABH so im a bit confused, as I see custom transports like this, https://github.com/TheAppleFreak/winston-slack-webhook-transport/blob/master/slackHook.js, using async/await seemingly, and I assume they work?
But I cannot get my async custom transport to work at all.
import Transport, { TransportStreamOptions } from 'winston-transport';
import { LogEntry } from 'winston';
import * as Raygun from 'raygun';

const raygun = new Raygun.Client().init(
  {
    apiKey: '<api_key>',
    reportColumnNumbers: true,
    reportUncaughtExceptions: true,
    batch: false,
    tags: ['winston'],
  },
);

export class WinstonRaygun extends Transport {
  constructor(
    options?: TransportStreamOptions,
  ) {
    super(options);
  }

  async log(info: LogEntry, callback: () => void) {
    setImmediate(() => {
      this.emit('logged', info);
    });

    const { level, message, ..._meta } = info;

    try {
      await new Promise<void>((resolve) => {
        raygun.send(message, {}, () => {
          resolve();
        });
      });
    } catch (error) {
      console.error(error);
    } finally {
      callback();
    }
  }
}

Yeah, I would think that the one you linked to works!
So, hmm - more details on what errors you're getting?

No error, I simply don't get the message sent to Raygun. Stepping through, it seems callback() is never hit, so that might be it? But no idea why it's not getting hit.

@paul-uz I'm not familiar with the inner workings of winston but out of curiosity, what if you remove the part:
    setImmediate(() => {
      this.emit('logged', info);
    });

or move it to after your await.
The only thing different about your code to usual logging code is that your await means that the logged event will fire before your code finishes.

Ive tried moving it and even removing it completely. Nothing helps.

Doing more debugging, regardless of an awaited call, or a promise chain, the promise is pending, but the code moves on and the transport "ends". How can I make it wait for the promises to resolve?

I would imagine that either https://github.com/TheAppleFreak/winston-slack-webhook-transport/blob/master/slackHook.js is an example of what works, or there's a bug in their code :)  Is whoever calling the log function, awaiting?  One thing I notice is that that slack hook is just calling this.emit("logged", info); rather than wrapping that in a setImmediate call, that could be related?  But that emit is all I believe the transport is supposed to have to do to signal its completion...

I would imagine that either https://github.com/TheAppleFreak/winston-slack-webhook-transport/blob/master/slackHook.js is an example of what works, or there's a bug in their code :)  Is whoever calling the log function, awaiting?  One thing I notice is that that slack hook is just calling this.emit("logged", info); rather than wrapping that in a setImmediate call, that could be related?  But that emit is all I believe the transport is supposed to have to do to signal its completion...

This is the example I'm using and it works. Annoyingly I cannot get mine to work at all. And I'm starting to suspect it might be the raygun library at fault?
However what is the official word on async transports in Winston? The documentation is pretty poor surrounding custom transports even in the Winston transport library itself.

@DABH so im back to trying this custom transport, and I'm back to square one.
I still can't get my async log method to work. If I call my promisified method via await, the log method exits after calling it, without calling callback()
I also tried using .then() and put the callback() in there but no luck.
I really need to get this up and running, but lack of up to date documentation is a bummer.

Hey @paul-uz , it looks like from https://github.com/winstonjs/winston/issues/1250#issuecomment-2102956520, you were able to get things to work?  This is fantastic news if so!
Assuming you got things to work... any chance we could convince you to share an example and/or add any documentation via a PR, e.g., in https://github.com/winstonjs/winston/tree/master/examples?  It would be hugely appreciated.  Let me know if there's anything else we can do.


Log viewer: Copy&Paste may yield unexpected line breaks in Firefox

There is deviating behavior between FF, Chrome and IE regarding copying & pasting line breaks from pre-formatted texts, resulting in no line breaks being copied from individual text selections in the log viewer and duplicate line breaks when all log viewer text is selected.
As a solution, the most consistent results are achieved by

Stripping any line breaks from the source text
Appending one text node per line and one  element per line break to a white-space:pre formatted element,

Implemented, done.


added warning regarding trailing spaces in --assemblies file in docs/build_and_load.md

Description
Hi @lynnjo , I have added a warning regarding trailing spaces in --assemblies file in the detailed walkthrough at docs/build_and_load.md. This caused errors while running phg align-assemblies.
Type of change
What type of changes does your code introduce? Put an x in boxes that apply.

[ ] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[ ] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[x] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Checklist:

[x] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have updated relevant documentation

Changelog entry
Please add a one-line changelog entry below. This will be copied to the changelog file during the release process.
Added warning regarding trailing spaces in --assemblies file in the detailed walkthrough

Hi Bruno - we are going to close this pull request without changing documentation.  I have instead created a pull request that trims trailing whitespace from the file names.  We feel this is a cleaner approach.    I will leave this open until you are able to test phg_v2 after we merge the new pull request.

Sounds good

Hi Bruno  - The code in AnnotateFastas compresses the file if the original input was compressed.  However, I see the problem with running anchorwave, and since that program requires uncompressed files, I'll look at changing the code in AnnotateFastas to skip that step.  We appreciate all your feedback!

Another documentation question that you might want to clarify. Is the phg create-ref-vcf --db-path vcf_dbs path the folder gvcf_dataset/ created with phg initdb ?

This was fixed in the code for PR: https://github.com/maize-genetics/phg_v2/pull/118.
I am closing this out.


Fix incorrect permissions notification banner for groups

At present, the permissions notification banner for groups always shows the same permissions, regardless of what the permissions  setting actually is. We should fix this.

@zulipbot claim

I was trying to solve this issue, and I think the problem is something else. I found out that simply changing the Organisation permissions of groups does not change the permissions notification banner. We need to refresh the page to see the changes.
However, changing other permissions for the bot works fine without refreshing and we can see the banner changing.

@mechon03 Are you saying that the banner is correct after a refresh? Can you post a screenshot?

Current permission-

Banner without refreshing-

Banner after refreshing-

@alya

Also, as mentioned in #24155, should we follow same for group permissions also. Like we will not show any permission banner to user if they can modify the groups.
This however may not be true for owner and admins as they want to know who can modify settings since they are the one deciding the permissions. [Thinking this from a UX point of view]

Thanks for the investigation @mechon03 ! Closing in favor of #24259.


@dilipkrish我正在使用2.9.2版，仍然面临相同的问题。

@dilipkrish我正在使用2.9.2版，仍然面临相同的问题。
@dilipkrish I am using version 2.8.0 and still facing same issue.
Originally posted by @STZG19991208 in https://github.com/springfox/springfox/issues/388#issuecomment-612925981

Could you translate please?

Closing this as duplicate of #1575


Not installed

Q
A

Bug?
no

New Feature?
no

Version Used
v0.11.0

FFmpeg Version
ffmpeg version 2.2.1

OS
CentOS release 6.9 (Final)

Actual Behavior
not installed
Expected Behavior
Must be installed
Steps to Reproduce

Install symfony 4

composer create-project symfony/skeleton my_project

I'm trying to install a library

composer require php-ffmpeg/php-ffmpeg

And i have error (see screenshot)

Possible Solutions
Change requirements

Help please

duplicate of #470
Please do not use words like help. Thank you. Oh, and search for duplicates, too.


fix: can directly save the loaded weights

can directly save the loaded weights.
  let api = Api::new()?;
  let repo = api.model("bert-base-uncased".to_string());

  let weights = repo.get("model.safetensors")?;

  let weights = candle_core::safetensors::load(weights, &Device::Cpu)?;
  // do something like this
  // ...
  candle_core::safetensors::save(&weights, "new-model.safetensors")?;

Thanks!


Completions in watches

Suggestion: we could wire up the intellisense window for completions that we have in the debug console to also show up when adding a watch. Other tools do this

Oh derp I already filed this 5 months ago

Nice try :)


Web.config toevoegen

The config in the root directory on the website is as follows.
Maybe it should be added to the git repository?
This makes sure that all the requests like /holidays get rewritten to index.html
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="http to https" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
                </rule>
                <rule name="AngularJS App">
                    <match url="(.*)" />
                    <action type="Rewrite" url="index.html" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="true" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="true" negate="true" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Is fixed in dev.


Add swap_file resource from the swap cookbook

This is copied as-is from the swap cookbook and included here with permission of Vargo
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

Yep the recipe was a leftover from the pre-1.0 cookbook that was very much attribute driven still.


Is this project contribution allowed?

It seems like this project is actively developing.
I'm wondering if contribution is allowed for anyone interested in this project.
Thank you.

@simsim0709 yes definitely! Much appreciated and encouraged. There is one caveat: if you do any large changes please run them by one of the core contributors with admin rights. It would be a shame if you do a ton of work without running it by us, and we don't like it.
What is a large change (you might ask)?
It definitely depends. If you're in doubt please run it by us anyways. The more communication you have with us the better chance of your contribution making it in.


add NumFOCUS, math lib, localize dev stuff

The subject says it all.

@bob-carpenter, I'm not sure what this requires. Does it still need to be taken care of?

Already done.


Pull color configuration to theme config / settings

I come across serif theme and I really like your work. Given my limited knowledge of scss I was stuck at very basic problem - adjusting of theme colors. I've tried to create _bootstrap-variables as well as bootstrap-variables files with mixed results.
At the same time I found other themes making syle colors configurable:
https://github.com/vaga/hugo-theme-m10c/blob/master/assets/css/main.scss#L1L5
Would you consider moving color config to theme settings? If so I can try to come with an PR.

@splatch to change the color variables you can just edit the scss/style.scss Line 2.
If you want to override bootstrap variables then edit the existing scss/_bootstrap-variables.scss
About your suggestion to use color variables in the config.toml - yes, I am familiar with this approach. If you want to do a PR which adds this feature go ahead.


Remove static script reference from GDScript class

With the changes in Variant it now causes a reference cycle. The script reference is now created on the function call, the same way as it's done for the instance reference.
Reverts #36295
Fix #36246
Fix #36298

Thanks!

Not sure where to ask given the history of this one.  Wondering though if one of the original issues https://github.com/godotengine/godot/issues/32383 will remain for 3.2?
There were PRs consider for 3.2 that were closed in favor of 867d073.

@avencherus I totally missed this. You should have asked in the issue itself, this PR has nothing to do with that one. But I think a solution was added for 3.2.

I came here to mention that I added a fixup: 0f1da724924fc494bfd316c57757e0e1d7b90143, since I forgot to actually set the new variable.


fix: remove unused json functions

:tada: This PR is included in version 1.0.0-beta.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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


Error when starting macvim 9.0.65 with this plugin enabled

It reports:
Error detected while processing BufWinEnter Autocommands for "*"..function <SNR>81_Setup[6]..<SNR>81_IndentLinesEnable[10]..<SNR>81_SetConcealOption:
line    8:
Project-Id-Version: Vim 8.2 (UK English)^@Report-Msgid-Bugs-To: ^@PO-Revision-Date: 2022-05-12 10:05+1000^@Last-Translator: Doug Kearns <dougkearns@gmail.com>^@Language-Team: Mike
Williams <mrw@eandem.co.uk>^@Language: en_GB^@MIME-Version: 1.0^@Content-Type: text/plain; charset=ISO-8859-1^@Content-Transfer-Encoding: 7bit^@Plural-Forms: nplurals=2; plural=n!=
1;^@

If I remove the plugin from my .vim/bundles folder the error disappears.
Had no issue until updating macvim from 8.x -> 9.x

Can confirm same issue on linux, NVIM v0.8.0-dev-878-g02e9b5a8e
Error detected while processing BufWinEnter Autocommands for "*"..function <SNR>116_Setup[6]..<SNR>116_IndentLinesEnable[10]..<SNR>116_SetConcealOption:

Looks like this was previously reported against vim directly (see here https://github.com/vim/vim/issues/10128).
I had got let g:indentLine_concealcursor=0 in my .vimrc file... changing it to one of the options as suggested by the help (:h concealcursor) fixed this.
'concealcursor' 'cocu'	string (default: "")
			local to window
			{not available when compiled without the |+conceal|
			feature}
	Sets the modes in which text in the cursor line can also be concealed.
	When the current mode is listed then concealing happens just like in
	other lines.
	  n		Normal mode
	  v		Visual mode
	  i		Insert mode
	  c		Command line editing, for 'incsearch'

	'v' applies to all lines in the Visual area, not only the cursor.
	A useful value is "nc".  This is used in help files.  So long as you
	are moving around text is concealed, but when starting to insert text
	or selecting a Visual area the concealed text is displayed, so that
	you can see what you are doing.
	Keep in mind that the cursor position is not always where it's
	displayed.  E.g., when moving vertically it may change column.


Google Drive links

Hi
Thank you for sharing your repo and providing the pretrained checkpoints. I tried to access the google drive link but it says folder has been moved to trash.
I am interested in the checkpoint google drive and JRDB test set detections in KITTI format. Is there any way to restore these folders?
Thanks

I'll update the new link as soon as I can, sorry maybe the links are expired

Hi @simi-asher the checkpoints can be found here


[Bug] [Master]  Logical task logs are not available because the full log path is not set when the logical task is dispatched.

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Logical task logs are not available:

What you expected to happen
I think it is caused by not setting the full log path when deispatch logical tasks.
How to reproduce
Create a logical task, then start it and check the logs.
Anything else
No response
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Closed by #14821


Update Composer dependencies (2021-12-16-00-03)

Visual regression test passed!
View the visual regression test report


Can't build from source

Following the instructions to build from source. Made sure that the command line tools are installed, ran brew install boost swig and cloned the repo. Then:
cd AutoDock-Vina/build/mac/release
make

Which produces an error:
g++ -static -pthread -ansi -Wno-long-long -O3 -DNDEBUG -std=c++11 -DVERSION=\"v1.2.5-50-g986e7b6\" -I /usr/include  -I ../../../src/lib -o main.o -c ../../../src/main/main.cpp
In file included from ../../../src/main/main.cpp:28:
In file included from ../../../src/lib/parse_error.h:26:
../../../src/lib/common.h:39:10: fatal error: 'boost/serialization/vector.hpp' file not found
   39 | #include <boost/serialization/vector.hpp> // can't come before the above two - wart fixed in upcoming Boost versions
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [main.o] Error 1

it might not be finding boost? maybe missing an environment variable? thanks!
Mac M1

Hi @ivnsch
vector.hpp is available via brew install. On my Mac M2 it locates at:
/opt/homebrew/Cellar/boost/1.86.0_2/include/boost/serialization/vector.hpp
Currently in the develop branch, the provided default Makefile attempts to find it under the brew install prefix. It seemed to work (???) for me but now I'm unsure if it's correct.. Maybe it should be looking up the boost prefix instead?
In the Makefile, could you try:
BASE := $(shell brew --prefix boost)

Thanks!

Reinstallation fixed it, thanks!


Adding a ResNet layer type to Tensorflow

I have been successfully using the resnet example code here. It would be nice to have a more concise form.
What do you think about adding a ResNet layer type? Interface would be similar to Conv2D, with addition of some flags such as type - what topology (BN-C-R / C-BN-R etc), and subsample - do we subsample by 2, etc.

I am thinking about it as well~
But I found there are many kinds of resnet, for me, I found it is easier to build residual blocks by using a for loop. This is a open topic, please let me know, if anyone have suggestion.
BTW, I think this resnet example is clear than the one you read.
https://github.com/zsdonghao/SRGAN/blob/master/model.py
for i in range(16):
      nn = Conv2d(n, 64, (3, 3), (1, 1), padding='SAME', name='c1%s' % i)
      nn = BatchNormLayer(nn, act=tf.nn.relu, is_train=is_train, name='b1%s' % i)
      nn = Conv2d(nn, 64, (3, 3), (1, 1), padding='SAME', name='c2%s' % i)
      nn = BatchNormLayer(nn, is_train=is_train, name='b2%s' % i)
      nn = ElementwiseLayer([n, nn], tf.add, 'add%s' % i)
      n = nn

Yes, that is nicely compact and clear. Maybe it is simpler to just add ResNet example (one that includes the downsampling and padding)? Off topic, but have you found that different ResNet block topologies are more suited to different types of data?

Yes, I will summarise the examples.
I usually use the traditional one, I didn't find any big performance differences on different topologies on image applications.


X-Forwarded headers in Zuul and downstream changes

Spring 4.3.9 has a behaviour change (I believe) because we decided we should not, by default. look at the X-Forwarded-* headers directly - but instead delegate to the container (e.g. let Tomcat parse those headers and decide if it trusts the source). We might find that apps downstream of a router start breaking more, and zine Zuul is adding those headers, we probably ought to evaluate again whether that is a good idea. The Tomcat model is to require a whitelist of request IPs.

Closing this due to inactivity. Please re-open if there's more to discuss.


[2798] Turn apply flag on for prod

Context
This will import all the applications but not create any trainees as all providers in prod do not have apply_sync_enabled set to true. There will be a sep. PR for that which will "turn things on".

 Run the ApplyApplication import on prod


[feature] validate train/valid split.

split  to train / valid sets
set target on train set == 1
set target on valid  == 0
train
check that AUC == 0.5
otherwise - there is a leak in the split

work in progress, waiting for release


refactor: change the way arrays are literals

change the way arrays are literals
Changed all the way in which arrays were created by constructors to array literals throughout the project, because array literals are more performant.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14503/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14503/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14503/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14503/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14503/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14503/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14503/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14503/merge#BCU1XR#0

are more performant

when generated. afterwards (i.e. accessing objects) it is technically the same

What do you mean


Basic JavaScript Waypoint 39 freezes up.

Challenge http://www.freecodecamp.com/challenges/waypoint-bring-your-javascript-slot-machine-to-life freezes up when trying to enter code. I had started entering my code and got $($) entered when I could no longer enter anything. I also cannot reset my code or anything. I have to kill the page and get back in. If I try to go back to that page it freezes up again during loading.

I am closing this issue as it is the same as issue #2640.

Hello @Jonboy1138
This is a duplicate. Also, we have a fix on the way.

Let me know if that works.
Happy Coding!

You beat me to it ;)


1.3.20

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (171174b) 98.63% compared to head (c70583c) 98.64%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #69      +/-   ##
==========================================
+ Coverage   98.63%   98.64%   +0.01%
==========================================
  Files          15       15
  Lines        1981     1996      +15
  Branches      336      337       +1
==========================================
+ Hits         1954     1969      +15
  Misses         26       26
  Partials        1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore: remove alastair

well we don't have it in docker setup anymore, so we can remove it from frontend as well.

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


handle joint

this is a big network track issue that need clear design for handling the joint

we should reconstruct the code for better handling with the inwork lock logic, this maybe a big change

this depends on #67


Integrate SNMP traps into monitoring

Need to be aware of SNMP traps sent from monitoring systems and associate those with cloud resources in the tool.

Request by internal user

Thank you for your suggestion. We've carefully considered your feedback and have decided not to include this feature in a future release.


Pass arguments to useAsyncFn fetcher

Passing arguments to useAsyncFn fetcher might be very useful, for example in case of autocomplete:
const [state, fetchSuggestions] = useAsyncFn(query => { /* fetch result somehow */ });

<Autocomplete onLoad={fetchSuggestions} items={state.value} />

:tada: This PR is included in version 9.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Think example code needs some correction.

There seems 3 places need to be corrected on the example source code.
'locale = locale.Substring(locale.IndexOf(';') -1);' to
'locale = locale.Substring(0, locale.IndexOf(';'));'
'cultures[ctr] = new CultureInfo(Request.UserLanguages[ctr], false);' to
'cultures[ctr] = new CultureInfo(locale, false);'
'document.DateForm.DateInfo.value' to
'DateForm.DateInfo.value'
As I've tried these code need to be corrected in order to function properly. Please correct me if I'm wrong. Also have question about the last errata. Wonder why 'document' needs to be left out. Trying to put that in the code like the example did, it doesn't work.

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

ID: 4c99d8f1-447a-84b2-9402-319745fc135b
Version Independent ID: 13928dc4-d9e6-d0b5-022f-69b3e4611380
Content: How to: Display Localized Date and Time Information to Web Users
Content Source: docs/standard/base-types/how-to-display-localized-date-and-time-information-to-web-users.md
Product: dotnet
Technology: dotnet-standard
GitHub Login: @Thraka
Microsoft Alias: adegeo

Thank you for opening this issue. I'll add it to the backlog. If you would like to contribute, you can submit a fix by editing the original article. Click on the Content Source link at the bottom of your original comment. To learn how to edit, see the Editing files in a repository article from GitHub.
The links to the sample directly are:

C#
https://github.com/dotnet/samples/blob/master/snippets/csharp/VS_Snippets_CLR/Formatting.HowTo.ParseDateInput/cs/GetDateInfo.aspx

VB
https://github.com/dotnet/samples/blob/master/snippets/visualbasic/VS_Snippets_CLR/Formatting.HowTo.ParseDateInput/vb/GetDateInfo.aspx

Thanks again!


Possible fix to issue #754

Q
A

Bug fix?
yes

New feature?
no

New sample?
no

Related issues?
fixes #754

What's in this Pull Request?
This PR adds a possible fix to issue #754
However, there is a use case that the Engine cannot cover regarding export/import of Content Query WebParts:
When the CQWP is in the root site, and is pointing to a subsite web, the property would be:
<property name="WebUrl" type="string">~sitecollection/subsite</property>

As we are exporting the root site, and the CQWP is pointing to a subsite that won't exist when importing the template to the new site, this fix won't work (current code without this fix won't work either). I'm afraid we can't cover that use case anyway, as it depends on a subsite.
However, if we are exporting a CQWP in a subsite, that is pointing to the same subsite, this fix will work, as it will replace:
<property name="WebUrl" type="string">~sitecollection/subsite</property>

by
<property name="WebUrl" type="string">{site}</property>

and it will be pointing to the same subsite, when the template is imported to a new subsite.
Hope it makes sense. Leave any question here.
/cc @PieterVeenstra @VesaJuvonen

Thanks for this fix @luismanez! I'll test and merge it soon.

Thanks to you Bert! Happy to help.


Refresh Targets not called in common initial workflow

If a user creates a new project, edits some files in Atom, and adds a .atom-build.* file, they cannot then run the build process (Cmd+Alt+B) because "Refresh Targets" has not been run.  This is a gotcha that can be confusing to a new user, who may very well encounter atom-build for the first time in just such a situation.  For more information, see the discussion here.
One possible solution:  Run Refresh Targets when there is no build target.  See comments at the end of the thread linked to above for details.

Thanks! I'll try and get around to this shortly.

Nice, thank you!

Thank you for helping make build better!


Functionality for epoch-only input data

GGIR has so far focussed on high resolution (raw) data input
Nonetheless, various wearables used in research store only epoch level data. Further, some studies who may have raw data only publish/shared aggregated epoch level data.
Therefore, it would be valuable to also process these file types with GGIR:

Research groups can then use GGIR for both epoch count data and for raw data.
Ability to process both data types could be interesting for methodological studies where one might like to compare algorithms run on those data and on raw data.

That said, the user should be made aware that the lack of control over the preprocessing remains a major limitation of working pre-processed epoch-only data.
I have a funded project to implement this for Actiwatch data to make a start with this functionality.
A crude sketch of how the functionality may then work:
GGIR(data_format = "raw", ...) # default
GGIR(data_format = "ukbiobank_csv", ...) # UK biobank csv epoch
GGIR(data_format = "actiwatch_csv", ...) # Actiwatch csv epoch
GGIR(data_format = "actiwatch_AWD", ...) # Actiwatch AWD epoch

this will then trigger GGIR to skip part 1 and instead convert the input files to part 1 milestone data.
Ideally, this should then be easily scalable to other epoch level data from consumer wearables.

Possibly good to restrict GGIR functionality when code is used this way:

For UK Biobank epoch data prohibit use of GGIR part 3-5 and visual reports.
For Actiwatch epoch data prohibit use of sleep algorithms other than Sadeh, Galland or Cole-Kripke.
For Actiwatch epoch data require use of a sleeplog or identify alternative way to guide the classification.


[BUG] thread 'main' has overflowed its stack

Steps to Reproduce

Git clone and run the example echobot or run it: https://github.com/annihilatorrrr/RustRoBot

Expected behaviour
It should run!
Actual behaviour
C:/Users/WORKER/.cargo/bin/cargo.exe run --package rustrobot --bin rustrobot --color=never
Finished dev [unoptimized + debuginfo] target(s) in 0.98s
Running target\debug\rustrobot.exe
thread 'main' has overflowed its stack
error: process didn't exit successfully: target\debug\rustrobot.exe (exit code: 0xc00000fd, STATUS_STACK_OVERFLOW)
Process finished with exit code -1073741571 (0xC00000FD)
Operating System
Windows 8.1
8gb ram
Version of Rust, Ferrisgram & dependencies
Gcc: 13.2.0
Rustc: 1.81.0
x86_64-pc-windows-gnu [default]

Relevant log output
No response
Additional Context

same on mac m3

same on mac m3

I see, we'll try to fix it ASAP.

Hi @edezhic, You can temporarily fix the issue by increasing the stack size using a cargo config like this:
https://github.com/ferrisgram/ferrisgram/pull/19 (this one is for windows, you'll need to create a similar config for your mac compiler too)
And @annihilatorrrr you can use the PR #19 as it is in your windows environment.
We will try to apply a permanent fix ASAP meanwhile, thanks.

Hi @edezhic, You can temporarily fix the issue by increasing the stack size using a cargo config like this: #19 (this one is for windows, you'll need to create a similar config for your mac compiler too) And @annihilatorrrr you can use the PR #19 as it is in your windows environment.
We will try to apply a permanent fix ASAP meanwhile, thanks.

Well that didn't worked.

Well, got some info from PR #19; here's what i did to fix it out now it runs for the time being:
On Dir:
"C:\Users\%USER%\.cargo"

Add a file named:
config.toml

Then save the following in the file and done!
[target.x86_64-pc-windows-gnu]
rustflags = [
    "-C", "link-arg=-Wl,--stack,8000000"
]

[build]
target = "x86_64-pc-windows-gnu"

You must make sure to do:
rustup toolchain install stable-x86_64-pc-windows-gnu

rustup default stable-x86_64-pc-windows-gnu

Cleanup (delete):
"C:\Users\KillerHackerX\.rustup\toolchains\stable-x86_64-pc-windows-msvc"

or
rustup uninstall toolchain stable-x86_64-pc-windows-msvc

You can have a look on the https://github.com/annihilatorrrr/RustRoBot for the latest code that runs.
Btw please fix it as soon as possible.

Well, got some info from PR #19; here's what i did to fix it out! Now it runs for the time being:
On Dir:
"C:\Users\%USER%\.cargo"

Add a file named:
config.toml

Then save the following in the file and done!
[target.x86_64-pc-windows-gnu]
rustflags = [
    "-C", "link-arg=-Wl,--stack,8000000"
]

[build]
target = "x86_64-pc-windows-gnu"

You must make sure to do:
rustup toolchain install stable-x86_64-pc-windows-gnu

rustup default stable-x86_64-pc-windows-gnu

Cleanup (delete):
"C:\Users\KillerHackerX\.rustup\toolchains\stable-x86_64-pc-windows-msvc"

or
rustup uninstall toolchain stable-x86_64-pc-windows-msvc

Thanks for providing a detailed tutorial to the community! Will try our best to fix it ASAP :)


[ENH] improve octave and python tutorials

set up octave and SPM
add visualization notebook for octave
add HRF and convolution notebooks
add design matrix notebooks

To try the binder