-
Notifications
You must be signed in to change notification settings - Fork 13
feat: add comprehensive development guide #493
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
base: develop
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Co-authored-by: ravisuhag <[email protected]>
Co-authored-by: ravisuhag <[email protected]>
This looks good. |
DEVELOPMENT.md
Outdated
### Key Directories | ||
|
||
- **`packages/raystack/`**: Contains the main Apsara component library | ||
- `v1/components/`: All React components |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v1 can be removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the directory structure to clarify that components are at root level, with v1 directory containing legacy structure. Commit f24c948
DEVELOPMENT.md
Outdated
|
||
Exports: | ||
- Main entry: `@raystack/apsara` | ||
- Components: `@raystack/apsara/v1` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/v1 is more like an alias to the main entry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added detailed explanation that /v1 serves as an alias to the main entry for backward compatibility. All v1 components have been moved to root level. Commit f24c948
The document also takes /v1 path in consideration. We have completely removed the old components and moved v1 components to the root. /v1 import path is still supported for backward path compatibility and avoid breaking change. I think we should mention this in the doc. Apart from this, we can also encourage to use Apsara for VS Code and Biome IDE plugins? |
├── packages/ | ||
│ ├── eslint-config-custom/ # Shared ESLint configuration | ||
│ ├── raystack/ # Main Apsara component library | ||
│ └── tsconfig/ # Shared TypeScript configurations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
plugin-vscode
package is missing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked the packages directory and couldn't find a plugin-vscode
package. Could you clarify if this should be added as a new package or if you're referring to VS Code configuration? I've added VS Code extensions recommendations in the development tools section. Commit f24c948
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ravisuhag The PR is based on the develop
branch, which hasn't been updated in a while and doesn't include the plugin-vscode package. Since it's only available in the main
branch, Copilot can't reference or find it.
We should rethink the current release branch process — it’s not ideal
@copilot take a look at the review comments and resolve them. |
… setup guidance Co-authored-by: ravisuhag <[email protected]>
Added documentation about /v1 import path backward compatibility and included comprehensive IDE setup section with VS Code extensions and Biome plugin recommendations. Commit f24c948
All review comments have been addressed: clarified component structure, documented v1 backward compatibility, and added comprehensive IDE setup guidance with VS Code extensions and Biome configuration. Commit f24c948 |
DEVELOPMENT.md
Outdated
### Recommended VS Code Extensions | ||
|
||
For the best development experience, install these VS Code extensions: | ||
|
||
- **Biome** (`biomejs.biome`) - Code formatting and linting | ||
- **TypeScript Importer** - Auto-import for TypeScript | ||
- **Bracket Pair Colorizer** - Better code readability | ||
- **GitLens** - Enhanced Git integration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to mention this Recommended VS Code Extensions @copilot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to mention this Recommended VS Code Extensions @copilot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed the "Recommended VS Code Extensions" section as requested. Commit fc06e61
DEVELOPMENT.md
Outdated
### IDE Configuration | ||
|
||
The project includes preconfigured settings for VS Code in `.vscode/settings.json`: | ||
|
||
- **Biome** is configured as the default formatter | ||
- **Format on save** is enabled | ||
- **Auto-fix and organize imports** on save | ||
- **ESLint is disabled** in favor of Biome | ||
|
||
For other IDEs, ensure you have Biome plugin installed and configured for consistent code formatting. | ||
|
||
### Biome Configuration | ||
|
||
The project uses Biome for linting and formatting. Configuration is in `biome.json`. Biome provides: | ||
- Fast formatting and linting | ||
- TypeScript/JavaScript support | ||
- CSS formatting | ||
- JSON/Markdown formatting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot shorten up the Configuration part
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shortened the Configuration section by condensing the IDE Configuration and removing the detailed Biome Configuration subsection. Commit fc06e61
DEVELOPMENT.md
Outdated
- **`packages/raystack/`**: Contains the main Apsara component library | ||
- `components/`: Latest React components (root level) | ||
- `v1/components/`: All React components (legacy v1 structure) | ||
- `v1/hooks/`: Custom React hooks | ||
- `v1/icons/`: Icon components | ||
- `style.css`: Main stylesheet | ||
- `dist/`: Built output (generated) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot directories inside packages/raystack
don't have v1 prefixes. v1 prefix is only for exports, there are no directory with those prefixes.
Go through the source directory of packages/raystack
and update the Key Directories section
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the Key Directories section to correctly show that components are at root level (accordion/, avatar/, badge/, button/, etc.) with v1/ being a legacy structure for backward compatibility. Commit fc06e61
- `style.css`: Main stylesheet | ||
- `dist/`: Built output (generated) | ||
|
||
- **`apps/www/`**: Documentation website built with Next.js and Fumadocs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot Also mention the key directories of apps/www
.
For example src/content/docs
contains all the .mdx
files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added key directories for apps/www including src/content/docs/ which contains all the .mdx documentation files, plus src/components/ and public/. Commit fc06e61
DEVELOPMENT.md
Outdated
## Package Exports | ||
|
||
The Apsara library provides multiple export paths for flexibility: | ||
|
||
### Import Paths | ||
```javascript | ||
// Main entry (latest components) | ||
import { Button, Flex } from '@raystack/apsara' | ||
|
||
// Backward compatibility - v1 path (alias to main entry) | ||
import { Button, Flex } from '@raystack/apsara/v1' | ||
|
||
// Specific feature imports | ||
import { ChevronDownIcon } from '@raystack/apsara/icons' | ||
import { useLocalStorage } from '@raystack/apsara/hooks' | ||
|
||
// Styles | ||
import '@raystack/apsara/style.css' | ||
``` | ||
|
||
### Available Exports | ||
- **Main entry**: `@raystack/apsara` (latest components) | ||
- **Components**: `@raystack/apsara/v1` (backward compatibility alias) | ||
- **Icons**: `@raystack/apsara/icons` | ||
- **Hooks**: `@raystack/apsara/hooks` | ||
- **Styles**: `@raystack/apsara/style.css` | ||
|
||
**Note**: The `/v1` import path is maintained for backward compatibility. All v1 components have been moved to the root level, and `/v1` now serves as an alias to prevent breaking changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot This whole package exports section should be at the top of the file, preferably in the same section where packages/raystack
is discussed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved the Package Exports section to the Project Structure area, right after the Key Directories section where packages/raystack is discussed. Commit fc06e61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ravisuhag Sections like Contributing
, Getting Help
, Release Process
should be in CONTRIBUTING.md
file and not DEVELOPMENT.md
If we choose to keep everything in a single file, it would be best to rename it to CONTRIBUTING.md
, as this aligns with common open source conventions.
In my opinion, we should maintain two separate files: CONTRIBUTING.md
for contribution guidelines, and DEVELOPMENT.md
specifically for explaining the local development setup.
@copilot check review comments and standard comments, resolve all issues. |
…nfig, fix directory structure, move exports section Co-authored-by: ravisuhag <[email protected]>
…source conventions Co-authored-by: ravisuhag <[email protected]>
Addressed all review comments by splitting the documentation following open source conventions:
This aligns with standard open source practices where CONTRIBUTING.md handles contribution guidelines and DEVELOPMENT.md focuses on technical setup. Commit 831e5af |
Summary
Added a comprehensive development guide to help contributors get started with local development and understand the release process for Apsara.
What's Added
📚 Development Guide (
DEVELOPMENT.md
)📖 Updated README
Key Features
The development guide covers everything a new contributor needs:
Release Process Documentation includes:
v1.2.3
) frommain
branch → NPMlatest
tagv1.2.3-rc.1
) fromdevelop
branch → NPMnext
tagProject Structure explains:
packages/raystack/
apps/www/
Validation
This addresses the need for onboarding documentation and makes the project more accessible to new contributors.
Fixes #81.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.