@@ -190,7 +190,7 @@ func (r *generateRunner) generateSingleLibrary(ctx context.Context, libraryID, o
190190 // libraries interfering with each other, and makes it easier to see what
191191 // was generated for each library when debugging.
192192 libraryOutputDir := filepath .Join (outputDir , libraryID )
193- if err := os .Mkdir (libraryOutputDir , 0755 ); err != nil {
193+ if err := os .MkdirAll (libraryOutputDir , 0755 ); err != nil {
194194 return err
195195 }
196196
@@ -199,6 +199,10 @@ func (r *generateRunner) generateSingleLibrary(ctx context.Context, libraryID, o
199199 return err
200200 }
201201
202+ if err := r .updateChangesSinceLastGeneration (generatedLibraryID ); err != nil {
203+ return err
204+ }
205+
202206 if err := r .runBuildCommand (ctx , generatedLibraryID ); err != nil {
203207 return err
204208 }
@@ -212,6 +216,21 @@ func (r *generateRunner) needsConfigure() bool {
212216 return r .cfg .API != "" && r .cfg .Library != "" && findLibraryByID (r .state , r .cfg .Library ) == nil
213217}
214218
219+ func (r * generateRunner ) updateChangesSinceLastGeneration (libraryID string ) error {
220+ for _ , library := range r .state .Libraries {
221+ if library .ID == libraryID {
222+ commits , err := GetConventionalCommitsSinceLastGeneration (r .repo , library )
223+ if err != nil {
224+ return fmt .Errorf ("failed to fetch conventional commits for library, %s: %w" , library .ID , err )
225+ }
226+ library .Changes = coerceLibraryChanges (commits )
227+ break
228+ }
229+ }
230+
231+ return nil
232+ }
233+
215234func (r * generateRunner ) updateLastGeneratedCommitState (libraryID string ) error {
216235 hash , err := r .sourceRepo .HeadHash ()
217236 if err != nil {
0 commit comments