Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

Golang Core Dev Team - August 13, 2018 #678

Merged
merged 5 commits into from
Aug 22, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions meeting-notes/2018/2018-08-13--golang-core-dev-team-weekly.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# 💫Golang Core Dev Team Weekly Sync 🙌🏽 August 13, 2018

- **Lead:** David Dias
- **Notetaker:** @keks
- **Attendees:**
- @stebalien
- @diasdavid
- @bigs
- @Magik6k
- @keks
- @djdv
- @hsanjuan
- @johnnycrunch

- **Recording:** Recording is currently private to the Go Core Dev Team.

## Agenda

- Ask everyone to put their name into the list of attendees
- Round of updates
- What have you accomplished since the last Weekly?
- Were there any blockers? If so, which ones? Is it still blocked? Why?
- What is the next important thing you should focus on?
- Ask for general questions. Could be things like:
- I'm stuck with something, I don't know who to ask. Who knows who to ask?
- Who can help me with xyz?
- Plan this week
- Select issues to work on
- Review remaining issues if there is time left


## Notes

### Week Update

@stebalien
- Done:
- Reviewed a bunch of PRs
- Responded to/triaged a bunch of issues
- Fixed a few bugs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any notable bug (that people were eagerly waiting)?

- Notable: update gogo protobuf
- Blocked:
- https://github.com/multiformats/multiaddr/pull/68 <- @daviddias P3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: @diasdavid (myself)

- https://github.com/multiformats/multiaddr/pull/68#issuecomment-401971665
- Next:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Stebalien also, as discussed during the call. Please do the drawing (even if on paper) of something like:
https://github.com/ipfs/js-ipfs#code-architecture-and-folder-structure
image

But for go. Contemplating what is legacy, what is next, including:

  • go-ipfs-cli
  • go-ipfs-cmds
  • go-ipfs-api
  • go-ipfs-core
  • go-ipfs daemon
    • go-ipfs-http-api
    • go-ipfs-http-gateway

And anything else that it is there.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bonus points if you do another for how things are pieced together. Like this one https://github.com/ipfs/js-ipfs#ipfs-core-architecture

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can do it on paper, I can create the ascii version

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dotted means "likely going away". The "Legacy" parts are thin wrappers around some commands to translate between the new system and the old system. The grayed-out parts on the "daemon" diagram are there to show that the code is all the same, it's just that we turn some pieces on and some pieces off depending on whether we're running on the client or the server.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to the README with ipfs/kubo#5396

- More of the same
- CIDv1
- Finish the protocol negotiation spec
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Stebalien remind me, is this related with Multistream?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. It's the "next" version of protocol negotiation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. I didn't know that was urgent/P0

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sooner we fix it, the better. Every other protocol we have relies on it and we currently (in go at least) try rather hard to reuse streams as creating new ones is expensive (in terms of bandwidth).

For context, inefficient stream negotiation means we need things like libp2p/go-libp2p-kad-dht#92 instead of libp2p/go-libp2p-kad-dht#167.



@diasdavid
- Done:
- Kick off the Go Core Dev Weekly Sync
- Created https://github.com/ipfs/pm/blob/master/GOLANG_CORE_DEV_MGMT.md
- Updated the go-ipfs and go-libp2p waffle boards and created the go-ipld one
- Go Core Dev Team Interviews (ongoing)
- Proposed Lead Maintainer Protocol up for discussion
- Blocked:
- none
- Next:
- Continue doing the Go Core Dev Team Interviews
- Encourage everyone to do some Waffle Grooming
- rough time scale: 30min/wk


@marten-seemann (not attending)
- Done:
- various QUIC improvements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marten-seemann, mind enumerating here what improvements were made?

- Blocked:
- not blocked by anything
- Next:
- re-evaluate TLS1.3 libraries for their use in QUIC

@kevina (not attending)
- Done:
- Add ability to retrieve blocks even if given using a different CID version (https://github.com/ipfs/go-ipfs/pull/5285)
- Builder interface for CID https://github.com/ipfs/go-cid/pull/53 & https://github.com/ipfs/go-ipfs/pull/5375
- Learned how to use gx-workspace and work with gx dependency managment in general
- Various work towards Base32 CidV1 (see Other notes section)
- Blocked:
- Various aspects of Base32 CidV1 need feedback (see Other notes section)
- Next:
- Continue Base32 CidV1 work
- Maybe add support for inlinling via the id-hash (https://github.com/ipfs/go-ipfs/pull/5281).

@lgierth (not attending)
- done
- infra stuff, nothing go related
- blocked
- nothing go related :)
- next
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lgierth will you have bandwidth soon to pick ipfs/kubo#4595 back up?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes definitely until end-of-August -- how badly are you blocked?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm getting ready to do end to end validation, which needs the branch. I started implementing the endpoints in js, but it doesn't currently have refs support. I can look at getting the existing go branch running locally to at least get e2e validation happening. If we can get it live by mid September I think we can still get js peer/content delegated routing out by end of the quarter.

- a few code reviews where i was summoned

@schomatis (not attending)
- Done:
- Reviewed a few PRs
- Studied part of the `gx`/`gx-go` code and workflow, how can we
make the package manager more user friendly?
- Next:
- Start submitting some PRs in `gx`/`gx-go` with documentation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean you are fully focused on gx, @schomatis ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the moment, yes, but I still need to keep an eye on some Badger and go-unixfs issues.



@bigs
- Done:
- Research into virtual network topologies w/ openvswitch/iptools
-> @daviddias introduce travis & jacobheun
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's do Github Style!

@travisperson @jacobheun, please meet @bigs. I'm sure you have crossed each other or even met at the IPFS Dev Meetings.

  • @bigs is doing a lot of IPTB work for libp2p testing
  • @travisperson is doing a lot of IPTB work to add support for js-ipfs daemons (Node.js) and js-ipfs browser nodes
  • @jacobheun is looking into designing interop tests that can be used by go-libp2p, js-libp2p and rust-libp2p

It would be great to have you all sync soon to make sure that we leverage everyone's focus and don't get duplicated work done.

- DHT research group
- Blocked:
- Nothing
- Next:
- Durable implementation of namespaced virtual networking in go-netdef
- Write rendered network config to a file for easy reversal
- Learn virtual NATing?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you end up writing notes, post them on libp2p/notes perhaps?

- Establish regular meetup for DHT research group

@Magik6k
- Done:
- Extract go-ipfs config
- DHT SearchValues (getvalues but it streams)
- key cmd coreapi refactor
- ci gx deps dupes
- Blocked:
- ipfs p2p refactor on SetStreamHandler not erroring <- @stebalien
- Next:
- More coreapi command refactoring
- Coverage from Jenkins
- `ipfs name resolve --stream`

@keks
- Done:
- get go-ipfs-cmds#112 forward
- rough gx-gomod draft
- Next:
- get go-ipfs-cmds#112 ready
- udpate [go-ipfs branch](https://github.com/ipfs/go-ipfs/pull/5035) that uses go-ipfs-cmds#112
- discuss gx-gomod with @whyrusleeping and @stebalien
- @stebalien says: See https://github.com/whyrusleeping/gx/issues/179#issuecomment-408243162
- The thought here is to turn gx into a "lockfile" manager and allow users to use their language's package manager for everything else.

@djdv
- Done:
- Windows `ipfs mount` foundations (WinFSP, cgo-fuse)
- Read only`mount` support for /ipfs, /ipns, and /local(MFS)
- Blocked:
- https://github.com/golang/go/issues/18296
- Prevents use from building on non-Windows without cgo
- Having mutliple implimentations for the same subcommand seems non-ideal
- Next:
- Schedule to speak with David :^)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes 👍 :)

- Impliment writable support for `ipfs mount`
- Finish remaining Windows tagged `go-ipfs` issues, allowing me to switch focus to:
- Other tasks (discuss with the team where we're lacking and see if I can fill)
- Other platforms (BSD, Solaris, Haiku, Plan9, et al.)
- Other Archs (arm, ppc, z/OS, pdp11, etc.)
- Whatever seems important

@hsanjuan
- Done:
- Submitted a style fix https://github.com/ipfs/go-ipfs/pull/5354
- Next:
- Working on depth limited refs -r https://github.com/ipfs/go-ipfs/pull/5337 (more this week)


### Questions

### Other notes

**Base32 CidV1 Progress:**

@kevina has been working steadly toward the goal to switch to base32. Go-ipfs now can retrive a block regadress of what CID version it is in.

He has created a a meta issue for tracking the progress in go-ipfs: https://github.com/ipfs/go-ipfs/issues/5358

He will continue to work steadly towards the goal but needs feedback on several issues:
* Handling of Alternative Multibases [#5349](https://github.com/ipfs/go-ipfs/issues/5349) _(could use feedback from: @Stebalien @lidel @lgierth)_
* How to handle CIDv0 as we migrate to CIDV1 [#5291](https://github.com/ipfs/go-ipfs/issues/5291) _(could use feedback from: @whyrusleeping @Stebalien)_
* Create config option for specifying full default cidv1 parameters [#5230](https://github.com/ipfs/go-ipfs/issues/5230) _(could use feedback from: @whyrusleeping @daviddias)_

#5349 and #5230 and are the most pressing and blocking full multibase support in go-ipfs. #5291 is less pressing but he would really appeciate @daviddias and @whyrusleeping insight.

For all issues and p.r. related to Base32 CidV1 search using the `cidv1b32` tag: https://github.com/ipfs/go-ipfs/labels/cidv1b32


<!-- After each call, the notetaker submits a PR to ipfs/pm to store the notes on the meeting-notes folder -->