Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(client): add experimental presence package #22359

Merged
merged 7 commits into from
Sep 3, 2024

Conversation

jason-ha
Copy link
Contributor

@jason-ha jason-ha commented Sep 2, 2024

empty private shell package

AB#7915

@jason-ha jason-ha requested a review from a team as a code owner September 2, 2024 22:34
@jason-ha jason-ha requested a review from WillieHabi September 2, 2024 22:34
@github-actions github-actions bot added area: dev experience Improving the experience of devs building on top of fluid dependencies Pull requests that update a dependency file public api change Changes to a public API base: main PRs targeted against main branch labels Sep 2, 2024
@WillieHabi
Copy link
Contributor

pre-approved for when it passes ci

@msfluid-bot
Copy link
Collaborator

msfluid-bot commented Sep 3, 2024

@fluid-example/bundle-size-tests: +245 Bytes
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 459.92 KB 459.95 KB +35 Bytes
azureClient.js 557.96 KB 558.01 KB +49 Bytes
connectionState.js 680 Bytes 680 Bytes No change
containerRuntime.js 260.75 KB 260.76 KB +14 Bytes
fluidFramework.js 398.48 KB 398.5 KB +14 Bytes
loader.js 134.26 KB 134.28 KB +14 Bytes
map.js 42.39 KB 42.39 KB +7 Bytes
matrix.js 146.56 KB 146.56 KB +7 Bytes
odspClient.js 525.23 KB 525.28 KB +49 Bytes
odspDriver.js 97.72 KB 97.74 KB +21 Bytes
odspPrefetchSnapshot.js 42.78 KB 42.79 KB +14 Bytes
sharedString.js 163.26 KB 163.26 KB +7 Bytes
sharedTree.js 389 KB 389 KB +7 Bytes
Total Size 3.29 MB 3.29 MB +245 Bytes

Baseline commit: d533e80

Generated by 🚫 dangerJS against ae3cf5e

@ChumpChief
Copy link
Contributor

You should put this under packages/framework/presence rather than experimental/framework/presence. Saves you a directory move later and the experimental/ directory is useless anyway (all packages should really be moved to their appropriate homes now even).

@ChumpChief
Copy link
Contributor

Also run pnpm layer-check --md . to generate an updated PACKAGES.md

@jason-ha
Copy link
Contributor Author

jason-ha commented Sep 3, 2024

You should put this under packages/framework/presence rather than experimental/framework/presence. Saves you a directory move later and the experimental/ directory is useless anyway (all packages should really be moved to their appropriate homes now even).

I am not worried about a later directory move. Are we sure about experimental directory being useless? I personally leverage that today. I exclude that path in searches to avoid sketchy hits. Though I am hoping this package is less sketchy and would want in more of my searches.

Copy link
Contributor

@ChumpChief ChumpChief left a comment

Choose a reason for hiding this comment

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

Approving with suggestions

experimental/framework/presence/.eslintrc.cjs Outdated Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess similar to my concern with the migration-tools package - do you want to defer adding API reports to avoid requiring fluid-cr-api as you iterate on the experimental API?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I thought about it before having them and preferred having the reports to see changes - even if we can't avoid the review hit. I am hoping that there are not too many API changes since we have most of one - going to have most of it out in the next PR and implementations will be stubbed.
Did you look into temporary exceptions for migration-tools from policy?

Comment on lines 38 to 43
"files": [
"dist/**/*",
"lib/**/*",
"*.d.ts",
"!**/test/**"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

What is "files" doing here? We don't have this in other packages?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We do have it in some - I see at least packages/framework/data-object-base/package.json and packages/tools/changelog-generator-wrapper/package.json.
The description "The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder." docs
So, this is an explicit list of what should be in the package (well it doesn't list package.json, LICENSE, and README that are always included) and is better than an ignore list (.npmignore).
We should probably have this in all of our packages.

@ChumpChief
Copy link
Contributor

I am not worried about a later directory move. Are we sure about experimental directory being useless? I personally leverage that today. I exclude that path in searches to avoid sketchy hits. Though I am hoping this package is less sketchy and would want in more of my searches.

Depending on why you're searching, excluding experimental is probably not safe since there are long-term-supported packages in there (i.e. PropertyDDS) to consider. And similarly, you probably want other developers to be considering your package if/when they make horizontal changes.

Historically I've also seen folks make bad layering decisions in particular when living outside of the normal directory structure. Theoretically layerInfo should handle this and protect appropriately, but I don't trust that we maintain layering as cautiously outside of the main packages subdirectory.

@github-actions github-actions bot added area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct and removed area: dev experience Improving the experience of devs building on top of fluid labels Sep 3, 2024
Copy link
Contributor

github-actions bot commented Sep 3, 2024

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> [email protected] ci:linkcheck /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test ci:start 1313 linkcheck:full

1: starting server using command "npm run ci:start"
and when url "[ 'http://127.0.0.1:1313' ]" is responding with HTTP status code 200
running tests using command "npm run linkcheck:full"


> [email protected] ci:start
> http-server ./public --port 1313 --silent


> [email protected] linkcheck:full
> npm run linkcheck:fast -- --external


> [email protected] linkcheck:fast
> linkcheck http://localhost:1313 --skip-file skipped-urls.txt --external

Crawling...

Stats:
  378015 links
    2980 destination URLs
       2 URLs ignored
       0 warnings
       0 errors


@jason-ha jason-ha merged commit 9fa5ae0 into microsoft:main Sep 3, 2024
33 checks passed
@jason-ha jason-ha deleted the experimental-presence-package branch September 3, 2024 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch dependencies Pull requests that update a dependency file public api change Changes to a public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants