Skip to content

Commit c0ea87b

Browse files
committed
Updated: README with a developer guide.
Signed-off-by: Agam Dua <agam_dua@apple.com>
1 parent 497da57 commit c0ea87b

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,55 @@ let receivedFromJSON = try BookInfo(jsonUTF8Bytes: jsonBytes)
293293
You can find more information in the detailed
294294
[API Documentation](Documentation/API.md).
295295

296+
# Developing SwiftProtobuf
297+
298+
This section is useful if you want to develop this library.
299+
300+
## First Time Setup
301+
302+
After cloning the repository, you must initialize the git submodules which contain
303+
dependencies required for building. In the project root:
304+
305+
```bash
306+
git submodule update --init --recursive
307+
```
308+
309+
The submodules include:
310+
* `Sources/protobuf/protobuf` - Google's Protocol Buffers implementation
311+
* `Sources/protobuf/abseil` - Abseil C++ library
312+
313+
## Building
314+
315+
You can build the project using either Swift Package Manager directly or the provided Makefile:
316+
317+
```bash
318+
make build
319+
```
320+
321+
## Running Tests
322+
323+
Run the test suite using:
324+
325+
```bash
326+
swift test
327+
```
328+
329+
Or using `make` for a complete test including plugin and conformance tests:
330+
331+
```bash
332+
make test
333+
```
334+
335+
## Common Make Targets
336+
337+
* `make build` - Build all targets
338+
* `make test` - Run all tests (runtime, plugin, and conformance)
339+
* `make regenerate` - Regenerate all .pb.swift files from .proto sources
340+
* `make reference` - Update reference files used for plugin testing
341+
342+
For more development details, see [INTERNALS.md](Documentation/INTERNALS.md) and
343+
[STYLE_GUIDELINES.md](Documentation/STYLE_GUIDELINES.md).
344+
296345
## Report any issues
297346

298347
If you run into problems, please send us a detailed report.

0 commit comments

Comments
 (0)