detailed typography for numbers

style for oldstyle, tabular numbers etc. where appropriate.

lots of typography enhancements available, that may or may not be part of Bootstrap, reviewed at https://sparanoid.com/lab/opentype-features/

Here's why I'm not using Gill Sans (Tufte's choice) in my implementation.
For my body text I chose Merriweather in part because it supports slashed zeros and has both lining and oldstyle figures, along with some other nice OpenType features.
You can use a utility class like
.num {
 font-feature-settings:'onum', 'pnum';
 font-variant-numeric:oldstyle-nums proportional-nums;
}
.lining {
  font-feature-settings:'lnum', 'tnum';
  font-variant-numeric:lining-nums tabular-nums slashed-zero;
}
.ord {
  font-variant-numeric:ordinal;
}
to enable the features.

Do you use Merriweather Sans in your implementation, when sans type is needed?

I do, but only because I was already using Merriweather & it's a nice match — really just the path of least resistance. There are plenty of great sans typefaces out there, but Gill isn't one of them.
Gill does evoke a certain nostalgia whenever I see it and it's impossible for me to disassociate it from its history, but it just isn't legible enough to justify its use in any of my projects. The lowercase "L," uppercase "I," and numeral "1" are all too similar in appearance.

Agreed. For any kind of technical writing, or simply to avoid confusion, those letterform similarities are problematic.
For this project, I think a large set of glyphs and the more detailed OpenType features. How do the Merriweather faces perform in that regard?

Both versions — serif and sans — come in 2 weights & styles (text + bold, normal + italic) & have various alternate ligatures & other OT features. The serif style definitely supports slashed zeros + oldstyle and lining figures. The lining figures are also tabular, whereas the oldstyle figures are proportional.
They both have lots of glyphs — so many that you may want to subset if you primarily write in only one language.
You can see them in my Tufte adaptation here. I've attached my .SCSS for you to look at; it may help. Just delete the .txt file extension and Bob's your uncle.
style.max.scss.txt
I'm using Zach Leatherman's Critical FOFT with Data URI to speed page loads since my site is web-font heavy. If you look at my page source you can see that in action too. Spent the last couple of days writing code to automate implementing it but I've got a lot of work left on that.
Good luck!


App crashes when loading calendar

Hello,
Thank you for your lib. I comment my issue:
Currently, I'm using v7.1.4 of your lib with Carthage, Xcode 9.1, deployment version v9.1. I'm not using storyboard. I work with xib instead, and I have the following:

A pair for the SessionListViewController: SessionListViewController.swift and SessionListViewController.xib. This xib contains a CollectionView (class: JTAppleCalendarView) for the calendar.
A pair for the custom cell: SessionListCell.swift and SessionListCell.xib (class: SessionListCell). This xib contains the label for the day.

In SessionListViewController.swift I have the outlet for the calendarView (the collection view), and I implement the JTAppleCalendarViewDataSource / JTAppleCalendarViewDelegate methods via extension, as in your examples. Everything's fine so far.
However, I try to register the nib for my SessionCell.xib and the app crashes, giving this output:
libc++abi.dylib: terminating with uncaught exception of type NSException
This is my SessionListViewController.swift
import UIKit
import JTAppleCalendar

class SessionListViewController: UIViewController {

    // MARK: Properties
    let kDayCellNib = "SessionListCell"
    @IBOutlet weak var calendarView: JTAppleCalendarView!

    // View lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()

        // Registering your cell is mandatory
        let nib1 = UINib(nibName: kDayCellNib, bundle: nil)
        calendarView.register(nib1, forCellWithReuseIdentifier: SessionListCell.cellId)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

extension UIViewController: JTAppleCalendarViewDataSource, JTAppleCalendarViewDelegate {
    public func calendar(_ calendar: JTAppleCalendarView, willDisplay cell: JTAppleCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        let myCustomCell = cell as! SessionListCell

        // Setup Cell text
        myCustomCell.dayLabel.text = cellState.text

        // Setup text color
        if cellState.dateBelongsTo == .thisMonth {
            myCustomCell.dayLabel.textColor = UIColor.black
        } else {
            myCustomCell.dayLabel.textColor = UIColor.gray
        }
    }

    public func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: SessionListCell.cellId, for: indexPath) as! SessionListCell
        cell.dayLabel.text = cellState.text
        return cell
    }

    public func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy MM dd"
        formatter.timeZone = Calendar.current.timeZone
        formatter.locale = Calendar.current.locale

        let startDate = formatter.date(from: "2017 11 01")!
        let endDate = formatter.date(from: "2017 12 31")!

        // Only 1, 2, 3, & 6 are allowed for numberOfRows
        let parameters = ConfigurationParameters(startDate: startDate, endDate: endDate, numberOfRows: 6,
                                                 calendar: Calendar.current, generateInDates: .forAllMonths,
                                                 generateOutDates: .tillEndOfGrid, firstDayOfWeek: .monday)
        return parameters
    }

    func calendar(_ calendar: JTAppleCalendarView, willDisplayCell cell: JTAppleCell, date: Date, cellState: CellState) {

    }
}

And this my SessionListCell.swift:
import UIKit
import JTAppleCalendar

class SessionListCell: JTAppleCell {

    // MARK: Properties
    @IBOutlet weak var dayLabel: UILabel!

    static var cellId:String{
        get{
            return "SessionListCell"
        }
    }

    static var cellHeight:CGFloat{
        get {
            return 100
        }
    }

    // MARK: View lifecycle
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}

I've created another project from scratch following your Youtube tutorial with storyboard and it works fine. With the same v7.1.4 of your lib.
I attach some screenshots for the xibs.

Any idea of what it's happening?
Thank you,
David

There were problems about the outlet connection between the day label and the class managing the .xib. Xcode got crazy and did not notice that there were connected.
Thank you to a member from @patchthecode in gitter I could fix that issue.


New localization "ru"

Hi
I do not know how to add a language locale, so I will write here.
autofill-ru.txt

Added to the next version (however it may need updating)


Fix max blocksize used in cupyx.optimizing.optimize for HIP

This might fix unexpected test_optimize.py test failure found in:
https://jenkins.preferred.jp/job/chainer/job/cupy_stable/TEST=rocm-4-0,label=mnj-mi50/704/console#footer
06:47:37 cupyx_tests/test_optimize.py ..Fatal Python error: Aborted
06:47:37
06:47:44 Thread 0x00007f6ec62fa740 (most recent call first):
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupy/cuda/compiler.py", line 861 in _compile_with_cache_hip
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupy/cuda/compiler.py", line 458 in compile_with_cache
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupyx/time.py", line 158 in _repeat
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupyx/time.py", line 140 in repeat
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupyx/optimizing/_optimize.py", line 29 in objective
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/optuna/study/_optimize.py", line 213 in _run_trial
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/optuna/study/_optimize.py", line 163 in _optimize_sequential
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/optuna/study/_optimize.py", line 76 in _optimize
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/optuna/study/study.py", line 409 in optimize
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/cupyx/optimizing/_optimize.py", line 42 in _optimize
06:47:44   File "/usr/lib64/python3.6/unittest/mock.py", line 1014 in _mock_call
06:47:44   File "/usr/lib64/python3.6/unittest/mock.py", line 939 in __call__
06:47:44   File "/src/tests/cupyx_tests/test_optimize.py", line 194 in test_optimize1
06:47:44   File "/usr/lib64/python3.6/unittest/case.py", line 622 in run
06:47:44   File "/usr/lib64/python3.6/unittest/case.py", line 670 in __call__
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/unittest.py", line 321 in runtest
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_callers.py", line 39 in _multicall
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_manager.py", line 80 in _hookexec
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_hooks.py", line 265 in __call__
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 255 in <lambda>
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 311 in from_call
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 255 in call_runtest_hook
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 215 in call_and_report
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 126 in runtestprotocol
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_callers.py", line 39 in _multicall
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_manager.py", line 80 in _hookexec
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_hooks.py", line 265 in __call__
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_callers.py", line 39 in _multicall
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_manager.py", line 80 in _hookexec
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_hooks.py", line 265 in __call__
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/main.py", line 323 in _main
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/main.py", line 269 in wrap_session
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_callers.py", line 39 in _multicall
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_manager.py", line 80 in _hookexec
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pluggy/_hooks.py", line 265 in __call__
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 163 in main
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 185 in console_main
06:47:44   File "/tmp/.local/lib/python3.6/site-packages/pytest/__main__.py", line 5 in <module>
06:47:44   File "/usr/lib64/python3.6/runpy.py", line 85 in _run_code
06:47:44   File "/usr/lib64/python3.6/runpy.py", line 193 in _run_module_as_main
06:47:44 /src/.pfnci/linux/tests/_build_and_test.sh: line 30:  1363 Aborted                 (core dumped) python3 -m pytest "${pytest_opts[@]}" .

Jenkins, test this please


dash-svm-2022 #minor

Hi there,
I made an app and I think you may consider merging it into the project.
Thx
I don't quite understand what this means.

I've summarized the changes requested in the appropriate Streambed issue and confirm that they have been applied.

This is a 2022 replica of dash-svm. I used dash's recent new components and new features, and I've added new page elements.
And I also want to add grids and axes to the canvas, as well as a one-click clear button. But dash-canvas is a totally new component and I can't find where to start. I'm trying to write some client side callbacks to implement these, but not much progress. It would be nice if someone could help enhance this app. Then I can also learn something new from it.
App pull request

[x] This is a new app
[ ] I am improving an existing app (redesigns/code "makeovers")

About

Playground deployment URL (new version):
Current gallery app URL: (https://dash-svm-2022.herokuapp.com/)

Workflow

[ ] I have created a branch in the appropriate monorepo, and the
elements necessary for successful deployment are in place.
[ ] If the app is a redesigned and/or restyled version of an
existing gallery app, I've summarized the changes requested in the
appropriate Streambed issue and confirm that they have been applied.
[ ] If the app is on the Dash Gallery portal, I have added a link to
the GitHub repository for the source code in the portal description.
[ ] If the app is a reimplementation of a Python gallery app for the
DashR gallery, the app in this PR mimics, as closely as possible,
the style and functionality of the existing app.=
[x] I have removed all Google Analytics code from the app's
assets/ folder.

The pre-review review
I have addressed all of the following questions:

[ ] Does everything in my code serve some purpose? (I have removed
any dead and/or irrelevant code.)
[ ] Does everything in my code have a clear purpose? (My code is
readable and, where it isn't, it has been commented appropriately.)]
[ ] Am I reinventing the wheel? (I have used appropriate packages to
lessen the volume of code that needs to be maintained.)

Post PR (at merge time)

[ ] When you are merging, make sure to write one of the following tags in the commit message (or it will default to patch):

#patch - An app has been updated or fixed
#minor - A new app has been added, or an app has been significantly reworked
#major - Breaking changes, make sure to discuss with dash-core before using this tag

Hi, I would also like to know is there any way to prevent the users from drawing lines in the canvas.

@IcToxi this looks great! Thanks so much for your contribution, in fact rather than a new app I'd suggest we use your app to replace dash-svm.
One thing to note though, we've more or less stopped recommending dash_canvas since most thing you can do there can also be accomplished with dcc.Graph - and dcc.Graph can do so much more. Per the dash canvas docs page:

Note: dash-canvas is a legacy package, the recommended way to annotate images is to use the drawing tools of plotly figures.

That said I'm not sure that the techniques described in https://dash.plotly.com/annotations are exactly what you'd want for this purpose... the super-cool point drawing feature you added would really be best handled not by drawing shapes, but by generic click events that cause a data point to be added to a trace. That in turn would be best done with "click anywhere" which is a feature we've been trying for some time to add to plotly.js but the PR to add it has stalled and needs some more work.
So maybe best to leave dash_canvas here, and we can update to dcc.Graph once we manage to finish up click anywhere. There might be a way to pretend we have this feature, by for example putting a heatmap or image on the graph and grabbing click events from the heatmap... if you're feeling really adventurous you could try that.
To your question about streambed - don't worry about it, that's a private Plotly repo, those instructions were meant for Plotly employees and don't apply to you. We're just thrilled that you're contributing here!
cc @danton267 who's starting a project to update many of the apps in this repo - keep an eye on this PR, and leave dash-svm off your list until this PR is merged 😄

Hi @alexcjohnson ,
Really appreciate the reply. I'm sorry I missed such a note. I was also thinking about whether canvas could do some interaction with other graphs, and then actually your team was already doing it. Awesome!
So, in fact, that annotation component can not only be used for photos, but actually any chart is within the possible range. Really looking forward to that click anywhere feature. I'm so excited to hear about these.
Thank you very much for taking the time to comment.
BR


Allow avatars and multiple combined repositories

Just adding a couple new features.

Setup a mount point for gource avatars.
Another mount point for a directory of repos. The repo logs are combined and sorted by date.

I was inspired to do this by looking at https://github.com/sandrokeil/docker-files

Didn't mean to tag master for the pull request


Run the CI in parallel for speed

Is your feature request related to a problem? Please describe.
The CI often runs slowly because it runs sequentially. The integration tests run faster than the unit tests.
Describe the solution you'd like
Run the CI in parallel using Github Workflows

Closed by https://github.com/ethereum-optimism/optimism-monorepo/pull/314


Cannot add new NuGet package as prerelease

Description
Since very recently, paket does not allow anymore to add a new NuGet package with a prerelease version
Repro steps

Clone the repro repo

Checkout branch "repro-add"

./paket/paket.bootstrapper.exe

.paket/paket.exe add nuget CommandLineParser version 2.0.75-beta project App

Expected behavior
CommandLineParser is installed and marked as prerelease in paket.dependencies
Actual behavior
PS C:\Users\11mvazquez\Desktop\ReproUpdateIssue> .\.paket\paket.exe add nuget Co
mmandLineParser version 2.0.75-beta
Paket version <IP_ADDRESS>
Adding CommandLineParser 2.0.75-beta to C:\Users\11mvazquez\Desktop\ReproUpdateI
ssue\paket.dependencies into group Main
Resolving packages for group Main:
 - CommandLineParser is pinned to 2.0.75-beta
    Package not available.
Paket failed with:
        There was a version conflict during package resolution.
  Could not resolve package CommandLineParser:
   - Dependencies file requested package CommandLineParser: 2.0.75-beta
   - Available versions:
     - (2.0.275-beta, [https://www.nuget.org/api/v2])
     - (2.0.273-beta, [https://www.nuget.org/api/v2])
     - (2.0.261-beta, [https://www.nuget.org/api/v2])
     - (2.0.257-beta, [https://www.nuget.org/api/v2])
     - (2.0.255-beta, [https://www.nuget.org/api/v2])
     - (2.0.251-beta, [https://www.nuget.org/api/v2])
     - (2.0.241-beta, [https://www.nuget.org/api/v2])
     - (2.0.239-beta, [https://www.nuget.org/api/v2])
     - (2.0.235-beta, [https://www.nuget.org/api/v2])
     - (2.0.233-beta, [https://www.nuget.org/api/v2])
     - (2.0.231-beta, [https://www.nuget.org/api/v2])
     - (2.0.223-beta, [https://www.nuget.org/api/v2])
     - (2.0.219-beta, [https://www.nuget.org/api/v2])
     - (2.0.217-beta, [https://www.nuget.org/api/v2])
     - (2.0.215-beta, [https://www.nuget.org/api/v2])
     - (2.0.211-alpha, [https://www.nuget.org/api/v2])
     - (2.0.207-alpha, [https://www.nuget.org/api/v2])
     - (2.0.205-alpha, [https://www.nuget.org/api/v2])
     - (2.0.201-alpha, [https://www.nuget.org/api/v2])
     - (2.0.119-alpha, [https://www.nuget.org/api/v2])
     - (2.0.115-alpha, [https://www.nuget.org/api/v2])
     - (2.0.107-alpha, [https://www.nuget.org/api/v2])
     - (2.0.103-alpha, [https://www.nuget.org/api/v2])
     - (2.0.101-alpha, [https://www.nuget.org/api/v2])
     - (2.0.99-alpha, [https://www.nuget.org/api/v2])
     - (2.0.93-alpha, [https://www.nuget.org/api/v2])
     - (2.0.89-alpha, [https://www.nuget.org/api/v2])
     - (2.0.85-alpha, [https://www.nuget.org/api/v2])
     - (2.0.81-alpha, [https://www.nuget.org/api/v2])
     - (2.0.77-alpha, [https://www.nuget.org/api/v2])
     - (2.0.75-alpha, [https://www.nuget.org/api/v2])
     - (2.0.71-alpha, [https://www.nuget.org/api/v2])
     - (2.0.65-alpha, [https://www.nuget.org/api/v2])
     - (2.0.61-alpha, [https://www.nuget.org/api/v2])
     - (2.0.57-alpha, [https://www.nuget.org/api/v2])
     - (2.0.51-alpha, [https://www.nuget.org/api/v2])
     - (2.0.49-alpha, [https://www.nuget.org/api/v2])
     - (2.0.47-alpha, [https://www.nuget.org/api/v2])
     - (2.0.43-alpha, [https://www.nuget.org/api/v2])
     - (2.0.41-alpha, [https://www.nuget.org/api/v2])
     - (2.0.39-alpha, [https://www.nuget.org/api/v2])
     - (2.0.35-alpha, [https://www.nuget.org/api/v2])
     - (2.0.33-alpha, [https://www.nuget.org/api/v2])
     - (2.0.23-alpha, [https://www.nuget.org/api/v2])
     - (2.0.21-alpha, [https://www.nuget.org/api/v2])
     - (2.0.19-alpha, [https://www.nuget.org/api/v2])
     - (2.0.9-alpha, [https://www.nuget.org/api/v2])
     - (2.0.8-pre, [https://www.nuget.org/api/v2])
     - (2.0.7-pre, [https://www.nuget.org/api/v2])
     - (2.0.6-pre, [https://www.nuget.org/api/v2])
     - (2.0.5-pre, [https://www.nuget.org/api/v2])
     - (2.0.4-pre, [https://www.nuget.org/api/v2])
     - (2.0.3-pre, [https://www.nuget.org/api/v2])
     - (2.0.2-pre, [https://www.nuget.org/api/v2])
     - (2.0.1-pre, [https://www.nuget.org/api/v2])
     - (2.0.0-pre, [https://www.nuget.org/api/v2])
     - (1.9.71, [https://www.nuget.org/api/v2])
     - (1.9.7, [https://www.nuget.org/api/v2])
     - (1.9.6-rc1, [https://www.nuget.org/api/v2])
     - (1.9.5-rc0, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>-beta, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>-beta, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>-beta, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>-beta, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])
     - (<IP_ADDRESS>, [https://www.nuget.org/api/v2])

  Please try to relax some conditions.

Known workarounds
Add manually the line in paket.dependencies:
nuget CommandLineParser prerelease
Run commands
.paket/paket.exe install
.paket/paket.exe add nuget CommandLineParser project App
Related information

Operating system: Win 7 64-bits
Paket 3.13.0
.NET Runtime v4.6

"Since very recently" - what does this mean? Is there a paket version which still works? Which is the first that is broken for you?

scratch that. I think I know the issue.

@forki I did not pay exact attention, but it was working last Thursday with paket version 3.11

yeah it's fine. I'm on it.

ok this seems to be correct behaviour.
.paket/paket.exe add nuget CommandLineParser version 2.0.75-beta project App

2.0.75-beta is not existing. So you can't install that and paket is telling you Package not available.` and then shows you alternatives.

Argh you are right, what a typo...

I have tried to build a repro repo for our problem in Paket.Core when doing a PackageUpdate, but I failed to find a minimal environment where the problem occurs.
I will have to debug locally with our dear Artifactory server.


WIP Sync to<EMAIL_ADDRESS>

Using command
$ npm run sync -- -t v3.3.2

to sync to<EMAIL_ADDRESS>release
Tasks left

[ ] fix ZeebePropertiesProvider errors
[ ] fix lint errors
[ ] verifiy #73

Closes #79
Closes #73

Syncing worked straight forward. 🚀 Some things to be fixed (cf. description).

Should be ready to review now. No errors occur while testing (also in big processes). @menski @nikku feel free to test.


Show User's Map on User's Portfolio Page

The new design progress is awesome!  I really like that (my) Map is easily accessible on the right-hand side of the screen.  I think the Map could be utilized in another helpful way.

They can see everything I've solved, but it's overwhelming and doesn't give a high-level overview.  So, I'm suggesting that when someone views my portfolio page and then clicks Map on the nav, they should see my map, not their own map.  Then, any camper can get a quick idea of where their fellow campers are on in progress, perhaps encouraging collaboration or healthy competition.  Perhaps there's a better way, but I think the progress report on the portfolio page is not very useful as-is.
Thoughts?

I agree with @sealocal . Just listing out all the challenges completed in a long table is kinda inefficient. I have a different solution though. I was thinking of displaying the major section titles in a table and then linking to the list of completed challenges within that section.
Example
The main table on the profile page could look something like this:-

Section
Date of Completion
Last Updated
Status

Getting Started
Dec 23, 2016
Jan 26, 2016
Completed

HTML & CSS
Jan 3, 2016
Jan 12, 2016
Ongoing

Bootstrap
Jan 10, 2016
Jan 16, 2016
Not Started

jQuery
Jan 23, 2016
Jan 26, 2016
Not Started

And then upon clicking the links of each section, the list of challenges within that course would be displayed. Hope I was able to make it clear.

I agree with @sealocal too that the portfolio page is overwhelming now. I am applying for jobs and want my FCC portfolio page to be a useful page for potential employers to look at. It actually used to be better because the old Bonfires (difficult algorithm challenges) used to be listed before the old Waypoints (easier challenges). Now these two have been mingled together as algorithms.
What's worse is that the algorithms list now begins with the relatively simple old Waypoints, which aren't really algorithms at all but something closer to copying and pasting (useful while learning of course, but not a great showcase of one's skills). So a potential employer might see the "Algorithms" title, click on an old Waypoint, and then think "Wow! This Free Code Camp is a bit simple and lightweight!"
So how about re-dividing the old Waypoints and Bonfires into "basic algorithms" and "complex algorithms", or something like that? And then listing the harder stuff first on the portfolio page.

7372


hack: Add helper script for dev cluster

Create a script for streamlining the process of creating a local dev K8s cluster for the web app.
/cc @yuzisun

/lgtm


How do I run this network with my own data?

Hey all,
I see that you have a custom dataloader for the solution, but I was curious how to use this network on my own data. For example, say I have a PCD which is already incomplete, I do not have the ground truth for this. I just want to run inference on this data. How would be the best way to progress using this network? Any help on this would be very much appreciated. Thank you for the contribution !!

Hi,
Thank you for your interest in this work. You may need to write a new script (python file) to complete your own data. The recommended steps are as follows:

load the pretrained model as line 25-35  in test.py does.
load you own pcd file with the _read_pcd function, turn it into a PyTorch tensor.
feed the data into the pretrained model and get the completed point cloud, like this.

Hi @AllenXiangX, first let me thank you for you kind reply, i tried to use the network as you illustrated to me in the above reply.
As cleared in this attcahed file ("test_custom.py"), placed in same directory of original "test.py" file, I applied the 3 steps, and tried to run but it gives me an error that my data shape is different than the coded data shape, knowing that my data is point cloud is part of chair ("data_cluster_0.pcd") as attached also.
Please, may you help me in solving this error:

"""(spd) navlab@navlab-ProLiant-DL380-Gen10:/media/navlab/GNSS/work/pc_completion/SnowflakeNet$ /home/navlab/anaconda3/envs/spd/bin/python /media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py
Input point_cloud shape: torch.Size([5706127, 3])
Traceback (most recent call las
python file and data.zip
t): File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py", line 58, in
completed_point_cloud = complete_point_cloud(model, input_point_cloud)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py", line 40, in complete_point_cloud
pcds_pred = model(input_point_cloud.contiguous())
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 159, in forward
return self.module(*inputs[0], **kwargs[0])
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/models/model_completion.py", line 136, in forward
point_cloud = point_cloud.permute(0, 2, 1).contiguous()
RuntimeError: number of dims don't match in permute"""

Hi, sorry for the late response.
The tensor shape required by the SnowflakeNet is (b, n, 3), where b is the batch size, n is the point number and 3 denotes xyz coordinates. It seems that your input point cloud tensor shape is (n, 3), so you can use input_point_cloud  = input_point_cloud.unsqueeze(0) to add the batch size dimension (b)

Hi @AllenXiangX, thank you for the reply. I have modified the data tensor size to be (b,n,3) as in my used script "test_custom_modified.py" attached with data file used.
test_custom_modified.zip
However, I got some errors and solved them, but finally I got another error related to different shapes of tensors in the "sample_and_group_knn" function within the utils.py file.

Here is the error:
n/SnowflakeNet$ /home/navlab/anaconda3/envs/spd/bin/python /media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py
Input point_cloud shape: torch.Size([1, 6877, 3])
Traceback (most recent call last):
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py", line 67, in
completed_point_cloud = complete_point_cloud(model, input_point_cloud)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/completion/test_custom.py", line 46, in complete_point_cloud
pcds_pred = model(point_cloud)
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 159, in forward
return self.module(*inputs[0], **kwargs[0])
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/models/model_completion.py", line 137, in forward
feat = self.feat_extractor(point_cloud)
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/models/model_completion.py", line 32, in forward
l1_xyz, l1_points, idx1 = self.sa_module_1(l0_xyz, l0_points)  # (B, 3, 512), (B, 128, 512)
File "/home/navlab/anaconda3/envs/spd/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/models/utils.py", line 375, in forward
new_xyz, new_points, idx, grouped_xyz = sample_and_group_knn(xyz, points, self.npoint, self.nsample, self.use_xyz, idx=idx)
File "/media/navlab/GNSS/work/pc_completion/SnowflakeNet/models/utils.py", line 320, in sample_and_group_knn
grouped_xyz -= new_xyz.unsqueeze(3).repeat(1, 1, 1, k)
RuntimeError: The size of tensor a (3) must match the size of tensor b (16) at non-singleton dimension 3.

May you help me to solve this error and modify my custom_test script to complete the point cloud? I know it may be bothersome to you.But I think your help will enrich this issue for anyone who wants to apply inference to collected data.
Best regards.

In the function "complete_point_cloud", delete the line point_cloud = input_point_cloud.permute(0, 2, 1).contiguous(). Because the input tensor shape is (b, n, c), not (b, c, n)

@AllenXiangX, Thank you so much; the script is okay.
Let me read the paper, check the network, and please let me ask you more about the network (if needed), whether in this issue or another one.
Regards.

I have the same problem in my work, can you give me some advice to run this network with my own data?

@SWWdz , hi you can use the code i provided in this issue based on AllenXiangX advices. Please follow the following:
1-download the code from above replys " https://github.com/AllenXiangX/SnowflakeNet/issues/23#issuecomment-1744417001"
2-put the test_modified.py code at the same directory of original test.py code file
3-delete the line point_cloud = input_point_cloud.permute(0, 2, 1).contiguous(). Because the input tensor shape is (b, n, c), not (b, c, n).
it will work with you.

@SWWdz , hi you can use the code i provided in this issue based on AllenXiangX advices. Please follow the following: 1-download the code from above replys " #23 (comment)" 2-put the test_modified.py code at the same directory of original test.py code file 3-delete the line point_cloud = input_point_cloud.permute(0, 2, 1).contiguous(). Because the input tensor shape is (b, n, c), not (b, c, n). it will work with you.

Hello, thank you so much for your help. I tryed to use your code however I got a little confused with:
"3-delete the line point_cloud = input_point_cloud.permute(0, 2, 1).contiguous(). Because the input tensor shape is (b, n, c), not (b, c, n)."
Do you mean to do that by, afterwards, changing the function complete_point_cloud() to return pcds_pred = model(input_point_cloud)?
I tried to do the modifications as mentioned, however I'm getting the error:
  File "completion/test_custom_modified.py", line 66, in main
    completed_pc.points = open3d.utility.Vector3dVector(completed_point_cloud)
RuntimeError: Unable to cast Python instance to C++ type (compile in debug mode for details)

Thank you very much in advance!

Is there an way to change the amount of points the pretrained model completes in the point cloud? I'm using the same code provided by  @mostafa501, howver trying to change a bit of the configs didn't work for me.


Test vscode.debug.DebugConfigurationProvider

Test for #32086:
Complexity: 3

[ ] Windows - @roblourens
[x] OS X - @jrieken
[x] Linux - @isidorn

In this milestone we've created a "real" API replacement for the 'startSession' and 'initialConfigurations' commands that we are currently using.
This API is proposed and can be found here.
To use the proposed API copy the vscode.proposed.d.ts it in your extension folder.
Verify that this API works as documented:

use the "hello world" extension
register a DebugConfigurationProvider for a specific debug type.
implement provideDebugConfigurations by returning a real (or fake) launch configuration. Verify that this is added to the initial launch.json that is created if a project folder has none. Make sure that the correct workspaceFolder is passed to provideDebugConfigurations in the 0,1,n-folder workspace configurations.
implement resolveDebugConfiguration by massaging the passed launch config and verify that it is passed to the correct debug adapter. Make sure that you can even change the type of the config so that another debug adapter is started. Make sure that the correct workspaceFolder is passed to resolveDebugConfiguration in the 0,1,n-folder workspace configurations.

How do I configure launch.json for other folders in a multiroot window? It only does it for the first one.

You have to create separate launch.json for the different folders.
The launch config drop down has actions to create entries in the different launch.jsons.


Plot normalized priors and posteriors

Hi Junior,
I'm trying to extract the normalized information for my model parameters  after running a MH algorithm.
In the past I used this line to do that:
[ppdata]=plot_priors_and_posteriors(obj,Results.pop,myparams,'normalize2prior')
But it seems like the 'normalize2prior' instruction doesn't work anymore. There is another form to obtain this information?
Many thanks in advance.
Regards,
Leonard

Hi Leonard,
Perhaps you should do
[ppdata]=plot_priors_and_posteriors(obj,Results.pop,myparams,true)
instead of
[ppdata]=plot_priors_and_posteriors(obj,Results.pop,
myparams,'normalize2prior')
Cheers,
Junior
--
"You can never know everything", Lan said quietly, "and part of what you
know is always wrong. Perhaps even the most important part. A portion of
wisdom lies in knowing that. A portion of courage lies in going on anyway."
Robert Jordan, Winter's Heart, Book IX of the Wheel of Time.
We have not succeeded in answering all of our problems. The answers we have
found only serve to raise a whole set of new issues. In some ways we are as
confused as ever, but we believe we are confused on a higher level and
about more important things. (cited in Øksendal, 1985)
On Thu, Mar 23, 2017 at 5:48 PM, LeonardRW<EMAIL_ADDRESS>wrote:

Hi Junior,
I'm trying to extract the normalized information for my model parameters
after running a MH algorithm.
In the past I used this line to do that:
[ppdata]=plot_priors_and_posteriors(obj,Results.pop,
myparams,'normalize2prior')
But it seems like the 'normalize2prior' instruction doesn't work anymore.
There is another form to obtain this information?
Many thanks in advance.
Regards,
Leonard
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jmaih/RISE_toolbox/issues/46, or mute the thread
https://github.com/notifications/unsubscribe-auth/ACagzzSeEvjqgCqHs03zxEW9rkatLdFfks5roqJtgaJpZM4MnCss
.

Hi again Junior,
Still not working the option "true".  RISE show the following error:
**
Error using rise_generic/plot_priors_and_posteriors
Too many input arguments.
**
I remmeber that before in the function plot_priors_and_posteriors the argument 'normalize2prior'
where available. Do you have another guess to solve this problem?
thanks,
Leonard.

If I could see the problem I would be able to solve it.
Looks like you are not using the most recent version of RISE. Could that be the issue?
Sent from my iPhone

On 23 Mar 2017, at 19:50, LeonardRW<EMAIL_ADDRESS>wrote:
Hi again Junior,
Still not working the option "true". RISE show the following error:
**
Error using rise_generic/plot_priors_and_posteriors
Too many input arguments.
**
I remmeber that before in the function plot_priors_and_posteriors the argument 'normalize2prior'
where available. Do you have another guess to solve this problem?
thanks,
Leonard.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


upgrade to nftables

Install nftables via apk and change ip tables post up and down commands to these new commands:
post_up="nft add rule ip nat PREROUTING ip dnat to <IP_ADDRESS>; nft add rule ip nat POSTROUTING ip masquerade"
post_down="nft delete rule ip nat PREROUTING ip dnat to <IP_ADDRESS>; nft delete rule ip nat POSTROUTING ip masquerade"

Fixen in release 2024.10.0


Refactor species CSV import code

Accession CSV import also implicitly imports species, and we want to have the same
semantics (following renames, undeleting deleted species) we do with species list
CSV importing.
Move the "import a row from the CSV" function out of SpeciesImporter and into
SpeciesStore where the accession importer can call it.
Similarly, the accession importer will need to update the status of the uploaded
file and sanity-check its current status; move those helper functions out of
SpeciesImporter and into UploadStore.
No behavior changes here, just code shuffling. Existing tests continue to pass
as-is aside from needing to pass in a different set of dependencies.

Current dependencies on/for this PR:

main

PR #635   👈

This comment was auto-generated by Graphite.


⚠ Fortnite has degraded performance

In 977cad4, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1529 ms

Resolved: Fortnite performance has improved in 609eedc.


[otbn,dv] Write coverage and trigger cross-checks between pre-decode and decode

estimate 4

Redundancy checks.
Checks for blanking. Check against decode.
@prajwalaputtappa has written a test for this case.
If fatal alert doesn't get triggered then checks in place.
Coverage missing.

remaining 2022-08-08 2

remaining 2022-09-08 2


Base64 breaking change

This is done because Go v1.22 made a breaking change where the alphabet passed into base64.NewEncoding(alphabet) should no longer contain duplicate[1] characters.
The alphabet previously used by ong/id contained duplicates in order to reduce ambiguity.
In this PR we change to base32, since the alphabet size is smaller than base64 and we can thus eliminate ambiguity from it without using duplicate characters.

https://github.com/golang/go/commit/243c8c0eec20d981d8e76a3aac82f97cca991571

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

Comparison is base (da241d7) 72.93% compared to head (7107746) 69.58%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #409      +/-   ##
==========================================
- Coverage   72.93%   69.58%   -3.35%
==========================================
  Files          49       52       +3
  Lines        5868     6192     +324
==========================================
+ Hits         4280     4309      +29
- Misses       1273     1559     +286
- Partials      315      324       +9

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


Update dependency versions to fix npm warnings

Fixes #4

I bumped the version number with npm version patch

Closing this PR because it contains private e-mail address.  I'll re-submit.


feat: added withCredentials option to send raw HTTP request to other domains

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


chore: updating samples from file to codegen

References https://github.com/lightbend/kalix-docs/issues/1474 and https://github.com/lightbend/kalix-javascript-sdk/pull/411

@johanandren from https://docs.kalix.io/javascript/proto.html
We recommend that you define your service API and events and data associated with components separately. This allows business logic to evolve independently of the public interface. This page walks you through elements in an example shoppingcart_api.proto file and the associated shoppingcart_domain.proto file.

On the other hand in the JVM samples we have the entities defined in the .api.  Just to double check we don't recommend the above anymore. Would you agree?

from https://docs.kalix.io/javascript/proto.html
We recommend that you define your service API and events and data associated with components separately. This allows business logic to evolve independently of the public interface. This page walks you through elements in an example shoppingcart_api.proto file and the associated shoppingcart_domain.proto file.

On the other hand in the JVM samples we have the entities defined in the .api. Just to double check we don't recommend the above anymore. Would you agree?

We should still have the recommended separation for the protobuf messages, with a separate domain proto file. It's only the kalix annotations that are no longer split over the two files.
Would make sense to align with the JVM docs, which still have the above recommendation as well.
https://docs.kalix.io/java/writing-grpc-descriptors-protobuf.html

I missed that in the JVM docs. Thanks @pvlugter

I made all the changes but the error we are getting here - mongo-related - in the CI I think has nothing to do with my changes.
I downloaded a fresh repo from main and it raises the same error when npm run build the ts-value-entity created with npm-js/create-kalix-entity/create-kalix-entity.js.
So far I've been unable to fix it.

Hmm, yeah looks unrelated, what's up with something Mongo being a dependency at all?

node_modules/@types/mongodb/index.d.ts:1198:45 - error TS2344: Type 'TSchema' does not satisfy the constraint '{ [key: string]: any; }'.

Good point. Maybe removing it would do 👍. I'll have a look to see if doesn't break something else.

TODO: try adding
  compilerOptions: {
    "skipLibCheck": true,
    //...
  }

to tsconfig


Reset cpm state on refresh

Task/Issue URL: https://app.asana.com/0/1125189844152671/1207821290657757/f
Description
Reset cpm state when manually refreshing page
Steps to test this PR
Feature 1

[ ]
[ ]

#4848  👈
develop

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

Join @marcosholgado and the rest of your teammates on  Graphite


'Prototyping and Engineering' Accordion overlaps blocks when screen size reduced

The 'Prototyping and Engineering' accordion still overlaps color block when screensize reduced in Chrome.

@cjgammon I know you did some work in #81 to address this, but it looks like it's still happening occasionally. I haven't taken a deep look at this, but I'm open to whatever solution(s) would fix it and future-proof it.

Closed by #180


[crashlytics] "RangeError (index): Invalid value: Only valid value is 0: 1" every time Crashlytics catches an error

firebase_crashlytics: ^0.1.3+3
Describe the bug
Every time Crashlytics catches an error it prints this error:
07-12 09:45:25.819 14966 15044 I flutter : Error caught by Crashlytics plugin <recordError>:
07-12 09:45:25.819 14966 15044 I flutter : RangeError (index): Invalid value: Only valid value is 0: 1
07-12 09:45:25.820 14966 15044 I flutter : firebase_crashlytics: Error reported to Crashlytics.

To Reproduce

Enable error catching:

    runZoned(
      () {
        startApp();
      },
      onError: (e, s) => Crashlytics.instance.recordError(e, s
    );

Expected behavior
Should not throw a range error.
Flutter doctor
Run flutter doctor and paste the output below:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.20.0-3.0.pre, on Mac OS X 10.15.5 19F101, locale en-US)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.46.1)
[✓] Connected device (5 available)

• No issues found!

Nevermind- everything working as expected! Was a bug in my code.


simplify Dockerfile to use standard tf 2.0 image

This PR simplifies the Dockerfile using the standard tensorflow 2.0 image.
Fixes #64

ping @kittinan @titipata
could you please build it with docker build -t deepcut:dev .
then docker run -it deepcut:dev to check if the deepcut working for you?

work for me :tada:  :thailand:

Do we have to fix the README too? But looks great!

I updated the README according to the PR. It works for me perfectly. Thanks @chanwit, @kittinan!


Babel Error

Babel showing this error in /node_modules/react-scroll/lib/mixins/Helpers.js

Line 116: Unexpected token <
You may need an appropriate loader to handle this file type.
className = this.props.className
}
return <Component {...this.props} {...this.state} className={className}  onClick={this.handleClick} />
}
});

Will look into it tonight.

please do man, thou I'm looking @ a possible fix. If I get one, I'll submit a PR

Probably related:
babel gives me an error even earlier in the same file, somehow babel does not accept the ES6 Syntax in Helpers.js:
`node_modules/react-scroll/lib/mixins/Helpers.jsx:6
const { bool, object, string, func, number } = React.PropTypes;
^
SyntaxError: Unexpected token {`

thanks, will look into it. Somthing came up yesterday, will try to solve it today.

okay. @fisshy  any possible fix yet?

I'm having the same problem

Sorry for the delayed fix guys
fixed in  v1.0.1 on npm or https://github.com/fisshy/react-scroll/commit/2a492f56416c486c16a517dfdafe981158e9f096 for the code

@fisshy having same problem too... even with 1.0.1

Fixed thanks to @mmahalwy https://github.com/fisshy/react-scroll/commit/7ae01d4f9cffd7b86e60922f1d9e5be98a6c4a1c and v1.0.2 on npm


Add custodian and owner to claim rule interface

We need those to be able to select the correct claim rule to use for a given holding.

Actually, I was able to work around this, by putting the claim rule onto the corresponding Custody.Service in the ref app, which allows me to select the correct service, which then has the correct rule. So de-prioritizing this one for now, as I think we should discuss the design of claim rules and the process anyway.

This has become obsolete as we now just have providers on the rule and those are exposed on the interface.


[pipe-ping-pong] Refactor to add Drop

This PR refactors the pipe-ping-pong example and supports drop for closing the pipe queue descriptors.
Closes #721

@anandbonde please checkout https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue to learn the correct wat of linking a PR with an issue.

@anandbonde please checkout https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue to learn the correct wat of linking a PR with an issue.

Done.

Looks good now. Thank you for working on the requested changes.
Could you make BUFFER_SIZE also a parameter to the run() functions?
If you don't feel like changing this, I'm fine as well.
In the long run I want to make all parameters exposed through the CI and thus have an even more comprehensive stress test infrastructure, where we exercise these parameters.

Done.

Please change the struct to remove the Option<>

Done.


Install using Pipenv from githug repo or pypi

Does this add information that users do not know?
Users of pipenv should be able to translate pip install (...) into pipenv install (...) in my opinion.


Add variable privilege to gdt

This PR allows users to vary the privilege level in gdt entries by manually editing the descriptor entry. This has been tested for code/data segments, but not for system segments. It also allows the user to specify an IO permissions bitmap.

I've made a breaking (but neccesary imo) change to allow for the use of the IO permissions bitmap - it adds an argument to Descriptor::tss_segment which is the size of the iomap.

To fix this compile error in bootimage:
error[E0061]: this function takes 2 parameters but 1 parameter was supplied
  --> src/gdt.rs:24:42
   |
24 |         let tss_selector = gdt.add_entry(Descriptor::tss_segment(&TSS));
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 2 parameters
error: aborting due to previous error

the relevant line should be changed to
let tss_selector = gdt.add_entry(Descriptor::tss_segment(&TSS, 0));

@Restioson Are you still interested in this?

I completely forgot about this, sorry! Looks like there is one main review comment left, unless you remember anything else. I can try fix this soon.

@Restioson Sorry for the delay in answering. I just took a look at this PR again and it seems like the first part of the functionality was already implemented in https://github.com/rust-osdev/x86_64/pull/153 recently. The iomap changes outlined in https://github.com/rust-osdev/x86_64/pull/68#discussion_r279284959 still sound good to me, so I would be happy to merge such an implementation.

Hi there, sorry for the hiatus! I'm just looking through this again and reviewing what I've done so far. Indeed, it looks like https://github.com/rust-osdev/x86_64/pull/153 did the first part, so I will try to get the iomap stuff working.

I'm going to reopen the PR as that will probably be the easiest.


Swift 2.2

Updates project files to Xcode 7.3 recommended settings and changes typealias to associatedtype

Thanks!  Just bump the Xcode version in the Travis script and this should build.

You know what could have caused the last failure? I'm not practiced enough with Travis to understand what "valid signing identities" it would be talking about.

Fuck, I don't know why it does this sometimes.  7.3 changed something or other about the build system so it randomly selects victims to require codesigning for where none was needed before (as in, Swiftz doesn't have this problem).

Try something for me please:

Remove the build scripts folder
Copy the build script out of Swiftz here
s/SwiftCheck/Algebra in the manual calls to xcodebuild.

:sail


Objects and Rooms

A room should have a maximum number of objects allowed in it.
This number should probably be flexible (random.randrange).
Selecting the number will need some considerable amount of thought and experimentation, as to what makes for story development possible.

Implemented as of 551ee9cc7b3c12a1a5705c02149388f1320b70ec.
Best object length seems to max out at 5.


Add optional flag for having CSV's owned by their Subscription.

Feature Request
Is your feature request related to a problem? Please describe.
Driven by an issue in ArgoCD: https://github.com/argoproj/argo-cd/issues/2999
It would be nice for an ArgoCD user to see status of all the child resources created by their Subscription when they create it via an ArgoCD application. This is based on OwnerReferences, but because the CSV does not have an owner ref to it's Subscription the chain is broken, and an Argo user cannot see the status of the resulting pods.
Based on discussion with @kevinrizza and @exdx it was mentioned that this is because removing a Subscription means you do not want to be Subscribed anymore, not that you want to uninstall your operator.
Describe the solution you'd like
Would it be reasonable to have some kind of option on a Subscription that indicates it should be set as the owner of it's CSVs?
Some overlap with: https://github.com/operator-framework/operator-lifecycle-manager/issues/1088 and possibly the suggested simplify API's enhancement: https://github.com/openshift/enhancements/blob/master/enhancements/olm/simplify-apis.md#proposal

I think we're going to implement something in ArgoCD to explicitly detect this relationship for these types.


Will Openssl reset client random and server random after key exchange?

Hi,
I want to know that whether openssl will reset client random and server random after it finished key exhange process.
Thanks in advance.

Well, it depends what you mean. New client and server random values are selected for each handshake - even for resumption and reneg handshakes. The values are used during the handshake but not used again after it, although they continue to exist within the SSL object for the lifetime of the connection/object.

Well, it depends what you mean. New client and server random values are selected for each handshake - even for resumption and reneg handshakes. The values are used during the handshake but not used again after it, although they continue to exist within the SSL object for the lifetime of the connection/object.

Thanks a lot. The answer cleared my doubts.


Lower Hunyuan Video LoRA memory requirements

It should be possible to leverage fp8 casted models, or torchao quantization, to support training in under 24 GB upto a reasonable resolution. Or atleast that's the hope when combined with precomputation from #129. Will take a look soon :hugs:
TorchAO docs: https://huggingface.co/docs/diffusers/main/en/quantization/torchao
FP8 casting: https://github.com/huggingface/diffusers/pull/10347

What are the memory requirements for Hunyuan currently? I'm OOMing with 48gb

Could you give #129 a try? I believe with FP8 it should fit in 24 gb based on rough calculations, but will continue to try and improve

Just to confirm, are you using the bash script from README or a custom launch script? And are you sure --gradient_checkpointing is being used. If it still isn't working after that, I'll take a look tomorrow and try to have FP8 support asap

Yeah, using the bash script from the readme. --gradient_checkpointing and --precompute_conditions are both being passed.

Hi, I also try the bash in your README.md and load the CKPT you provide in https://huggingface.co/hunyuanvideo-community/HunyuanVideo. But I get OOM even in an 80 GiB H800 when loading the HunyuanVideo transformer, before training.

Have same OOM problem with --precompute_conditions and --gradient_checkpointing form README script on A100

I'm unable to replicate unfortunately. I just verified once again that I can run training in about 42 GB of memory when precomputation and gradient checkpointing is enabled with 49x512x768 videos. I would like to know what version of pytorch everyone is using. Can you share the output of diffusers-cli env? Here's mine:
- 🤗 Diffusers version: 0.33.0.dev0
- Platform: Linux-5.4.0-166-generic-x86_64-with-glibc2.31
- Running on Google Colab?: No
- Python version: 3.10.14
- PyTorch version (GPU?): 2.5.1+cu124 (True)
- Flax version (CPU?/GPU?/TPU?): 0.8.5 (cpu)
- Jax version: 0.4.31
- JaxLib version: 0.4.31
- Huggingface_hub version: 0.26.2
- Transformers version: 4.48.0.dev0
- Accelerate version: 1.1.0.dev0
- PEFT version: 0.13.3.dev0
- Bitsandbytes version: 0.43.3
- Safetensors version: 0.4.5
- xFormers version: not installed
- Accelerator: NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA DGX Display, 4096 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
- Using GPU in script?: <fill in>
- Using distributed or parallel set-up in script?: <fill in>

Can you also try running training with resolution buckets set as 1x512x512 and see if that OOMs as well? If it OOMs, it's like a problem with the pytorch version and needs upgrade. If it doesn't, I will try running on the code on a few different environments to verify. So far, I know that it works on A6000, A100, RTX 4090, and H100 for sure from atleast two other folks but the above info will be very helpful to localize the error. DeepSpeed support by @sayakpaul should be in soon too, so hopefully that helps further reduce some memory requirements

Setting the bucket size to 1x512x12 still OOMs.

🤗 Diffusers version: 0.32.0.dev0
Platform: Linux-6.11.2-amd64-x86_64-with-glibc2.40
Running on Google Colab?: No
Python version: 3.11.11
PyTorch version (GPU?): 2.4.1+cu121 (True)
Flax version (CPU?/GPU?/TPU?): not installed (NA)
Jax version: not installed
JaxLib version: not installed
Huggingface_hub version: 0.27.0
Transformers version: 4.47.1
Accelerate version: 1.2.1
PEFT version: 0.14.0
Bitsandbytes version: 0.45.0
Safetensors version: 0.4.5
xFormers version: not installed
Accelerator: NVIDIA RTX 6000 Ada Generation, 49140 MiB
NVIDIA GeForce RTX 3080 Ti, 12288 MiB
Using GPU in script?:
Using distributed or parallel set-up in script?:

I see. I'll give pytorch 2.4 a try and profile it tomorrow. Could you try upgrading to pytorch 2.5.1 and see if it does away, or the nightly 2.6.0?

Also, on 2.4, could you first check if the inference results in a normal video or a black video with the example code here: https://huggingface.co/docs/diffusers/en/api/pipelines/hunyuan_video
There have been reports of it not working and I suspect it's something to do with the torch version. If the inference is not working, there's a slim chance training would work well

I'm unable to replicate unfortunately. I just verified once again that I can run training in about 42 GB of memory when precomputation and gradient checkpointing is enabled with 49x512x768 videos. I would like to know what version of pytorch everyone is using. Can you share the output of diffusers-cli env? Here's mine:
- 🤗 Diffusers version: 0.33.0.dev0
- Platform: Linux-5.4.0-166-generic-x86_64-with-glibc2.31
- Running on Google Colab?: No
- Python version: 3.10.14
- PyTorch version (GPU?): 2.5.1+cu124 (True)
- Flax version (CPU?/GPU?/TPU?): 0.8.5 (cpu)
- Jax version: 0.4.31
- JaxLib version: 0.4.31
- Huggingface_hub version: 0.26.2
- Transformers version: 4.48.0.dev0
- Accelerate version: 1.1.0.dev0
- PEFT version: 0.13.3.dev0
- Bitsandbytes version: 0.43.3
- Safetensors version: 0.4.5
- xFormers version: not installed
- Accelerator: NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
NVIDIA DGX Display, 4096 MiB
NVIDIA A100-SXM4-80GB, 81920 MiB
- Using GPU in script?: <fill in>
- Using distributed or parallel set-up in script?: <fill in>

Can you also try running training with resolution buckets set as 1x512x512 and see if that OOMs as well? If it OOMs, it's like a problem with the pytorch version and needs upgrade. If it doesn't, I will try running on the code on a few different environments to verify. So far, I know that it works on A6000, A100, RTX 4090 (but with custom fp8 code), and H100 for sure from atleast two other folks but the above info will be very helpful to localize the error. DeepSpeed support by @sayakpaul should be in soon too, so hopefully that helps further reduce some memory requirements

I was able to run training with accelerate_configs/uncompiled_1.yaml config but during training the loss was nan. The output of this lora model after training is black screen. Can you explain what is the difference between these configs please?

@generalsvr It seems like 2.4 might be a problematic torch version for some operations. I'm going through the relevant commits in pytorch to try and see what exactly causes this, but I believe upgrading to 2.5.1 will fix the nan loss. Could you give that a try?

The configs are simply some rules that tell accelerate, the HuggingFace solution we used for distributed data parallelism, what kind of environment and settings we want to train with. So, uncompiled_1.yaml is a file that specifies we want to use 1 GPU without torch.compile. uncompiled_8.yaml, similarly, is for when we want to use 8 GPUs in parallel. The full list of configurations is explorable via the accelerate config command and you can read about it in the docs

@generalsvr It seems like 2.4 might be a problematic torch version for some operations. I'm going through the relevant commits in pytorch to try and see what exactly causes this, but I believe upgrading to 2.5.1 will fix the nan loss. Could you give that a try?

After updating pytorch to 2.5.1 on the same machine original hunyuan model started to generate videos. But training is still a problem. I can see loss appeared once on step 1, but then again nan. Video generation with lora resulting in a black screen.
Training run 1 log:
Training steps:   0%|                                                                                | 0/20 [00:00<?, ?it/s]12/24/2024 16:47:37 - DEBUG - finetrainers - Starting epoch (1/1)
12/24/2024 16:47:37 - DEBUG - finetrainers - Starting step 1
Training steps:   5%|███▏                                                            | 1/20 [02:06<40:10, 126.89s/it, loss=0.462, lr=2e-7]12/24/2024 16:49:44 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 16:49:44 - DEBUG - finetrainers - Starting step 2
Training steps:  10%|██████▌                                                           | 2/20 [04:11<36:54, 123.04s/it, loss=nan, lr=4e-7]12/24/2024 16:51:49 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 16:51:49 - DEBUG - finetrainers - Starting step 3
Training steps:  15%|█████████▉                                                        | 3/20 [06:17<35:07, 123.97s/it, loss=nan, lr=6e-7]12/24/2024 16:53:54 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 16:53:54 - DEBUG - finetrainers - Starting step 4
Training steps:  20%|█████████████▏                                                    | 4/20 [08:22<33:10, 124.40s/it, loss=nan, lr=8e-7]12/24/2024 16:55:59 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 16:55:59 - DEBUG - finetrainers - Starting step 5
Training steps:  25%|████████████████▌                                                 | 5/20 [10:22<31:09, 124.64s/it, loss=nan, lr=8e-7]12/24/2024 16:57:59 - INFO - finetrainers - Checkpointing at step 5
Training run 2 log:
Training steps:   0%|                                                                                | 0/20 [00:00<?, ?it/s]12/24/2024 17:10:49 - DEBUG - finetrainers - Starting epoch (1/1)
12/24/2024 17:10:50 - DEBUG - finetrainers - Starting step 1
Training steps:   5%|███▏                                                            | 1/20 [02:06<40:11, 126.92s/it, loss=0.462, lr=2e-7]12/24/2024 17:12:56 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 17:12:56 - DEBUG - finetrainers - Starting step 2
Training steps:  10%|██████▌                                                           | 2/20 [04:11<36:54, 123.05s/it, loss=nan, lr=4e-7]12/24/2024 17:15:01 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 17:15:01 - DEBUG - finetrainers - Starting step 3
Training steps:  15%|█████████▉                                                        | 3/20 [06:17<35:07, 123.97s/it, loss=nan, lr=6e-7]12/24/2024 17:17:06 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 17:17:06 - DEBUG - finetrainers - Starting step 4
Training steps:  20%|█████████████▏                                                    | 4/20 [08:22<33:10, 124.41s/it, loss=nan, lr=8e-7]12/24/2024 17:19:12 - DEBUG - accelerate.tracking - Successfully logged to WandB
12/24/2024 17:19:12 - DEBUG - finetrainers - Starting step 5

I tested it 2 days back and it seemed fine.    A person's hands, holding a knife, hover over the cake, ready to make a precise cut, amidst a simple and clean background.@@@129x512x768:::A person with gloved hands carefully cuts a cake shaped like a Skittles bottle, beginning with a precise incision at the lid, followed by careful sequential cuts around the neck, eventually detaching the lid from the body, revealing the chocolate interior of the cake while showcasing the layered design's detail.@@@61x512x768:::afkx A woman with long brown hair and light skin smiles at another woman with long blonde hair.  The camera angle is a close-up, focused on the woman with brown hair's face. The lighting is warm and natural, likely from the setting sun, casting a soft glow on the scene.


feat(shadow): adds shadow directive

Removes the default shadow from the card component
Fixes #277
Storybook link: https://deploy-preview-349--legal-and-general-canopy.netlify.app
Checklist:

[x] The commit messages follow the convention for this project
[x] I have provided an adequate amount of test coverage
[ ] I have added the functionality to the test app
[x] I have provided a story in storybook to document the changes
[x] I have provided documentation in the notes section of the story
[x] I have added any new public feature modules to public-api.ts

Nice one @paul-request 👍 just a couple of minor suggestions from me.

Thanks @owensgit I've made those changes

@paul-request I think this might need to be flagged as a breaking change? Mostly for projects that are in the process of moving to Canopy. For example in our project we would have to either add the new directive to the lg-card or update the old cards in our codebase to remove the box-shadow property so that it matches the new styles.

@paul-request I think this might need to be flagged as a breaking change? Mostly for projects that are in the process of moving to Canopy. For example in our project we would have to either add the new directive to the lg-card or update the old cards in our codebase to remove the box-shadow property so that it matches the new styles.

Yeah I wasn't sure on that. As it won't necessarily break anything, will jus look a little different

@paul-request I think this might need to be flagged as a breaking change? Mostly for projects that are in the process of moving to Canopy. For example in our project we would have to either add the new directive to the lg-card or update the old cards in our codebase to remove the box-shadow property so that it matches the new styles.

Yeah I wasn't sure on that. As it won't necessarily break anything, will jus look a little different

I know what you mean but I think I would still prefer it to be flagged as some projects might not notice and go live with a look that is not right :/
What does @owensgit and @andy-polhill think?

@paul-request I think this might need to be flagged as a breaking change? Mostly for projects that are in the process of moving to Canopy. For example in our project we would have to either add the new directive to the lg-card or update the old cards in our codebase to remove the box-shadow property so that it matches the new styles.

Yeah I wasn't sure on that. As it won't necessarily break anything, will jus look a little different

I know what you mean but I think I would still prefer it to be flagged as some projects might not notice and go live with a look that is not right :/
What does @owensgit and @andy-polhill think?

Good question - I guess this is the first time we've got a substantial visual change, which isn't an actual breaking change in the code. Perhaps we need to a call to chat about this and figure out how we want to flag these kinds of things, whether as a semver breaking change, or some other way? 🤔

It's a tricky one this one, I'm trying to consider the different scenarios.
1⃣  You had a drop shadow but shouldn't have, we made it better.
2⃣  You had a drop shadow and should have, we made it worse.
On the whole a visual change that doesn't affect code is a benefit of the design system, we can easily iterate the design across multiple places. There may be some instances here where we modify the visual styling outside of the intention, but we don't break functionality, so the impact is relatively low. we could...
1⃣  Document the change a bit more in the commit message to just highlight the risk. This means it can make it in straight away and doesn't have a breaking change barrier, but could effect some styling.
2⃣  Tag it as a breaking change and put it on next which would delay the merge slightly, the breaking change barrier is coming anyway
3⃣  Tag it as breaking change and merge sooner, which would be safe but our major versions move quite fast.
Personally I would go for 1⃣  because it helps with the flow of work and the risk is low, but I'm open to a consensus.

Ok, happy to go with 1⃣  👍

I'm happy with Option 1⃣  too. For me a semver breaking change feels a bit heavy as I'd think that I would need to make code changes when upgrading, but that's necessarily the case.
I wonder if we should have a standard commit message template for this kind of thing? E.g.
VISUAL CHANGE:
Card components no longer have a drop shadow by default.
Use `lgShadow` to apply drop shadow where required.

Ok, I will amend the commit message accordingly 👍


Cannot copy code

I have build the Electron.NET API Demo and run it.
But when I try to copy piece of code from application from - I cannot do it: it cannot be even selected.
What is wrong?

Fixed with the next new Electron.NET Update.


pipe not work

my shell project version is 13 and remote project version is 14 .
pipe work in my remote project but when call remote project in my shell , I get an error:
core.mjs:6476 ERROR Error: Uncaught (in promise): Error: NG0302: The pipe 'date' could not be found in the 'RemoteComponent' component!. Find more at https://angular.io/errors/NG0302
Error: NG0302: The pipe 'date' could not be found in the 'RemoteComponent' component!. Find more at https://angular.io/errors/NG0302
at getPipeDef (core.mjs:22291:15)
at Module.ɵɵpipe (core.mjs:22243:19)
at RemoteComponent_Template (remote.component.html:3:1)
at executeTemplate (core.mjs:9608:9)
at renderView (core.mjs:9411:13)
at renderComponent$1 (core.mjs:10692:5)
at renderChildComponents (core.mjs:9276:9)
at renderView (core.mjs:9436:13)
at ComponentFactory.create (core.mjs:21588:13)
at ViewContainerRef.createComponent (core.mjs:22832:47)
at resolvePromise (zone.js:1213:1)
at resolvePromise (zone.js:1167:1)
at zone.js:1279:1
at ZoneDelegate.invokeTask (zone.js:406:1)
at Object.onInvokeTask (core.mjs:25470:33)
at ZoneDelegate.invokeTask (zone.js:405:1)
at Zone.runTask (zone.js:178:1)
at drainMicroTaskQueue (zone.js:582:1)
card-board-micro-front-end.zip
shell.zip

There are no guarantees that you can mix and match different angular versions.

If you need to load micro frontends built with several angular versions you could use this approach: https://www.npmjs.com/package/@angular-architects/module-federation-tools

If you need to load micro frontends built with several angular versions you could use this approach: https://www.npmjs.com/package/@angular-architects/module-federation-tools

tnx

I have a similar issue:
Shell is using ng14, remote is using ng13.
This is the error:
ERROR Error: Uncaught (in promise): Error: NG0302: The pipe 'async' could not be found in the 'FlightsSearchComponent' component!

In another setup I tried ng14 shell with ng12 remote... same error.

@spierala How did you finally solve this problem?

@alirezabahary Did you finally use webcomponent to solve this problem?


Fix form validation on add organization admin

FRONTEND PULL REQUEST
Related Issue

Resolves #5826
Field validation was not appearing on add organization admin

Changes Proposed

Use React Hook Form for form validation
Replace userEvent with fireEvent

Additional Information

Email validation is not done because the regex for validating may introduce security issues and we send a verification email anyways.
The combo box does not give us an option to provide a class for the select element, so we cannot apply the red outline (usa-input--error) to it.

Testing

Deployed to dev7
Test that errors appear on missing values
Add an admin successfully to an organization

Screenshots / Demos

Code looks a lot cleaner! The form successfully creates an admin. The only thing I noticed is missing compared to the old implementation was the check of a valid email.
This can be done in multiple ways: 1- set a pattern field with an email regex when registering the input.
2- set a validate prop when registering the input.
Thanks for the extra work on this!

I previously had the email regex in validate, but sonar had flagged it for potential risk for ddos. I'm not sure what other kind of regex I could use there that would not create a security concern.

@BobanL I am trying to test in dev7 but I am getting connection error. Do you know if the latest deployment failed?

@BobanL I am trying to test in dev7 but I am getting connection error. Do you know if the latest deployment failed?

I was reusing the environment for dependabot prs since there are no other ones available. I've just deployed this commit onto dev7 and should be ok now.


checkup, tests: Split TestCheckupTeardownShould()

Currently, TestCheckupTeardownShould() has several subtests.
It is long and difficult to change.
Split each subtest of TestCheckupTeardownShould() to a new test.

looks like the commits have the same title.. could you change it so to something more informative?

Thank you for the review @RamLavi.
The scenarios' names are quite long and don't fit nicely in the subject line.
Do you have any suggestions?

looks like the commits have the same title.. could you change it so to something more informative?

Thank you for the review @RamLavi. The scenarios' names are quite long and don't fit nicely in the subject line. Do you have any suggestions?

As this change is just moving around code to function with no added logic, I would squash them.

looks like the commits have the same title.. could you change it so to something more informative?

Thank you for the review @RamLavi. The scenarios' names are quite long and don't fit nicely in the subject line. Do you have any suggestions?

As this change is just moving around code to function with no added logic, I would squash them.

IMO if this PR had only one commit, it would be harder for a reviewer to verify that code had just moved without changing.

looks like the commits have the same title.. could you change it so to something more informative?

Thank you for the review @RamLavi. The scenarios' names are quite long and don't fit nicely in the subject line. Do you have any suggestions?

As this change is just moving around code to function with no added logic, I would squash them.

IMO if this PR had only one commit, it would be harder for a reviewer to verify that code had just moved without changing.

The two better options I see are either squash or keep it split with unique commit titles.. both are good by me
I would avoid keeping the commit title the same, as it's not informative.
But I would not insist.

Change: Commits subjects.

Change: Commits subjects.


dedicated struct/union/enum forms in rust decl layer

Currently we have one declaration for all ADTs in the decl grammar:
https://github.com/nikomatsakis/a-mir-formality/blob/81ba52b8695db7f87f50b0916940b2bb41fe6d59/src/decl/grammar.rkt#L27-L31
resulting instances like this
    (; struct Foo { }
     AdtDecl_Foo (term (Foo (struct
                              () ; no generic parameters
                              () ; no where clauses
                              ((Foo ())) ; the 1 variant (named `Foo`)
                              ))))

it might be cool to introduce StructDecl, EnumDecl, and friends. We could still factor out the common code by introducing some helper functions to convert those into an "adt decl". Then we could write:
    (; struct Foo { }
     StructDecl_Foo (term (Foo (struct
                              () ; no generic parameters
                              () ; no where clauses
                              () ; list of fields
                              ))))

it's a minor thing, but not having to introduce a "dummy variant" would feel a lot more Rust-like to me.

I guess this is completed? https://github.com/rust-lang/a-mir-formality/blob/main/crates/formality-rust/src/grammar.rs#L55-L58


 keybinding isn't working

I use shift-enter instead of enter to insert a new line.
inoremap <S-CR> <NL> is ignored and not working. As a sidenote inoremap <C-CR> <NL> works as expected.

Thanks for isolating and logging the issue, @volny ! I'm able to reproduce this. It's interesting that  works - I wonder if we aren't mapping the shift case correctly here in Keyboard.ts.

@volny Should be fixed in the referenced PR 😄

@volny The latest PR should solve the problem :smile:

Fixed by #652.


Comparing two GraphQLResult

Problem
Currently can't compare two GraphQLResult even though the data is the same.
I'm currently using swift-testing with Swift 6.0.2
let queryOrganizationBySlug: String = """
  query FindSingleOrganization($slug: String!) {
      findSingleOrganization(slug: $slug) {
        slug
        displayName
        details
        domain
      }
    }
"""
let variables: [String: Map] = ["slug": "acme-corp"]
let graphQLRequest = GraphQLRequest(query: query, variables: variables)
let encoder = GraphQLJSONEncoder()
    let buffer = ByteBuffer(data: try encoder.encode(graphQLRequest))
let response: GraphQLResult = try await client.runGraphQLQuery(
  url: "/graphql",
  buffer: buffer
)
let expected: GraphQLResult = GraphQLResult(
  data: [
    "findSingleOrganization": [
      "slug": "acme-corp",
      "displayName": "Acme Corporation",
      "details": "A leading technology company",
      "domain": "acme.com"
    ]
  ]
)
#expect(response == expected)

However I'm getting an issue on comparison even though GraphQLResult is Equatable. The error is as follows:
✘ Expectation failed: (response → {"data":{"findSingleOrganization":{"displayName":"Acme Corporation","details":"A leading technology company","domain":"acme.com","slug":"acme-corp"}}}) == (expected → {"data":{"findSingleOrganization":{"slug":"acme-corp","displayName":"Acme Corporation","details":"A leading technology company","domain":"acme.com"}}})

Which we can see that the data is the same, the only thing is that the data is in differing orders:
[
  {
    "data": {
      "findSingleOrganization": {
        "details": "A leading technology company",
        "domain": "acme.com",
        "slug": "acme-corp",
        "displayName": "Acme Corporation"
      }
    }
  },
  {
    "data": {
      "findSingleOrganization": {
        "slug": "acme-corp",
        "displayName": "Acme Corporation",
        "details": "A leading technology company",
        "domain": "acme.com"
      }
    }
  }
]

What's the proper way to compare the results?
In addition, I used
let graphQLRequest = GraphQLRequest(query: query, variables: variables)
let encoder = GraphQLJSONEncoder()

It looks like you were doing the right thing using GraphQLJSONEncoder. Do you happen to know what Decoder client.runGraphQLQuery is using under the hood to convert to a GraphQLResult?
For background, JSON doesn't care about ordering, but GraphQL does, so we've had to do quite a bit of work to get GraphQL to play nice, and may have missed a spot on decoding.
As an alternative, you could check each field:
let expectedDictionary = expected.data?.dictionary?["findSingleOrganization"].dictionary!
for expectedField, expectedValue in expectedDictionary {
    #expect(expectedValue == response.data?.dictionary?["findSingleOrganization"].dictionary?[expectedField])
}

It's not pretty, but it should do the trick.

Apologies for the late reply, was traveling for the holidays.
The following is the swift extension that I wrote for my Integration testing framework.
import Foundation
import GraphQL
import HTTPTypes
import Hummingbird
import HummingbirdTesting

extension TestClientProtocol {
  /// Run a GraphQL query and return the result.
  ///
  /// - Parameters:
  ///   - query: The GraphQL query to run.
  ///   - variables: The variables to pass to the query.
  ///   - client: The client to use to run the query.
  ///   - testUserId: The user ID to use for authentication.
  ///   - file: The file to use for logging.
  ///   - line: The line to use for logging.
  ///
  /// - Returns: The result of the GraphQL query.
  func runGraphQLQuery(
    _ query: String,
    variables: [String: Map] = [:],
    testUserId: String,
    file: StaticString = #filePath,
    line: UInt = #line
  ) async throws -> GraphQLResult {
    var headers: HTTPFields = HTTPFields()
    headers[HTTPField.Name("Authorization")!] = "Bearer \(testUserId)"
    headers[HTTPField.Name("Content-Type")!] = "application/json; charset=utf-8"

    let graphQLRequest = GraphQLRequest(query: query, variables: variables)
    let encoder = GraphQLJSONEncoder()
    let buffer = ByteBuffer(data: try encoder.encode(graphQLRequest))
    let response = try await self.execute(uri: "/graphql", method: .post, headers: headers, body: buffer)
    let decoder = JSONDecoder()
    let graphQLResult: GraphQLResult = try decoder.decode(GraphQLResult.self, from: response.body)
    return graphQLResult
  }
}

Oh okay, that makes sense.
The issue is that GraphQLResult.data uses the Map structure, which itself uses an OrderedDictionary of fields. This is important in order to deliver the correct ordering of results in the JSON response, which is required by the graphQL spec. However, it means that Map equality requires consistent ordering of the fields.
The issue here is that JSONDecoder internally uses an ordinary Dictionary, which does not preserve ordering, so your decoded GraphQLResult has non-deterministic ordering of its fields, which may not match your declared expected GraphQLResult
I'd suggest that you instead model the expected response as a standard decodable type and don't use GraphQLResult which will avoid any ordering considerations. For example:
struct FindSingleOrganizationResponse: Codable {
    let data: DataResponse

    struct DataResponse: Codable {
        let findSingleOrganization: [Organization]

        struct Organization: Codable {
            let slug: String
            let displayName: String
            let details: String
            let domain: String
        }
    }
}

let expected = FindSingleOrganizationResponse(
  data: .init(
    findSingleOrganization: [.init(
      slug: "acme-corp",
      displayName: "Acme Corporation",
      details: "A leading technology company",
      domain: "acme.com"
    )]
  )
)

... // Get response

let actual = try JSONDecoder().decode(FindSingleOrganizationResponse.self, from: response.body)
#expect(actual == expected)

Just be aware: I didn't test the code above, so you might have to fiddle with it a bit.


Updating active elements after August 12, 2024 executive

Originating forum posts:

https://forum.makerdao.com/t/stability-scope-parameter-changes-15-sfs-dsr-spark-effective-dai-borrow-rate-reduction/24834/4
https://forum.makerdao.com/t/wbtc-changes-and-risk-mitigation-10-august-2024/24844/19

duplicates https://github.com/makerdao/mips/pull/1126. Please review that PR instead.


Emacs modeline regurarly conflicts with file contents and extension

Apparently, programmers like to declare an Emacs modeline that confilcts with the file contents and file extension.
Not sure what to do about that.  Whack them with the Emacs Lisp Reference Manual?

[https://github.com/tudelft/winning_group/blob/4e394ee9a7469f39ac324c8429e52ba3d0c9d36c/sw/airborne/arch/stm32/lisa-l.ld](linker script)

Sounds like the Modeline strategy isn't as sure as we though. Maybe it should be after the Shebang strategy?

Admittedly, these are only a handful of examples so far.  I don't know if they are statistical flukes or a real problem.

I don't think there is a real problem either but I can't remember a single time when the Shebang strategy was wrong. Shebangs and modelines are both fairly sure labels but one only impacts the syntax highlighting when the other impacts the interpretation itself. I don't think any user would use a shebang different from the language's shebang.

Sounds like the Modeline strategy isn't as sure as we though. Maybe it should be after the Shebang strategy?

Possibly but that's not been causing issues as far as I know so far right? I agree it would be very peculiar to have a Shebang defined that couldn't actually execute a piece of code.

Not sure what to do about that. Whack them with the Emacs Lisp Reference Manual?

@larsbrinkhoff - to your original question. I agree this is tripping some people up but IMO if you use a modeline that isn't correct and that makes your GitHub experience a little weird then there's not much we can do :shrug:

@arfon I'm hoping a future multiple-strategy scoring would be a solution.
And implementing @pchaigno's suggestion wouldn't hurt.

@arfon I mostly wanted to shine a light on the fact that Emacs mode lines are a somewhat irreliable source of information. I'm hoping a future multiple-strategy scoring would be a solution.

:+1: yup I appreciate this. Thanks for keeping us honest :smile:

And implementing @pchaigno's suggestion wouldn't hurt.

Agreed. I'll take a stab at that when I get a chance.


WIP changed relation for transporters

This seems the salient line in the error output
 :: ERROR: ID-mentioned-twice:: has_input
still cryptic but maybe you did a search and replace on the relation declaration itself?

Once the error is resolved we can see the diff
For me the safest SOP when replacing specific relations with general ones is to first have guarantees that all genus terms in DPs that use the generic relation are disjoint
However, perhaps we should just proceed and fix errors as we see them. But this requires we carefully check the reasoner diffs. Otherwise e.g. we will find that a very deep latticed term is inferred to be X transport because it traces up some path to a catabolism term for X for input.


New boolean-prop-naming rule for enforcing the naming of booleans

At my workplace, we prefer to name our boolean props as "isSomething" or "hasWhatever". This is an ESLint rule which allows devs to specify a Regex pattern for how they want their boolean props named.
Tested with createReactClass, ES6 components, stateless components and Flowtype.
I support, in the future, this rule can be expanded to support naming rules for ANY props, but that felt like overkill for the time being. Hopefully this rule will be useful as is.

What about custom propTypes that enforce booleans but aren't PropTypes.bool? For example, mutuallyExclusiveTrueProps from https://www.npmjs.com/package/airbnb-prop-types.
Can there be a way to customize the name of custom propTypes that are booleans?

Good idea. I've added a new propTypeNames configuration option.

How should you name a prop that enables some feature? Normally I'd write e.g. <Nav showHeaders />. Should this instead be <Nav hasHeaders />, <Nav isHeadered />, …?

@wmertens I would call it hasHeader. Keep in mind, this rule is optional and configurable. If you prefer to use showHeaders then you can add the "show" prefix to the rule's options.


can't get running task logs if > 1 container

D, [2016-09-26_12:37:30#28562] DEBUG -- : Running command to find container id:
ssh core@xxx "docker ps -aqf 'label=com.amazonaws.ecs.task-arn=arn:aws:ecs:xxx:xxx:task/xxx'"
Killed by signal 1.
D, [2016-09-26_12:37:31#28562] DEBUG -- : Running command to get logs of container 4f41cd4f6261
17209aa4c283:
ssh core@xxx "docker logs 4f41cd4f6261
17209aa4c283"
I, [2016-09-26_12:37:31#28562]  INFO -- : python script/config_to_db.py task container logs:
STDOUT:--

STDERR:--
bash: line 1: 17209aa4c283: command not found
Killed by signal 1.
D, [2016-09-26_12:37:31#28562] DEBUG -- : python script/config_to_db.py task arn:aws:ecs:xxx:xxx:task/xxx exited with status code 0

The first command grabbed two container ids, since the task definition had two containers. Attempting to grab the logs had an issue, though this didn't impede the deployment.

https://github.com/lumoslabs/broadside/pull/49/commits/10f0fb0ecc2c5d9cdc2d9e56d2e431b3e5e48ee8


Fix the service card loading to keep loading when fetching if free

Work is related to manifoldco/engineering#8935
Reason for change
The service card would render then start loading if the product is free, which led to the free badge jumping around a lot. Products will now load in different intervals, but will always be loaded with their badges on the first render.
Testing
Test with the marketplace story on storybook.

Drew’s Changes
Reason for change
I wanted to satisfy Guillaume’s original ticket, but I had a few concerns:

We now have 3 (THREE!) service card components doing basically the same work. Responsibilities aren’t clear between them.
Guillaume’s work solved an issue, but the components were already were too complex and this PR didn’t help. It was very hard to follow what component was doing what
In addition to all the above, and some much-needed refactoring of <manifold-service-card>, I noticed something: we actually had broken the service card links, and had no tests to catch them. This is a real problem!

Hopefully you can see my thinking with this—I wanted to complete the ticket, but felt that us overcomplicating very simple components led directly to a breakage without any of us knowing. Too many components, too much debt, not enough E2E tests.
I know that creating another PR in the midst of everything else going on may contribute to the problem, but hopefully the fact that many of my changes were test additions / improvements it’ll give us a little more assurance. A legitimate question to this would be “why not in another PR?” And I actually started the work in another PR. But I wanted to keep most of Guillamue’s changes, and the work related to this touched all the same spots anyway, so it felt like a natural addition (don’t worry, Guillaume—I kept your changes in this PR aside from the ones that delayed loading, which we can discuss later).
Anyway, here are the changes I made:
New E2E Tests
We weren’t doing nearly enough E2E testing. I added tests to <manifold-marketplace-grid> that now tests <manifold-service-card-view> and <manifold-template-card>. In this way we get all the benefits of unit tests on the service card, and ensure we don’t break integrations as we had done (unit tests aren’t enough!).

In other areas, existing tests were added to be more reliable, for example we were testing [data-*] attributes in places, rather than actual properties passed to the components. Now we’re testing actual properties passed, because there’s no guarantee those things will always be the same.
While these changes aren’t 100% foolproof, they’re a step in the right direction.
New Spec Tests
We also weren’t testing that the click event is firing from the service card. Now we are (this didn’t seem to be broken, but it could have just as easily broken without any of us knowing, again, because it wasn’t tested).
Simplified structure
The following changes were made to these components:

<manifold-service-card> now fetches data, and contains no markup.
<manifold-service-card-view> now contains markup, and fetches no data.
<manifold-marketplace> now handles loading state, and no markup
<manifold-marketplace-grid> no longer handles any loading state or data, and is now a pure view component

Again, I realize it’s a lot, but these components are so tightly-connected it was hard to break up the PR into multiple steps.
Testing
Test <manifold-marketplace> and <manifold-service-card> in Storybook. Look for the following things:

[ ] Is the “free” bag popping in after load?
[ ] Are components loading quickly?
[ ] Does the link work in the default marketplace component now?

I removed my changes requested, but it’d be nice if someone else is able to ✅ this PR


Test fixes

I fixed a couple of test failures in Cabal, Mac OS and GHC 8.10.1 while trying to set up a comprehensive Github CI:
https://github.com/pepeiborra/ghcide/runs/1371409200
Unfortunately I ran out of time before achieving a complete success, but here are the fixes.

I seems errors are due to a incomplete .cabal file:
ghcide> FAIL (2.06s)
ghcide>     test/src\Development\IDE\Test.hs:78:
ghcide>     Got unexpected diagnostics for Uri {getUri = "file:///C:/Users/VssAdministrator/AppData/Local/Temp/extra-dir-7051303574/RecordDot.hs"} got List [Diagnostic {_range = Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 1, _character = 0}}, _severity = Just DsError, _code = Nothing, _source = Just "cradle", _message = "Failed to parse result of calling cabal\nResolving dependencies...\n\nWarning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal\nupdate' to download it.RemoteRepo {remoteRepoName = \"hackage.haskell.org\",\nremoteRepoURI = http://hackage.haskell.org/, remoteRepoSecure = Just True,\nremoteRepoRootKeys =\n[\"fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0\",\"1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42\",\"2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3\",\"0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d\",\"51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921\"],\nremoteRepoKeyThreshold = 3, remoteRepoShouldTryHttps = True}\ncabal.exe: Could not resolve dependencies:\n[__0] trying: plugin-1.0.0 (user goal)\n[__1] unknown package: record-hasfield (dependency of plugin)\n[__1] fail (backjumping, conflict set: plugin, record-hasfield)\nAfter searching the rest of the dependency tree exhaustively, these were the\ngoals I've had most trouble fulfilling: plugin, record-hasfield\n\n\n\n", _tags = Nothing, _relatedInformation = Nothing}]
ghcide>

So this will let us switch to github actions for tests, right? In a follow up i guess...


Add optional about field to Author schema

Summary of change
Add optional author field to Book.java and book.graphqls.
Related issue
Closes #13
Pull request checklist
Please keep this checklist in & ensure you have done the following:

[X] Read, understood and adhered to our contributing document.

[X] Ensure that you were first assigned to a relevant issue before creating this pull request
[X] Ensure code changes pass all tests

[X] Read, understood and adhered to our style guide. A lot of our code reviews are spent on ensuring compliance with our style guide, so it would save a lot of time if this was adhered to from the outset.

[X] Filled in the summary, context (if applicable) and related issue section. Replace the square brackets and its placeholder content with your contents. For an example, see any merged in pull request

[X] Created a branch that has a descriptive name (what your branch is for in a few words and includes the issue number at the end, e.g. test-reading-goal-123

[X] Set this pull request to 'draft' if you are still working on it

[X] Resolved any merge conflicts

For any of the optional checkboxes (e.g. the screenshots one), still check it if it does not apply.
If in doubt, get in touch with us via our Slack workspace

I didn't add testing for this in BooksApiApplication.java, because blurb was the most similar field and that wasn't added either. I also didn't test it because it seemed like the other optional fields aren't being tested. Let me know if I need to implement either of those things!

Okay! I made the changes, squashed the commits, and rebased from main so my branch is up-to-date.


Feature: workbook protection

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

Project coverage is 92.51%. Comparing base (b96d561) to head (f7dcf2c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #80      +/-   ##
==========================================
- Coverage   97.69%   92.51%   -5.18%
==========================================
  Files          14        4      -10
  Lines        1126      294     -832
==========================================
- Hits         1100      272     -828
+ Misses         17       13       -4
  Partials        9        9

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


Update kubeadmin password for each fresh start

This patch will create a random password and then update the cluster
secret for htpasswd. It also update the cache kubeadmin-password file
so that all the commands which rely on it doesn't break.
fixes: #2048

I am thinking why we have any password set from snc side? We do have kubecofig file for system:admin role and same is consumed by all the oc commands. We can consume same kubeconfig file for creating  -  from crc side?

/lgtm