Training Logs

Hi authors, thanks for the great work!
Is there any log files in the training stage?
I didn't find it.

Hi! thank you!
We relay on sacred logging in a MongoDB, for details please see here (there other sacred loggers possible such as file storage)
For example, to store in mongodb_server:27000:audioset21_balanced (server:port:database_name)
 python ex_audioset.py with trainer.precision=16 models.net.arch=passt_deit_bd_p16_384 -p -m mongodb_server:27000:audioset21_balanced -c "PaSST base"

There is also an option to add tensorboard trainer.use_tensorboard_logger (not tested yet)
Example:
 python ex_audioset.py with trainer.precision=16 models.net.arch=passt_deit_bd_p16_384  trainer.use_tensorboard_logger=True -p

We will try to add weights&biases soon.
Let me know if you face any issues

Hi! Thanks for your help.
I found that MongoDB needs a server which is now difficult for me to set up one (I did not know why).
Instead, I use the following command:
python ex_audioset.py with trainer.precision=16 models.net.arch=passt_deit_bd_p16_384 -p -F My_DIr -c "PaSST base"

And I got these files in My_Dir:
My_dir
  1
    config.json
    cout.txt�
    info.json
    metrics.json�
    run.json
 _sources
...

Is it right?
Also, I tried:
python ex_audioset.py with trainer.precision=16 models.net.arch=passt_deit_bd_p16_384  trainer.use_tensorboard_logger=True -p

It seems not work (without saved tensorboard files).

Hi, by using this I can get the summary log file:
python ex_audioset.py with trainer.precision=16 models.net.arch=passt_deit_bd_p16_384  trainer.use_tensorboard_logger=True -p

Thanks.


Headless rendering example

Hi nanoqsh. Could you provide an example of headless rendering? I saw you mentioned "can simply draw a scene directly to the image in RAM," but I don't seem to find the relevant API. Thank you very much for developing dunge, it's really awesome!

@Capytara
Are looking for something like this?
https://github.com/nanoqsh/dunge/blob/main/dunge/tests/triangle_vertex.rs
Here is an example that works without a window and renders the final frame into an image. Also there is more similar examples in the tests directory

Thank you, this is indeed largely what I wanted. However, it seems that dunge cannot directly render to a TextureView? I mean, I currently have a wgpu::TextureView, which might be a surface or an editor viewport. I hope that dunge can render directly to the texture_view, instead of first rendering to an image and then copying it.

Use can render with context's draw_to in any target T: AsTarget.
Currently it may be a drawable texture or a render buffer (two drawable textures with color and depth attachment).
In particular, you can render something directly into a texture like this:
let cx = dunge::context().await?;
let data = TextureData::empty(TEXTURE_SIZE, Format::SrgbAlpha)
    .expect("non-zero size")
    .with_draw()  // set render flag to render something into texture
    .with_bind(); // set bind flag to use the texture directly in a shader

let render_texture = cx.make_texture(data);

// now you can render into this
let draw = /* some impl Draw instance https://docs.rs/dunge/latest/dunge/trait.Draw.html */
cx.draw_to(&render_texture, draw);

// and you can use `render_texture` as the shader binding
#[derive(Group)] // make a new bind group
struct Map<'a> {
    texture: BoundTexture<'a>,
    sampler: &'a Sampler,
}

let sampler = cx.make_sampler(Filter::Nearest);
let map = Map { // create the group instance
    texture: BoundTexture::new(&render_texture),
    sampler: &sampler,
};

// then you can bind this group instance in some shader and use `render_texture` in it

Unfortunately I don't have many examples of this, but I have an example of rendering something into an intermediate render buffer: https://github.com/nanoqsh/dunge/blob/main/examples/ssaa/src/lib.rs


Broken mp3 filename

I am not sure if this is a new thing or a bug.
Previously I was doing this to download the video as an mp3 with a filename:
file_name = "test"

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1, mp3=True)

# This would produce a file called test.mp3

This stopped working, it would not rename the file, to fix I had to do this:
file_name = "test.mp3"  # Had to add .mp3

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1) # Had to remove mp3=True

# This would produce a file called {video title}.mp3

I am not sure if this is a new thing or a bug.
Previously I was doing this to download the video as an mp3 with a filename:
file_name = "test"

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1, mp3=True)

# This would produce a file called test.mp3

This stopped working, it would not rename the file, to fix I had to do this:
file_name = "test.mp3"  # Had to add .mp3

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1) # Had to remove mp3=True

# This would produce a file called {video title}.mp3

which version of pytubefix?

@JuanBindez 1.10.0, it must have broke in the past couple of months

I am not sure if this is a new thing or a bug.
Previously I was doing this to download the video as an mp3 with a filename:
file_name = "test"

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1, mp3=True)

# This would produce a file called test.mp3

This stopped working, it would not rename the file, to fix I had to do this:
file_name = "test.mp3"  # Had to add .mp3

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

ys.download(output_path=self.DOWNLOAD_PATH, filename=file_name, max_retries=1) # Had to remove mp3=True

# This would produce a file called {video title}.mp3

It worked normally here, try this way

from pytubefix import YouTube

file_name = "test"

yt = YouTube("https://www.youtube.com/watch?v=j48Uhvc_hlk")

ys = yt.streams.get_audio_only()

DOWNLOAD_PATH = "pass the way here"

ys.download(output_path=DOWNLOAD_PATH, filename=file_name, max_retries=1, mp3=True)

# This would produce a file called test.mp3


Update VirgilE3Kit

The VirgilE3Kit dependency is outdated, causing some errors while compiling and also not allowing the Flutter version to have the latest in terms of features, security patches, etc.
In my case, I was experiencing this issue https://github.com/VirgilSecurity/virgil-crypto-x/issues/33, updating the version fixed the problem.

Hi @HSCOGT, please check recently released version, - https://github.com/VirgilSecurity/virgil-e3kit-x/releases/tag/4.0.1

Hi @SergeySeroshtan, I just updated the version, new commit has been pushed.


Service Booking Enhancement to the Queue Management System

This issue has been auto-generated to facilitate questions about a paid opportunity that has just been posted on the BCDevExchange.To learn more or apply, visit the opportunity page. The opportunity closes on Monday, October 1, 2018.

This opportunity has been assigned

Thank you for all your work on this project.


schema.rb not representative of migrations?

Has schema.rb been updated to match all migrations? To take one example, this migration change
https://github.com/codeforamerica/ohana-api/blob/master/db/migrate/20140929221750_add_fields_to_organization.rb
doesnt match with the definition of the organization table:
  create_table "organizations", force: true do |t|
    t.text     "name"
    t.text     "urls"
    t.text     "slug"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

The schema is maintained in structure.sql, not schema.rb, because some migrations can't be recreated by Rails.
To verify this, what you could have done was go to any of our recent migrations, click on the commit next to it, and then look at the changed files. You would have seen that structure.sql was one of them.
Please try to keep GitHub issues to legitimate bugs. I'm going to create a Google group so that people can help each other out and answer questions like these because it's not scalable for me to respond to everything since I'm only working on Ohana in my spare time.

I really appreciate your responses and thanks for the clarification. Might
be good to capture in a wiki page which I will start if can gather enough
info. Would you also prefer to use a google group for feature suggestions?
What purpose does schema.rb serve in that case?

I think feature suggestions can stay here. A Wiki sounds great if you want to get that started. I don't think schema.rb serves a purpose anymore. It should be safe to remove, but I never did it probably because I wasn't sure if it would break anything.

In @pmackay's defense, schema.rb was last updated on the same day as structure.sql, so it's reasonable to think it was still in use in some way. :+1: to removing it.

Strange. I'm not sure why it was updated that one time. If you want to test that the installation instructions still work when you remove schema.rb, and then submit a PR, that would be fabuloso!

@monfresh it would be super helpful if you could post any pointers to reasons why you needed to use structure.sql (and schema.rb wasnt sufficient). I could then try to take this forward.

To test that the removal of schema.rb is safe, I would follow these steps:

Export your ohana_api_development DB so you have a backup: script/export_prod_db
Delete the dev DB: dropdb ohana_api_development
Clone the ohana-api repo in a new folder on your computer
Run bin/setup
Verify that you can run the app, and do the things mentioned in the installation instructions.

The technical reasons for using structure.sql are not necessary to know to test this, but if you're curious, I would recommend reading the Rails Active Record Migrations guide, specifically the section about Schema dumping.
The Rails Guides are a great source of information, but sometimes you're not exactly sure which guide you want. In that case, there's always Google :smile:  A search for "rails structure.sql" will most likely bring up the pertinent Rails Guide.

@monfresh thanks for this!
Re the Rails guides, I had looked up some general info. In reference to this:

There is however a trade-off: db/schema.rb cannot express database specific items such as triggers, stored procedures or check constraints. While in a migration you can execute custom SQL statements, the schema dumper cannot reconstitute those statements from the database. If you are using features like this, then you should set the schema format to :sql.

I was wondering was what it specifically about the Ohana project that required using the :sql format instead of :ruby?

When I'm trying to find my way around code that I'm not familiar with, I use a combination of GitHub's search, text editor search, and git log search. In this case, given that paragraph you quoted, here are some of the things I would try:

Search for "sql" in the ohana-api repo
The first result shows you the migration that executes custom SQL. This is what powers the full-text search.

The Rails guide also mentions "triggers". If you search for "trigger", you'll also find that migration.

Search for structure.sql using git log -S structure.sql. This will show you the commits that contain that search term:

commit 52dd99fbe955490a6959b4404998b3984835ff36
Author: Moncef Belyamani <giter@done>
Date:   Fri May 9 20:45:50 2014 -0400

    Replace Elasticsearch with Postgres full-text search. Fixes #139

You can then visit that commit on GitHub by adding the first few characters of that commit's SHA to the end of https://github.com/codeforamerica/ohana-api/commit/:
https://github.com/codeforamerica/ohana-api/commits/52dd99
and then look through the file changes.

Our API documentation is also a good resource. The Search Locations section explains how full-text search when you use the keyword parameter, and links to the migration that sets up the tsvector column.

For more information on Postgres full-text search, here are some resources that helped me implement it (in no particular order):
http://altoros.github.io/2013/implementing-and-improving-postgresql-fulltext-search/
http://blog.lostpropertyhq.com/postgres-full-text-search-is-good-enough/
http://shisaa.jp/postset/postgresql-full-text-search-part-1.html
http://railscasts.com/episodes/343-full-text-search-in-postgresql?view=asciicast
http://linuxgazette.net/164/sephton.html
Do you think the info in the past few comments is worth putting in a Wiki?


⚠ Bofrost.de has degraded performance

In 55d3a07, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1411 ms

Resolved: Bofrost.de performance has improved in 5d70450 after 6 minutes.


中文显示正常，输入中文不能正常显示（方块）

运行一切都正常，感谢作者分享，非常好的东西！
不过输入中文后显示不正常，无论输入什么只显示格子
输入法：搜狗
字体：Win字体全集

I have also run into this issue serval times, the reason is unknown for me.
However, it is very easy to fix for me: just exit the WeChat then relaunch it. Most of the time it should be OK.

感谢！重新启动就可以了，非常棒的盒装微信！很感谢作者的分享

Glad to hear that, you are welcome!

I have a solution for this:
1.select a contact, and type some Chinese characters, it's block, then delete it.
2.select another contact, type Chinese characters will be ok.
but I notice you must type quickly, after a few minutes this will not take affect.

@wangyuhuiever Thanks for sharing the solution that you found, I definitely would love to try it next time!

确实如此，按照您的方法可以解决此问题

@huan I found the method can't take affect after screen sleep and wake up again

same problem, and same sogou input method on Ubuntu 16.04
even exit and relauch from command line, wont fix

Same problem on Ubuntu 18. I can't fix it with the methods mentioned above.

Same here. Ubuntu 20.04, wechat version <IP_ADDRESS> and <IP_ADDRESS>

Same problem on 16.04, can't fix with the methods mentioned above.

同样的问题。 OS: Manjaro Linux x86_64  Kernel: 5.6.16-1-MANJARO  DE: GNOME

同样的问题在Arch, 就之前莫名好过一次，开了很久之前还是方块，等着老长一段时间再去打字发现正常了。


Strange hlint message

I discovered some strange message from hlint in the Notebook while playing with some code.
When I type
sn = (round $ sqrt $ 2545)

hlint discovers the unnecessary brackets and dollar sign. Though, the error message is a bit wrong:
Redundant bracket
Found:
(round sqrt sqrt  2545)
Why Not:
round sqrt sqrt  2545

Redundant $
Found:
sqrt $ 2545
Why Not:
sqrt 2545

Obviously, the part $ sqrt $ gets replaced by sqrt sqrt. Passing this line directly to hlint produces the desired output.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Confirmed. Strange. I wonder if this has something to do with MathJax or something...

Closed by #1111.


[Bug]: Next.JS app on coolify fails to send network requests

Is there an existing issue for this?

[X] I have searched the existing issues

Example public repository
No response
Description
I'm using a nextjs app on coolify. The app works completely fine on vercel and locally. The API routes work fine on vercel, locally, and coolify as well when I test them in postman. When I submit a post request via the frontend (react) the browser sends nothing. No errors are thrown nor any attempts are made... it's very strange.... I have a video showing what happens:
https://user-images.githubusercontent.com/19254314/213605293-e0a735d4-d3d3-4729-9770-f09398316a59.mp4
The dots you see are in a loading state. It's waiting for the post request to be sent. It continues loading since it is never sent...
Steps To Reproduce

Create a next app
Deploy on coolify
Send a post request from frontend to next's API folder
See in the network tab that nothing is sent

Version
3.12.14

@andrasbacsai do you know if this has something to do with next.js having a backend and frontend on the same instance?

@andrasbacsai @vasani-arpit found out the issue came from using a public env variable via process.env.NEXT_PUBLIC. Seems like NEXT_PUBLIC envs conflict with the dotenv package. Is that something included in node_modules on deploy?


Value passed for token in Next.js app is Invalid

I am using the twitter api sdk in a Next.js server-less function and I am currently creating a new twitter Client on each request, which works for the first request but fails every time after until I get a new access token.
Expected behavior
I expect to be able to make multiple requests with the Twitter API without having to re-authenticate and get a new API Access Token.
Actual behavior
Step 1 - Authenticate

Using Next.JS's next-auth package, I authenticate with the Twitter API and store the access and refresh tokens in a JWT.

Step 2 - Use Next.js server-less function to create Twitter Client and make a request

I then make a request to the next.js server-less function which get the users JWT, grabs the needed information (tokens, scope, etc.), and makes the request to the Twitter API

export default async function twitterTweet(req: NextApiRequest, res: NextApiResponse) {
	const session = await getSession({ req });
	const token = await getToken({ req, secret: process.env.NEXTAUTH_SECRET });

	if (!session) {
		return res.status(401).end('Not authenticated');
	}

	const tokenInfo = hasTwitterConfig(token) ? token : null;
	if (!tokenInfo) {
		return res.status(400).end('Access token not provided');
	}

	const twitterClient = initTwitterClient(tokenInfo.twitter);

	const tweet = await twitterClient.tweets
		.createTweet({
			text: 'This is a test tweet',
		});

	return res.status(200).json(tweet);
}

Step 3 - Encounter error after making one request

I am able to successfully complete the above request one time with no issues and I am able to create a tweet. However, if I try and do it again, there is an error thrown by the Twitter SDK indicating an issue with the token (even though it just worked)

error - TwitterResponseError
    at request (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/request.js:67:15)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async rest (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/request.js:100:22)
    at async OAuth2User.refreshAccessToken (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/OAuth2User.js:67:22)
    at async OAuth2User.getAuthHeader (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/OAuth2User.js:208:13)
    at async request (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/request.js:48:11)
    at async rest (/Users/jack/code/threadifier/node_modules/twitter-api-sdk/dist/request.js:100:22)
    at async twitterTweet (webpack-internal:///(api)/./pages/api/twitter/tweet/all.ts:32:19)
    at async Object.apiResolver (/Users/jack/code/threadifier/node_modules/next/dist/server/api-utils/node.js:363:9) {
  status: 400,
  statusText: 'Bad Request',
  headers: {
    'cache-control': 'no-cache, no-store, max-age=0',
    connection: 'close',
    'content-disposition': 'attachment; filename=json.json',
    'content-encoding': 'gzip',
    'content-length': '103',
    'content-type': 'application/json;charset=UTF-8',
    date: 'Sun, 04 Dec 2022 20:52:24 GMT',
    perf: '7626143928',
    server: 'tsa_b',
    'set-cookie': 'guest_id_marketing=v1%3A167018714457757711; Max-Age=63072000; Expires=Tue, 03 Dec 2024 20:52:24 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None, guest_id_ads=v1%3A167018714457757711; Max-Age=63072000; Expires=Tue, 03 Dec 2024 20:52:24 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None, personalization_id="v1_3Yqtlpgf4Rlqo2sBprv9Cw=="; Max-Age=63072000; Expires=Tue, 03 Dec 2024 20:52:24 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None, guest_id=v1%3A167018714457757711; Max-Age=63072000; Expires=Tue, 03 Dec 2024 20:52:24 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None',
    'strict-transport-security': 'max-age=631138519',
    'x-connection-hash': 'ae9d1813834f482cc556e67b27eb51207eb17eeb2f9888e0c8f3cbbb8a19ce80',
    'x-content-type-options': 'nosniff',
    'x-frame-options': 'SAMEORIGIN',
    'x-response-time': '17',
    'x-transaction-id': '5d99f8a156f432bc',
    'x-xss-protection': '0'
  },
  error: {
    error: 'invalid_request',
    error_description: 'Value passed for the token was invalid.'
  },
  page: '/api/twitter/tweet/all'
}

Steps to reproduce the behavior
Listed the steps above

I ran into this problem too. It happens because the authClient automatically exchanges both your access_token and refresh_token when you don't construct it with a value for expires_at.
After it exchanges your tokens, the ones you have saved in your app will be invalidated and invalid_request will be thrown the next time you create an authClient.
To avoid this problem, you have to make sure you update wherever you're storing your tokens when they change. Unfortunately this project doesn't provide a way to monitor the tokens out of the box, so you'll need a wrapper to keep track of changes.

So are you suggesting storing the access_token and refresh_token in the next-auth token?

I don't know the specifics about Next.js, but I decided to store mine in an encrypted session cookie. You just have to make sure your cross-request state is kept up to date.

So then you're saying that you set the access_token and refresh_token every time you use the authClient to make a request?

I didn't set the token every time because if you do (and don't provide a value for expires_at) you'll be unnecessarily sending token refresh requests on every API call. Once it's constructed the authClient is able to manage its own state fine, so I just wrote a wrapper around my Client which monitors its authClient and updates the user's session data when the token changes.

You have been very helpful so thank you for that @Th3Gavst3r !! Would you happen to have any sort of example code somewher you could point me towards though? I am struggling to figure out the abstraction to a wrapper around the authClient as it related to my specific use case within NextJS (but I think some type of example would be better than nothing).

Essentially, I just created a class that takes an authClient and tokenCallback as constructor parameters. Then I re-exposed the endpoint functions I needed for my app and ran the tokenCallback after every call.
// twitter-api-typescript-sdk does not expose a type definition for this
export interface Token {
  access_token?: string;
  refresh_token?: string;
  expires_at?: number;
}

export default class TwitterService {
  private token?: Token;
  private client: Client;

  constructor(
    private readonly authClient: OAuth2User,
    private readonly tokenCallback: (token: Token | undefined) => Promise<void>
  ) {
    this.token = authClient.token;
    this.client = new Client(authClient);
  }

  private async checkForUpdatedToken(): Promise<void> {
    if (this.authClient.token !== this.token) {
      this.token = this.authClient.token;
      await this.tokenCallback(this.token);
    }
  }

  public async findUserByUsername(username: string) {
    const usernameResult = await this.client.users.findUserByUsername(
      username,
      {
        'user.fields': ['created_at'],
      },
      {
        max_retries: this.MAX_RETRIES,
      }
    );
    await this.checkForUpdatedToken();
    return usernameResult;
  }
}

const token = getExistingTokenFromDatabase();
const myAuthClient = new auth.OAuth2User({
  ...
  token: token,
});
const twitterService = new TwitterService(myAuthClient, (token) => {
  saveNewTokenToDatabase(token);
});
const myUser = twitterService.findUserByUsername('Th3Gavst3r');


DropIn UI issue for iOS only

The UI is not acceptable for iOS.
Please check the screenshot.
We are using the latest package versions.

Any update?

if you're using iPad, then this must be the same issue as in share_plus plugin when raising the bottom sheet. iPad has a different mechanism. You have to give size to the popup explicitly.

The main issue is that we are not able to see the text and not able to close the pop up however it is working fine for android version.


Trigger Default Organization Settings

At the moment we trigger the instance settings when a user opens up the ZITADEL login. As a user is always bound to a organization, it doesn't really make sense to trigger the instance settings.
Per default the settings (login and branding) of the default organization should be shown.
Acceptance Critiera

[ ] Trigger login settings of the default organization
[ ] Trigger branding settings of the default organization
[ ] Users with other usernames should still be able to login they will be redirected to the next screen of their organization
[ ] All settings should be taken from default org (password, domain settings)
[ ] Restriction of users only happens when organization scope is sent

Use Cases:
B2B&B2C

B2C Organization as Default (e.g Username/Password & Google Login)
b2B with Azure AD

Given I have only one organization BETA (beta.com), and
Given on Beta is an external IdP (Okta) configured,
When a user comes to the login screen,
Then they get redirected to Okta for authentication
Given I have an org BETA (beta.com) and an org CIAM (no domain), and
Given on BETA is an external IdP (Okta) configured, and
Given CIAM is marked as the default organization,
Given domain discovery is default (enabled),
When a user comes to the login screen,
Then they get the login screen with the policies of CIAM
AND
When the user enters<EMAIL_ADDRESS>as email,
Then they get redirected to Okta (from BETA login policy)
Given I have an org BETA (beta.com) and an org CIAM (no domain), and
Given on BETA is an external IdP (Okta) configured, and
Given BETA is marked as the default organization, and
Given domain discovery is default (enabled),
When a user comes to the login screen with the domain scope of CIAM,
Then they get the login screen with the policies of CIAM

Great stuff! This will make it for sure easier to understand. Thanks.


regenerate go with codegen 0.5.1

Signed-off-by: stevelr<EMAIL_ADDRESS>

This is in draft. Iterating with Jordan on go sdks

@stevelr / @jordan-rash closing since it's been a while, is this still needed?

This is not needed... it was repeated in a different PR I'm pretty sure


Added support for pre-Vista Windows versions using GetTickCount

Added support for pre-Vista operating systems.
Elaborated on Cygwin hack.
Amended documentation.

Sorry for the delay. I finally got a Windows XP VM set up for testing this. It looks great; thank you.

Glad to have helped!
On Sat, Jan 16, 2016 at 7:54 AM Ori Livneh<EMAIL_ADDRESS>wrote:

Merged #14 https://github.com/atdt/monotonic/pull/14.
—
Reply to this email directly or view it on GitHub
https://github.com/atdt/monotonic/pull/14#event-516867907.


Use upbound.io in API Group

Description of your changes
This PR changes group from tf.crossplane.io to tf.upbound.io.
P.S: This PR is on top of #10
I have:

[x] Run make reviewable to ensure this PR is ready for review.

How has this code been tested
export UPTEST_CLOUD_CREDENTIALS=$(cat provider-terraform-credentials.env)
UPTEST_EXAMPLE_LIST=examples/workspace-inline.yaml make e2e

/test-examples="examples/workspace-inline.yaml"


Core multipart/mixed

This is the multipart/mixed support in azure-core.
Needed for storage batch, another PR:
https://github.com/Azure/azure-sdk-for-python/pull/7083

(message created by the CI based on PR content)

Forget about this PR, will do more focused PRs


🐞 [Bug]: Debugging experience is difficult

Contact Details
No response
What happened?
Actually since RestQA is compiled using esbuild, when an error occurred it's pretty hard to locate the issue.
Currently it sounds like the sourcemap is generated but not used while printing error on the console.
It would be great to start looking at how get more relevant errors.
Relevant log output
restqa ReferenceError: rogram is not defined
  restqa     at ytr (/Users/olivierodo/WORKS/restqa/restqa/packages/cli/dist/bin/restqa:688:3106)
  restqa     at Object.<anonymous> (/Users/olivierodo/WORKS/restqa/restqa/packages/cli/dist/bin/restqa:688:3145)
  restqa     at Module._compile (node:internal/modules/cjs/loader:1159:14)
  restqa     at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
  restqa     at Module.load (node:internal/modules/cjs/loader:1037:32)
  restqa     at Module._load (node:internal/modules/cjs/loader:878:12)
  restqa     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
  restqa     at node:internal/main/run_main_module:23:47 +0ms
ReferenceError: rogram is not defined

🙏 Would you be willing to submit a PR?
Yes
Code of Conduct

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

In order to reproduce the error:

replace the program by progra on the line https://github.com/restqa/restqa/blob/master/packages/cli/bin/restqa.js#L15
run cd packages/cli && npm run build
run DEBUG=restqa npm run example


Fixed typos in README

Codecov Report

Merging #154 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #154   +/-   ##
=======================================
  Coverage   99.68%   99.68%
=======================================
  Files           6        6
  Lines         322      322
  Branches       32       32
=======================================
  Hits          321      321
  Partials        1        1

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 ccf2ef8...fea4b00. Read the comment docs.


⚠ Processors has degraded performance

In c69f8af, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 50 ms

Resolved: Processors performance has improved in f67c703.

Resolved: Processors performance has improved in 92ab537.


All Tools doesn't work when the horizontal size class is compact

Steps to reproduce:

Open DevToys.swiftpm in Swift Playgrounds
Tap "All Tools" in the App Preview
Tap a button

Expected behavior:
The screen will transition.
Environment:

iPad Pro 12.9-inch 6th generation, iPadOS 16.5, Swift Playgrounds 4.3
iPhone XS, iOS 16.4.1

Logs:
A NavigationLink is presenting a value of type “Tool” but there is no matching navigationDestination declaration visible from the location of the link. The link cannot be activated.

Note: Links search for destinations in any surrounding NavigationStack, then within the same column of a NavigationSplitView.

Closed by 0b9cbf87c9f01853d5afc7347896f8b06204f188


Focus field after validation error

Hello,
After a validation, I try to focus the first field with an error.
Do you know a proper way to do this ?
Thanks.

You could monitor when submitFailed flips from false to true in componentWillReceiveProps and do the focus() there? But that will only work the first time.

You could monitor when submitFailed flips from false to true in componentWillReceiveProps and do the focus() there? But that will only work the first time.

or use returnRejectedSubmitPromise and catch it in the returned promise
On 1 January 2016 at 20:52, Erik Rasmussen<EMAIL_ADDRESS>wrote:

You could monitor when submitFailed flips from false to true in
componentWillReceiveProps and do the focus() there? But that will only
work the first time.
—
Reply to this email directly or view it on GitHub
https://github.com/erikras/redux-form/issues/488#issuecomment-168296587.

Yes, @kristian-puccio's idea is better.

@kristian-puccio solution only works for async validation, right ? Or I am missing something ?
To be honest I don't really understand the returnRejectedSubmitPromise property.
handleSubmit already returns a promise, right ?

I'm about to implement something similar in my own projects. I'll share how it goes.

Followup: I used returnRejectedSubmitPromise: true and got back the errors in my promise catch() block just fine.

Can you provide an exemple on how to use it please ?

I can give you some sudo code:
<form
autoComplete={false}
onSubmit={ e => {
handleSubmit(e)
.catch(errors => {  // if the errors isn't passed here you can always grab
it from props.errors.
    // errors is map of field name to error string. so you'll need a way to
find the first field in the screen that errored.
  //  have an array of the fields so I do this:

const widget = this.props.widgets.find( w => errors[w.Name] );
// Scroll to it. useing: https://github.com/fisshy/react-scroll
scrollTo(`widget_${this.props.viewerReference}__${widget.Name}`);

})
}}>

On 6 January 2016 at 20:25, Yoan Le Clanche<EMAIL_ADDRESS>wrote:

Can you provide an exemple on how to use it please ?
—
Reply to this email directly or view it on GitHub
https://github.com/erikras/redux-form/issues/488#issuecomment-169275267.

Thanks (both of you :))

FYI my solution for this looked like:
  componentWillReceiveProps(nextProps: Props): void {
    if (this.state.submitted && Object.keys(nextProps.errors).length) {
      // Force update so the errorMessage is definitely on the page
      this.forceUpdate(() => {
        ReactDOM.findDOMNode<HTMLElement>(this.refs.errorMessage).scrollIntoView()
        this.setState({ submitted: false })
      })
    }
  }

  handleSubmitClick(): void {
    this.setState({ submitted: true })
  }

....

 <SubmitButton label='Next step' onClick={this.handleSubmitClick} />

so basically keep track of whether the user has clicked submit with a flag, then in componentWillReceiveProps, check if the user has click submit and caused errors, and if so show the error message and reset the flag

You guys might be interested in v5.1.0.

Nice, thanks @erikras

I might be missing something, but it looks like onSubmitFailed is gone in v6. I'm looking for a way for my form to know there are submission errors, so that I can change field focus, but I'm not using the returned promise feature of onSubmit. Instead, I'm using the reducer plugin and creating the submitErrors state manually. The reason for this is that my onSubmit action creator is calling a saga that knows nothing about redux-form or promises, but does emit actions signalling success or failure. The reducer plugin is doing a wonderful job setting up the submission error state and clearing invalid field values as needed, and redux-form is displaying that modified state correctly. What I can't seem to do is set the field focus. Is the onSubmit promise mechanism the only callback currently implemented in v6?

@jcheroske You are correct that it is missing, but I plan on implementing it.

Fantastic!

A bit off-topic, but I'll sneak it in nonetheless...
Has the errors prop been implemented yet in v6?
Does a global error (_error) go under the submitErrors key just like all the other submit errors?

Another quick and simple solution for anyone struggling with this:
<Field name="email" className="emailField" type="text"/>
... and when you need focus:
document.getElementsByClassName('emailField')[0].focus()
or if you don't mind using jQuery... (if the shoe fits, wear it!)
$('.emailField').focus();

@FuzzySockets Additional information on #927.

Where to use onSubmitFail?
I tried it like this and it did't fire my console.log.
<form onSubmit={handleSubmit} onSubmitFail={() => console.log("failed")}>

@henrikra  I add onSubmitFail to reduxForm that did fire my console.log
export default reduxForm(
  {
    form: 'TaskEditForm',
    fields,
    validate,
    onSubmitFail:(errors)=>{console.log('failed')}
}

@kristian-puccio
<form
autoComplete={false}
onSubmit={ e => {
handleSubmit(e)
.catch(errors => {  // if the errors isn't passed here you can always grab
it from props.errors.
    // errors is map of field name to error string. so you'll need a way to
find the first field in the screen that errored.
  //  have an array of the fields so I do this:

i'm confused. I thought we must pass onSubmit either through a property to redux-form, or ,
<form  onSubmit={handleSumbit(e=>{
   //whatever
})}

the way you setup onSubmit seems to be different from what erika said...

@bochen2014 In V5 the handleSubmit that get passed to your form component returned a promise. This isn't the onSubmit that you pass to reduxForm, it's what reduxForm gives you

@kristian-puccio  thanks for your explainatin. I'm using v6 and it seems a bit different ;-)
btw, when you have time, if you can help me with issue #1875      that would be really nice ;-)

I used following code to focus on element... is this a correct implementation? Or maybe there is better way of doing this?
let Create = reduxForm({
    form: 'create', // a unique identifier for this form
    validate,
    onSubmitFail() {
      CreateValidationForm.focusOnMessage;
    }
})(CreateValidationForm);

const CreateValidationForm = React.createClass({

    focusOnMessage() {
      this.refs.error_message.focus();
    },

@tomduncalf @erikras any thoughts on implementing this behaviour as plugin to redux-form (or HOC, maybe)? Will be really useful! 😉

Here is how I scroll to the first element with an error:
handleSubmitFail = (errors) => {
  // Scroll to first error
  let key = Object.keys(errors).reduce((k,l) => {
    return (document.getElementsByName(k)[0].offsetTop < document.getElementsByName(l)[0].offsetTop) ? k : l;
  });
  window.scrollTo(0, document.getElementsByName(key)[0].offsetTop - 100);
}

From more than a year ago, I want to give a huge shout-out to @tomduncalf whose solution I keep coming back to every single time :)

I was using the Redux Form Wizard example here, where I split the form across multiple pages. So I had to tweak @joanrodriguez solution to first create a new object that only contained the erroneous fields that were in the current window.
Also, I ended up having to use scrollIntoView instead of window.scrollTo, since window.scrollTo wasn't working for me for some reason.
export default reduxForm({
  form: 'wizard',
  fields: KEYS,
  destroyOnUnmount: false, // Preserve form data
  forceUnregisterOnUnmount: true, // Unregister fields on unmount
  validate,
  onSubmitFail: e => {
    /*
     * Filters error list to only those in current window.
     * Alternative of scrollIntoView used to scroll to input field that failed validation
     *
     * Note: Since `window.scrollTo` does not work unable to implement scrollTo feature
     * Reference: https://github.com/erikras/redux-form/issues/488
     */
    let stageKeys = {};
    Object.keys(e).forEach(k => {
      if (document.getElementsByName(k).length) {
        stageKeys[k] = document.getElementsByName(k);
      }
    });
    let key = Object.keys(stageKeys).reduce((k,l) => {
      return (document.getElementsByName(k)[0].offsetTop < document.getElementsByName(l)[0].offsetTop) ? k : l;
    });
    // window.scrollTo(0, document.getElementsByName(key)[0].offsetTop - 100);
    document.getElementsByName(key)[0].scrollIntoView({block: 'start',  behaviour: 'smooth'});
  }

})(WizardFormFirstPage);


Vertical Board

Can you also add a Vertical direction as well? It is more convenient and useful that way. It will be very helpful.
Great package btw.

I don't plan on adding a vertical direction to this package but I did make a separate package for a vertical style BoardView.
Link: https://github.com/jakebonk/FlutterChecklistView
The structure of both are pretty similar so it should work just the same

Hi Jake,
Thanks a lot for letting me know about the other package. That is exactly what I was looking for. Thanks for your contribution to Flutter by creating awesome packages.


HL-318: salary benefit calculation for complex cases

Description :sparkles:
Issues :bug:
HL-318
Testing :alembic:
backend/benefit/calculator/tests/Helsinki-lisä laskurin testitapaukset.xlsx
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #486 (d5dc10f) into develop (9892f0f) will decrease coverage by 0.92%.
The diff coverage is 91.81%.

:exclamation: Current head d5dc10f differs from pull request most recent head 0830b5f. Consider uploading reports for the commit 0830b5f to get more accurate results

@@             Coverage Diff             @@
##           develop     #486      +/-   ##
===========================================
- Coverage    95.58%   94.65%   -0.93%
===========================================
  Files          201      156      -45
  Lines         7635     6269    -1366
===========================================
- Hits          7298     5934    -1364
+ Misses         337      335       -2

Impacted Files
Coverage Δ

...it/calculator/tests/test_handler_excel_examples.py
84.25% <74.07%> (-1.73%)
:arrow_down:

backend/benefit/calculator/models.py
96.89% <96.92%> (+2.16%)
:arrow_up:

backend/benefit/calculator/rules.py
97.67% <100.00%> (+5.67%)
:arrow_up:

backend/benefit/common/utils.py
86.30% <100.00%> (ø)

backend/shared/shared/audit_log/viewsets.py
46.96% <0.00%> (-43.94%)
:arrow_down:

backend/shared/shared/azure_adfs/views.py
41.17% <0.00%> (-41.18%)
:arrow_down:

backend/shared/shared/audit_log/audit_logging.py
76.59% <0.00%> (-21.28%)
:arrow_down:

backend/shared/shared/common/tests/conftest.py
87.87% <0.00%> (-12.13%)
:arrow_down:

backend/shared/shared/oidc/auth.py
81.48% <0.00%> (-1.86%)
:arrow_down:

...nd/benefit/calculator/tests/test_calculator_api.py
98.81% <0.00%> (-0.01%)
:arrow_down:

... and 64 more

Continue to review full report at Codecov.

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


[Feature][Ready for Review] Personal Access Tokens

Purpose
Add view for a (depth / API) user to generate personal access tokens. (see github's implementation for further explanation)
Changes

Model added
View added

Side Effects
None
Note

CAS changes went in already (h/t @icereval )

Testing

Create a private project (and make note of the pid)
Create (and make note of the token_id for) a personal access token
With cas running:

curl -v -H "Authorization: Bearer [token_id here]" -X GET -k https://<IP_ADDRESS>:8443/oauth2/profile
curl -v -H "Authorization: Bearer [token_id here]" -X GET http://<IP_ADDRESS>:8000/v2/nodes/[pid here]/

3.1) Sample expected responses:
~/D/osf.io ❯ curl -v -H "Authorization: Bearer d98974df78c649ae85d520c07c1379fa" -X GET -k https://<IP_ADDRESS>:8443/oauth2/profile
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
* Server certificate: <IP_ADDRESS>
> GET /oauth2/profile HTTP/1.1
> Host: <IP_ADDRESS>:8443
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Bearer d98974df78c649ae85d520c07c1379fa
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=UTF-8
< Content-Length: 57
<
* Connection #0 to host <IP_ADDRESS> left intact
{"scope":"osf.full_write osf.full_read","id":"hpn4b"}%

~/D/osf.io ❯ curl -v -H "Authorization: Bearer d98974df78c649ae85d520c07c1379fa" -X GET  http://<IP_ADDRESS>:8000/v2/nodes/f4h36/
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8000 (#0)
> GET /v2/nodes/f4h36/ HTTP/1.1
> Host: <IP_ADDRESS>:8000
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Bearer d98974df78c649ae85d520c07c1379fa
>
< HTTP/1.1 200 OK
< Vary: Accept
< X-Frame-Options: SAMEORIGIN
< Content-Type: application/vnd.api+json
< Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
< Content-Length: 1044
< Server: livereload-tornado
<
* Connection #0 to host <IP_ADDRESS> left intact
{"data":{"id":"f4h36","type":"nodes","attributes":{"title":"testproj","description":"","category":"project","date_created":"2015-10-20T15:26:12.149000","date_modified":"2015-10-20T15:26:12.149000","registration":false,"fork":false,"collection":false,"dashboard":false,"tags":[],"public":false},"relationships":{"children":{"links":{"related":{"href":"http://<IP_ADDRESS>:8000/v2/nodes/f4h36/children/","meta":{}}}},"contributors":{"links":{"related":{"href":"http://<IP_ADDRESS>:8000/v2/nodes/f4h36/contributors/","meta":{}}}},"files":{"links":{"related":{"href":"http://<IP_ADDRESS>:8000/v2/nodes/f4h36/files/","meta":{}}}},"node_links":{"links":{"related":{"href":"http://<IP_ADDRESS>:8000/v2/nodes/f4h36/node_links/","meta":{}}}},"parent":{"links":{"related":{"href":null,"meta":{}}}},"registrations":{"links":{"related":{"href":"http://<IP_ADDRESS>:8000/v2/nodes/f4h36/registrations/","meta":{}}}},"forked_from":{"links":{"related":{"href":null,"meta":{}}}}},"links":{"self":"http://localhost:8000/v2/nodes/f4h36/","html":"http://localhost:5000/f4h36/"}}}%

Deauthorize token through UI
Try to hit either endpoint above again

5.1) Expected response:
~/D/osf.io ❯ curl -v -H "Authorization: Bearer d98974df78c649ae85d520c07c1379fa" -X GET -k https://<IP_ADDRESS>:8443/oauth2/profile
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
* Server certificate: <IP_ADDRESS>
> GET /oauth2/profile HTTP/1.1
> Host: <IP_ADDRESS>:8443
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Bearer d98974df78c649ae85d520c07c1379fa
>
< HTTP/1.1 401 Unauthorized
< Content-Type: application/json; charset=UTF-8
< Content-Length: 67
<
* Connection #0 to host <IP_ADDRESS> left intact
{"error_description":"Invalid Access Token","error":"unauthorized"}%

Try to hit an endpoint that a token doesn't have access to
6.1) In this case, a token with osf.users.all_read doesn't have access to view a node:

~/D/osf.io ❯ curl -v -H "Authorization: Bearer f04afa93c7b2473780a46624d299ecf0" -X GET http://<IP_ADDRESS>:8000/v2/nodes/f4h36/
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8000 (#0)
> GET /v2/nodes/f4h36/ HTTP/1.1
> Host: <IP_ADDRESS>:8000
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Bearer f04afa93c7b2473780a46624d299ecf0
>
< HTTP/1.1 403 FORBIDDEN
< Vary: Accept
< X-Frame-Options: SAMEORIGIN
< Content-Type: application/vnd.api+json
< Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
< Content-Length: 76
< Server: livereload-tornado
<
* Connection #0 to host <IP_ADDRESS> left intact
{"errors":[{"detail":"You do not have permission to perform this action."}]}%

Associated UI
List view:

Create:

Just Created:

Edit existing (note lack of token_id):

[#OSF-3138]

As part of your testing notes, can you include any sample code that you used in order to verify that these tokens work and can be used to make requests?

Testing notes added.

After discussions today: This PR may (potentially) be useful for OSF offline, and since I needed to review something authentication related for that, I went ahead and made some initial comments here to get the party started.
This isn't a full review, but enough comments to get a discussion started. Some questions in particularly on model fields (possible CAS implications?) and scope names, plus misc other cleanup. I didn't look at the front-end code, so this remains open for CR1 while these items are being addressed.
Point contacts to assess relevance for OSF offline are @chennan47 and @himanshuo .

On the page when tokens are generated/displayed, please also add language warning the user to protect these tokens. It should state that:

Personal access tokens are a special type of OAuth token that never expires
These tokens should never be shared with others. If they are accidentally revealed publicly, they should be deactivated immediately.

There appears to be some lag between creating a PAT and being able to delete it.

All the other information icons have a space inside the label, before the icon, after their text label. Might be worth adding one to Token name just for consistency.

Deletion delay is a known CAS issue. It just takes about a minute for CAS to populate that data. IIRC this is for optimization purposes. Adding a fix is out of scope for this PR, it would need to change on the CAS side of things.

I think you need to add your new scopes to https://github.com/CenterForOpenScience/osf.io/pull/4484/files#diff-5166cd641d25178b25685be5565fb77cR86 the FULL_READ and FULL_WRITE composed scopes, respectively.

Stealing a POST body generated by the JS, I edited the scope as such:
{"data":{"id":"563920a168732dcfd579b6d7","type":"tokens","attributes":{"name":"admin scope","owner":"8hbdq","scopes":"osf.admin_level","token_id":"UDIlB2GB7w5fVLmhvWzecgAI6WEYh17Z5ziRYsEOIklmCe3hd3dTlSkSBnVFTgRDukIxfD"},"links":{"self":"http://localhost:8000/v2/tokens/563920a168732dcfd579b6d7/","html":"http://localhost:5000/settings/tokens/563920a168732dcfd579b6d7/"}}}

Then I passed the value of my session cookie and it created a token with admin_level scope. :fearful:

No pagination in the UI. I have 206 tokens (showing off) and I only see ten.

There's no pagination for dev apps either. It shouldn't be a blocker for this, given the need to have OSFO be able to authenticate.
Tested out the ordering suggestion, that causes it to be ordered by ASCII value (e.g. {0: "Uppercase", 1: "lowercase"} ). We can cross this bridge when pagination is crossed.
Patched the admin scope issue, good catch.
There was an error in oauth_scopes.py, but they shouldn't go in FULL_*, it should be part of the admin privileges.
Generalized token revokes in a way that won't break existing applications PRs (of which there's at least one), full generalization can happen separately.
Tests added to make sure .url won't break silently.
Form spacing normalized.

Nice! Thanks @mfraezz

Can someone file a followup ticket about the lack of UI pagination (for both of these)? That's a good point, even if creating 206 tokens is a bit... nuts.

I was making one right now, I'll link it to the ticket for this

I was testing the admin scope bug, zealously. ;)
On Tuesday, November 3, 2015, Andy Boughton<EMAIL_ADDRESS>wrote:

Can someone file a followup ticket about the lack of UI pagination (for
both of these)? That's a good point, even if creating 206 tokens is a
bit... nuts.
—
Reply to this email directly or view it on GitHub
https://github.com/CenterForOpenScience/osf.io/pull/4484#issuecomment-153544173
.

Patched the admin scope issue, good catch. Will now raise 400 if admin scope is passed in.

Excellent catch. Building on that, I suggest that the full check be as follows:

The scope name must be present in public_scopes (which is the list of recognized scopes that can come from CAS)
The particular entry in public_scopes must have the is_public flag set to True (meaning it as allowed to be requested by outsiders)

And yes, I'm aware of the irony of an is_public flag in public_scopes.

There was an error in oauth_scopes.py, but they shouldn't go in FULL_*, it should be part of the admin privileges.

Correct! The "full" scope is what you will allow an outsider to do with your account. (and an outsider had better not- EVER- be creating personal access tokens) For perspective, the "osf.admin" scope is reserved for total access to your account- "god mode", which we currently don't even allow in production.

The placement/text of this error message is not intuitive, but that can be dealt with later.

I'm not 100% clear on the mechanism by which CAS converts our tokens into something "real", but it may block the user from editing the list of scopes assigned to a token.
I just tested this using a nodes-only scope, using the token, then trying to add user permissions and waiting 3 min... my token did not allow me to access the /users endpoint.
For now I suggest simply disabling edits on the checklist, so that the detail page becomes information-only. (ideally we'd also fix this in the serializer on the backend, but I realize we may need to move that to a followup ticket due to time restrictions)
Worst-case scenario is a confused user. Inconvenient but not destabilizing.

As a separate ticket, the scope descriptions should probably be reviewed (for anything intended to be available in production)... the granular scope descriptions are probably out of sync with reality by now. :)

Is that covered by https://openscience.atlassian.net/browse/OSF-4912 ?

Is that covered by https://openscience.atlassian.net/browse/OSF-4912 ?

The description on that ticket is pretty vague (and the ticket is marked as closed), so I'm not really sure. Otherwise it's as logical a place as any to note what needs doing.

CR2 pass complete. A few small code cleanup and unit tests requested.
Also two larger questions involving CAS behavior when a token is deleted/edited. Those are the main blockers for targeted action; if we're under a deadline we can move the rest to other tickets later.

There were a bunch of subtasks to that task that are the open things, but they've been moved:
https://openscience.atlassian.net/browse/OSF-4949
https://openscience.atlassian.net/browse/OSF-4950
https://openscience.atlassian.net/browse/OSF-4951
https://openscience.atlassian.net/browse/OSF-4952
https://openscience.atlassian.net/browse/OSF-4953
https://openscience.atlassian.net/browse/OSF-4954
I think the roll up has the best description, but it's essentially, "Make these scopes active outside of dev only including updating descriptions."

I think I know how to resolve the issue regarding updating scopes, and I addressed your question regarding errors/handling.

I think the roll up has the best description, but it's essentially, "Make these scopes active outside of dev only including updating descriptions."

Thanks for the note on ticket. I've gone ahead and reopened the ticket, with an expanded description that doesn't just live inside our heads. (if we want the work to get done, and reviewed correctly, it really helps to be explicit about the requirements.)

Future note: much of the creation success message text should be at the top of the page and displayed at all times. (it's general help text rather than related to the event itself)

CR2 pass complete. Other than copy.deepcopy, no further requirements from me. Any remaining UI quirks I noted can be moved out to a followon ticket to expedite osf offline development.

CR2 done.

The failing test doesn't appear to be related to this PR. Confirmed all tests passed when run on my local machine with a new copy of this branch.


This plugin is really cool! Unfortunately, it doesn't work with ELLA. Do you have any plans to update it in the future?

same require


Build archaius-scala properly and support Scala 2.12

Upgraded Gradle to 3.5 (can't build with <= 2.4)
Updated Netflix Dependencies to latest version to support Gradle 3.5
Added 2.11 & 2.12 build step with proper Scala naming of library
Disabled JavaDoc linting tasks that is enabled by default on Java8
Upgraded scalatest to 3.0.2 and adapted tests

Pinging @gorzell @elandau. Any feedback or can you merge this?
Scala 2.12 is out for 10 months now and archaius-scala doesn't work on it in it's current state.

@mfulgo do we have plans to merge this

@smanikim - I'm not sure. Maybe try bringing it to the attention of a maintainer.

thanks @mfulgo
@elandau @gorzell  do we have plans to merge this

Hi there,
We also use the library in our project. We started migration to scala 2.12 and get binary incompatibility.
@Landau @gorzell @qiangdavidliu is there any chance to get it merged and released? We would really appreciate that.

@gorzell Thanks for the review. I honestly don't remember exactly why I made these changes 2.5 years ago. The changes to the .gitignore are because of cross-builds. 2.10 and 2.11 can probably be skipped from building today entirely.
For the signature, I think I just wanted to eliminate the double defaulting of the callback, once in the definition of the class and then in the overridden this, so I just made it two different constructors. Purely stylistic change if I remember correctly and can be ignored if desired.

Closed because 1.x is no longer maintained and 2.x does not have scala bindings.


Any ability to add more sources?

This is fantastic, and thank you for making this.
On the configuration page, would it be possible to add more sources (eg. TVDB), that allows us to add the endpoint, relevant, server types, and API etc?

Thank you for your support. The easiest way to add additional data sources is by adding a JSON configuration file in the 'scrapeflows' folder, following the format of the existing implemented data sources. Implementing such functionality on the web configuration page seems overly complex and unnecessary for a simple plugin like this.

Hey, i've try understand what i need to change on json files to add a new source but... I don't quite understand some points:

the first 'http' component, you request a page or a media ?
after that, what do you collect? I mean... can you explain this to me? "collect": {       "source": "metadata",       "into": {         "ids": "['xp_texts', './results//id']"       }     }
For all collected elements... what is "['xp_text', './title']" ?

Btw it's just super cool that you made this plugin ^^

@TheMizuchi
The first key of each child node under the steps object in the JSON file is the name of function to use, which corresponds to the Python files under the /scraper/functions path one by one.

key
file

http
/scraper/functions/request.py

collect
/scraper/functions/collect.py

loop
/scraper/functions/loop.py

retval
/scraper/functions/retval.py

So, an http key means executing the request.py function once, a collect key means executing the collect.py function once, and so on.
The request.py only does one thing, which is to send a request and put the response into the context.
The collect.py is a little more complicated. It will get the specified source from the context, and then do some processing on it, finally put back the result into the context. Expressions like ['xp_texts', './results//id'] is the processing part, which means using XPath expression ./results//id to find all matching subelements. (xp_ means XPath, re_ means regular expression)
For example:

source: context["metadata"] = { "results": [ { "id": 1, ... }, { "id": 2, ... } ] }
expression: { "collect": { "source": "metadata", "into": { "ids": "['xp_texts', './results//id']" } } }
result: context["ids"] = [ "1", "2" ]

PS: I use XPath to process JSON by converting the JSON object into XML format since Python doesn't natively support JSONPath.


fix: order asset probes by probe timestamp

Prefer asset probe timestamp over the timestamp when probe was created in the system.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 86.023%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5213

Relevant Lines:
6060

💛  - Coveralls


Add github action CI for uploading to codecov

Follow-up to #254 submitted from origin

ruby is inserting the following text into all printouts from the ign tool, which causes a UNIT_ign_TEST failure:
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated

lcov: ERROR: no valid records found in tracefile coverage.info

I'm able to reproduce the problem with lcov after upgrading gcov to 7.5.0

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@f5c88a9). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #255   +/-   ##
=========================================
  Coverage          ?   86.45%
=========================================
  Files             ?       59
  Lines             ?     9051
  Branches          ?        0
=========================================
  Hits              ?     7825
  Misses            ?     1226
  Partials          ?        0

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 f5c88a9...fd20329. Read the comment docs.

ok I think this is finally working and ready for review

after this is merged, we can consider adding coverage checks to the build status

Oh I just realized we should remove this file:
https://github.com/osrf/sdformat/blob/c6dac91c7845b0c45611e4db338e240bd86049d8/codecov.yml#L1-L2
It was only needed with mercurial because the main branch defaults to master.

While porting this to Ignition, I thought it would be nice to reduce duplication, so I came up with an alternative approach on #266. Let me know what you think.

Oh I just realized we should remove this file:

removed in a4fc1d7


perf(source): only filter up to 200 entries and dont use the cache

This PR changes the way get_entries works, but semantically it's still the same as before:

don't cache filtered entries. For Tailwindcss and others, this leads to lots of memory usage
always calculate filtered items on the fly, but stop once desired max_entries is reached
only re-calculate filtered entries when the context changes

Just my little thought: current implantation of limiting entries without pre-sorting is wrong and leads to suboptimal result candidates and early break of filtering seems to conflict with this. In the theory, all the entires should be done with filtering to yield the best candidates. However, by early break we'd gain huge performance improvement because the current fuzzy matching implementation is not efficient enough for some extreme cases. This might be a choice between correctness and performance.

@yioneko the current cmp implementation already does pre-filtering and only sorts the resulting entries.
But I do agree, that it would be better to include your changes as well, so that we can remove that 200 limit.
Maybe you should also open a PR with your async changes?

@folke What I meant is that sorting should be done before limiting to preserve entries with higher expectation, and this actually conflict with early break of breaking by max_items_count. The current implementaion (not including this pr) is actually wrong.

Maybe you should also open a PR with your async changes?

My changes are pretty hacky and should not be considered for merging. Also I don't have much time to work on formalizing it.

I can merge this for now. Do you have any work left to do?

Good to go!
I'll work on an async PR after this to further optimize the code.

Thank you~!


[BUG]

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
i wanna play with my friend and i try everything it doesnt starts, keeps giving me error even the roblox player app it says "another installation is downloading" smth like that and the error in bloxstrap says Signature does not match

https://github.com/pizzaboxer/bloxstrap/wiki/"Signature-does-not-match!"-error-when-launching-Roblox


Remove moot version property from bower.json

Per bower/bower.json-spec@a325da3

Please see #2569 and reach some kind of consensus with @laurelnaiad

Na. But consider that Bower may be under NPM anyway which is still something being discussed bower/bower#1520

Also their maintainer says they probably won't ever use it: http://stackoverflow.com/questions/24844901/bowers-bower-json-file-version-property

All right. Attached patch removes it along with the line in the release script that was responsible for updating it.


Add option to skip backups

Fixes #106

So I think a number of your PRs will be hard to merge since this one seems to contain all the changes made in the previous ones too. As opposed to having one PR for a single change. So if I want to take this change I would need to take the other ones too?
I'm trying to get these in soon, but I'm a little constrained on time at the moment...

Yeah, I'll rebase this one and get it with just the relevant change in. If you let me know which particular PRs you want to pull in next then I can clean them up.
My git skills are being usefully tested :)
There's also no rush on my part for pulling these in, I'm happy to use the fork for our conversion. I've probably got another 2 or 3 PRs that I plan to submit in total.

Yeah, I would say leave it like this for now, maybe make it compile with latest but then I’ll have to see if I can bring in everything in one go and maybe opt out of a few things. The way you’ve set it up though does make it relatively easy to fix the conflicts in all of them.
Give me a few more days and I will try to get back to it.


Integrate archiver

We need to think about the UI and can hide the UI for now until we figure it out. I reckon it'd be nice to merge this to force us to support this code-wise.
It changes dbPaused to be a metadata db in general for the dats we have on file, so if we decide to add other persistent options we don't end up having a ton of different toiletdb files.
Depends upon an update to toiletdb https://github.com/maxogden/toiletdb/pull/9/files

@karissa I think I'm missing the context here - why do you want to add this? I don't think I've seen any prior discussion about this on either IRC, Slack or previous issues - I'm a bit confused about the use case haha

Hey @yoshuawuyts ! This is so that users who want to have the full history of a dat are able to keep all of the previous versions (archiver-server does that). This is something that is a definite feature we've talked about making available in the desktop app as well as a cli daemon.
Future features will include also 'checking out' to a specific point in history and viewing diffs of history. We need to capture all of this in issues but its something we've talked about a bunch in user tests and in initial visions of the tool :)
This is why maybe the UI shouldn't necessarily include anything at the moment until we have some designs, but we should be making sure that our infrastructure is supporting this kind of thing so when we do automatic updates its not a pain. In the process of implementing I found that the dbPaused was an issue.
We could decouple that implementation from this PR though, if you think that would be a good idea.

Sweet! I'd agree that we should think about storing history sooner rather than later, since if we don't ship with that now then the history disappears.

This is so that users who want to have the full history of a dat are able to keep all of the previous versions (archiver-server does that).

AFAIK setting the storage option on createArchive is all we need to store the full history. So we could store it in the dat folder instead of a home dir. I'm not 100% on how replication for the history works.
Though I'm not clear how this will work for hyperdrive v8 (it may always store history now).

Future features will include also 'checking out' to a specific point in history and viewing diffs of history.

The new hyperdrive stuff makes it super easy to checkout history! See dat-yolo as an example (though mafintosh may show us something cooler tomorrow).

I think people will want to have the files and have copies of backups, and ideally those would be content addressed for diffing purposes (right?). Curious what the implications of hyperdrive v8 are, too, and excited about what @mafintosh is gonna show us

While it's great to have the archiver server module ready and so easy to integrate, I would think a better final implementation is archived by starting with the requirements and UX design first, and then letting the code follow along.
What about we keep this in a branch for now which we keep rebasing onto master to make sure it is still well integrated?
In that respect I think it would be great to land the dbPaused -> dbMeta refactor into master beforehand.

Though I'm not clear how this will work for hyperdrive v8 (it may always store history now).

As seen in yesterday's hacky hour demo hyperdrive 8 appears to have history built-in, so moving to the incoming upgrade should give us this for free I think

I would think a better final implementation is archived by starting with the requirements and UX design first

Yeah think that'd be the right approach for this; starting with design has been working rather well for our recent features - think it'd make sense to do that for this feature too


Support Python 3.X

In the context of #4, we realized that varlens failed to build on Travis/Python 3.4. Here are the logs from the build for the records: https://travis-ci.org/hammerlab/varlens/jobs/93808242
Ideally we should support both versions 2 and 3.

In addition to the usual python 3 sorts of issues, seems like matplotlib has started failing in a virtualenv on os X (?!):
http://matplotlib.org/devdocs/faq/virtualenv_faq.html
https://github.com/pypa/virtualenv/issues/54
https://github.com/pypa/virtualenv/issues/609
Looks like this is some sort of ancient issue that they decided to start hard-failing on now. Through some varcode dependencies we end up importing matplotlib, and that now throws an error.
======================================================================
ERROR: Failure: RuntimeError (Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/nose/failure.py", line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/nose/loader.py", line 420, in loadTestsFromName
    addr.filename, addr.module)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/imp.py", line 235, in load_module
    return load_source(name, filename, file)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/imp.py", line 171, in load_source
    module = methods.load()
  File "<frozen importlib._bootstrap>", line 1220, in load
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/Users/tim/sinai/git/varlens/test/test_variants.py", line 23, in <module>
    from varlens.commands import variants
  File "/Users/tim/sinai/git/varlens/varlens/commands/variants.py", line 22, in <module>
    from .. import variants_util
  File "/Users/tim/sinai/git/varlens/varlens/variants_util.py", line 20, in <module>
    import varcode
  File "/Users/tim/sinai/git/varcode/varcode/__init__.py", line 15, in <module>
    from .variant import Variant
  File "/Users/tim/sinai/git/varcode/varcode/variant.py", line 23, in <module>
    from pyensembl import (
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/pyensembl/__init__.py", line 19, in <module>
    from .ensembl_release import EnsemblRelease
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/pyensembl/ensembl_release.py", line 20, in <module>
    from .genome import Genome
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/pyensembl/genome.py", line 32, in <module>
    from .sequence_data import SequenceData
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/pyensembl/sequence_data.py", line 21, in <module>
    from skbio import read
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/__init__.py", line 14, in <module>
    import skbio.io  # noqa
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/io/__init__.py", line 225, in <module>
    import_module('skbio.io.format.clustal')
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/io/format/clustal.py", line 114, in <module>
    from skbio.alignment import Alignment
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/alignment/__init__.py", line 212, in <module>
    from ._alignment import Alignment, SequenceCollection
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/alignment/_alignment.py", line 21, in <module>
    from skbio.stats.distance import DistanceMatrix
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/stats/distance/__init__.py", line 194, in <module>
    from ._base import (DissimilarityMatrixError, DistanceMatrixError,
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/skbio/stats/distance/_base.py", line 14, in <module>
    import matplotlib.pyplot as plt
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/matplotlib/pyplot.py", line 114, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/Users/tim/sinai/git/datacache/venv-3.4/lib/python3.4/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module>
    from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

I see this failure too, Mac OS X 10.10.5 with brew installed python3 (python 3.5.0 from Sept 23rd 2015) running in a virtualenv. matplotlib 1.5.

Unit tests on py3 seem to be working now, although you will have to run nosetests with -s until this issue is fixed: https://github.com/pysam-developers/pysam/issues/219


Use sqlc instead of GORM

WIP: When finished this PR will completely replace the usage of GORM with queries generated by sqlc.
We have encountered numerous issues with GORM, so about time to do something about it.

Also worth mentioning is that most collections will be longer support pagination or custom sorting. Our data sets does not really have the need for this.
We can always add this later on when the need arises.

Resolves #18

Resolves #14


[bazel] Switch to bzlmod

This is the new and improved way to manage dependencies in bazel. It is the default in bazel 7.x but works fine with 6.x until we want to update to that.

Neat! Thank you. Let me check if Dependabot works with Bzlmod already, then it looks good to go if CI passes.

Yep should make keeping these updated much easier!

Thanks!


handle server side DESCRIBE

It was implemented on Scylla in:
https://github.com/scylladb/scylladb/pull/11106
scylla-cqlsh has the code to support it, but for now it's disabled for scylla, we need to find a way to identify the server side is supported
few options:

based on scylla version
trying it on server side and fallback to client side
scylla to introduce a feature flags on a virtual table ?

Bumped into this today.

@roydahan this is not exactly specific to our group, but I think whom could take it, would learn lots in the process.

@avelanarius FYI this task is something I'm not getting to, and it sound like a something the driver team might suited to handle.

few options:

based on scylla version
trying it on server side and fallback to client side
scylla to introduce a feature flags on a virtual table ?

I think "trying it on server side and fallback to client side" this make sense. I'm currently working on this issue (now only fixing tests which have hardcoded expected responses) and those are the reasons I listed:

The other possible solutions were rejected:

Based on Scylla version: would require ugly hard-coding of versions
Modifying Scylla to provide some indication that this feature is
enabled: Scylla 5.2 is already released without it, by implementing
it in another way, we'll get it out sooner
Do a trial "DESCRIBE" at the start of connection to detect if the
server supports it: if cqlsh ever supported connecting to multiple
nodes (right now it uses WhiteListRoundRobinPolicy) we would have
to do the check on all of the nodes in case a rolling upgrade is
currently occurring and some of the nodes don't support server-side
DESCRIBE.

Refs https://github.com/scylladb/scylladb/issues/14895 - maybe I'll adjust the cqlsh tests to be more lenient towards missing whitespace, but it should be fixed in Scylla nevertheless.

We should prioritize this (for https://github.com/scylladb/scylladb/issues/16482 , if we choose this path)

@avelanarius I moved it back to you since I saw you wrote you were working on this issue.
I'm not sure if you meant that you finished and bump into tests failures or started from the tests and stopped there.
In any case, https://github.com/scylladb/scylladb/issues/14895 is fixed now.
Let's get done with this one as well.

@roydahan - this went in without tests. In general, I'm not sure where's the CI for cqlsh and where are its own tests.

As part of the work in:
https://github.com/scylladb/scylla-cqlsh/pull/88
@sylwiaszunejko tested it with dtest, there is a whole integration suite there for cqlsh, also covering describe.
Also the unit tests and use integration tests in cqlsh repo are covering, and were refactored during the work ion that PR.

@roydahan - this went in without tests. In general, I'm not sure where's the CI for cqlsh and where are its own tests.

As part of the work in: #88
@sylwiaszunejko tested it with dtest, there is a whole integration suite there for cqlsh, also covering describe.
Also the unit tests and use integration tests in cqlsh repo are covering, and were refactored during the work ion that PR.

Great - thanks. I could not find the cqlsh tests.

@roydahan - this went in without tests. In general, I'm not sure where's the CI for cqlsh and where are its own tests.

As part of the work in: #88
@sylwiaszunejko tested it with dtest, there is a whole integration suite there for cqlsh, also covering describe.
Also the unit tests and use integration tests in cqlsh repo are covering, and were refactored during the work ion that PR.

If dtests are the only tests for clqsh, then perhaps cqlsh CI should run them automatically?


Change supporting document download to S3

Review app deployed to https://teaching-vacancies-review-pr-3502.london.cloudapps.digital

WIP PR has diverged from master in the meantime, better to just try again.


STORM-2200 [Storm SQL] Drop Aggregate & Join support on Trident mode

Dropping aggregate & join support based on discussion
These implementation will be reused when we introduce them again

Please note that this will only affect Trident mode: Standalone mode still supports aggregation & join.

STORM-1446 also addresses STORM-2200, so this patch doesn't need to be merged when STORM-1446 is merged earlier.

Just upmerged.

I'd like to get this merged before releasing 1.1.0 so that users don't experience existing features are dropped. If someone can take a look I'd really appreciate it.

+1


tmt tries to push to None when machine fails to boot

I have qcow2 which fails to boot. However I think tmt should detect the failure faster and shouldn't try to Push workdir to guest 'None'.
Final message is correct: Failed to boot testcloud instance (Instance tmt-013-CVawejsZ has failed to boot in 60 seconds).
In log.txt I see:
18:09:43         progress: booting...
18:10:46         Write file '/var/tmp/tmt/run-011/plans/default/provision/step.yaml'.
18:10:46         Write file '/var/tmp/tmt/run-011/plans/default/provision/guests.yaml'.
18:10:46     finish
18:10:46         workdir: /var/tmp/tmt/run-011/plans/default/finish
18:10:46         login: Starting interactive shell
18:10:46             Push workdir to guest 'None'.
18:10:46             Ensure that rsync is installed on the guest.
18:10:46             Execute command 'rpm -q rsync || yum install -y rsync' on guest 'None'.
18:10:46             Create the master ssh connection: ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentitiesOnly=yes -i /var/tmp/tmt/run-011/plans/default/provision/default/id_ecdsa -S /run/user/17062/tmt/tmpxzh7y3dj -MNnT root@None
18:10:46             Run command 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentitiesOnly=yes -i /var/tmp/tmt/run-011/plans/default/provision/default/id_ecdsa -S /run/user/17062/tmt/tmpxzh7y3dj root@None rpm -q rsync || yum install -y rsync'.
18:10:46             environment: None
18:10:50             err: ssh: Could not resolve hostname none: Name or service not known
18:10:50             Command returned '255'.
18:10:50         warn: Failed to push workdir to the guest.
18:10:50             Run 'bash' in interactive mode.
18:10:50             Execute command 'bash' on guest 'None'.
18:10:50             Run command 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentitiesOnly=yes -i /var/tmp/tmt/run-011/plans/default/provision/default/id_ecdsa -S /run/user/17062/tmt/tmpxzh7y3dj -t root@None bash'.
18:10:50             environment: None
18:10:53         login: Interactive shell finished
18:10:53             Close the master ssh connection.
18:10:53             Stopping testcloud instance 'tmt-011-fuOuZUxW'.
18:10:54         guest: stopped
18:10:54             Removing testcloud instance 'tmt-011-fuOuZUxW'.
18:10:54         guest: removed
18:10:54         summary: 1 task completed
18:10:54         status: done
18:10:54         Write file '/var/tmp/tmt/run-011/plans/default/finish/step.yaml'.

If Failed to boot testcloud instance is raised, guest is None because it is set via:

https://github.com/teemtee/tmt/blob/main/tmt/steps/provision/testcloud.py#L570 562	        try:
 563	            self._instance.prepare()
 564	            self._instance.spawn_vm()
 565	            self._instance.start(DEFAULT_BOOT_TIMEOUT * time_coeff)
 566	        except (testcloud.exceptions.TestcloudInstanceError,
 567	                libvirt.libvirtError) as error:
 568	            raise ProvisionError(
 569	                f'Failed to boot testcloud instance ({error}).')
 570	        self.guest = self._instance.get_ip()

And GuestTestcloud.start() is called by ProvisionTestcloud.go(),

https://github.com/teemtee/tmt/blob/main/tmt/steps/provision/testcloud.py#L299 298	        self._guest = GuestTestcloud(data, name=self.name, parent=self.step)
 299	        self._guest.start()

That is, if self._guest.start() fails start the guest, we should check guest is not None when invoking Guest.push().


[fix](inverted index change) fix update delete bitmap incompletely when build inverted index on mow table

Proposed changes
fix update delete bitmap incompletely when build inverted index on mow table
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


🐞 Bug : next button present on last page

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Issue: On the CircuitVerse website  https://circuitverse.org/?page=71117#recent, in the Recent Circuits section, the "Next" button is present even on the last page. However, since it serves no function on the last page, its presence might confuse users.
.
Steps To Reproduce
.
Expected Behavior
Remove the "Next" button when users are on the last page of the Recent Circuits section to provide a clearer and more intuitive user experience
Screenshots

Device Information [optional]
- OS:
- Browser:
- version:

Additional context
No response
Are you working on this issue?
Yes

@tanmoysrt Can you please review this  issue ?

Hi @Ashish12-tripathi don't remove buttons. It's already disable that my the style for disabled button doesn't differentiate for active button. You can update the style of Prev and Next button if disabled.

It will be solved in this issue #4754.

Hi @Ashish12-tripathi don't remove buttons. It's already disable that my the style for disabled button doesn't differentiate for active button. You can update the style of Prev and Next button if disabled.

okay got it...


[script] fix starting network manager

fixes #627

@bukepo , thread-1-2-backbone seems to be failing - I've re-run this a few times already, can you help take a look?

@bukepo , thread-1-2-backbone seems to be failing - I've re-run this a few times already, can you help take a look?

Should be due to that this PR incorrectly rolled back the openthread repo commit.


why can't translate the full sentence?

i want to translate the sentence
aa1="Do you want beneficial technologies being shaped by your ideas? Whether in the areas of mobility solutions, consumer goods, industrial technology or energy and building technology - with us,"
translator.translate(aa1, dest='zh-cn').text
but the result is only "你想要由你的想法塑造的有益技术吗？", only output the first sentences,is this api has the length limit?

Try using this branch: https://github.com/jonata/py-googletranslation
There's some issues with translating special characters that have been fixed there.
I had some Japanese sentences that were only partially translated with the main branch of this repo and work flawlessly with that branch.

Try using this branch: https://github.com/jonata/py-googletranslation
There's some issues with translating special characters that have been fixed there.
I had some Japanese sentences that were only partially translated with the main branch of this repo and work flawlessly with that branch.

I tried according to your suggestion,but there is an error:
Traceback (most recent call last):
File "C:/Users/MSA2SGH/Desktop/interview_docx_xlsx/jd_related/google_trans.py", line 8, in
from pygoogletranslation import Translator
File "C:\Users\MSA2SGH\AppData\Local\Programs\Python\Python36\lib\site-packages\pygoogletranslation_init_.py", line 6, in
from pygoogletranslation.translate import Translator
File "C:\Users\MSA2SGH\AppData\Local\Programs\Python\Python36\lib\site-packages\pygoogletranslation\translate.py", line 14, in
from pygoogletranslation import utils, urls
File "C:\Users\MSA2SGH\AppData\Local\Programs\Python\Python36\lib\site-packages\pygoogletranslation\utils.py", line 8, in
from googletrans.models import TranslatedPart
ImportError: cannot import name 'TranslatedPart'